2012-01-25 33 views
16

Tôi chỉ tự hỏi nếu có ai biết của một kịch bản đơn giản có sẵn mà sẽ làm như sau:Nhận vĩ độ/kinh độ từ một bản đồ Google bằng dấu chọn

tải bản đồ google trong quan điểm, khi nhấn vào nó sẽ hiển thị một dấu hiệu rằng sẽ lưu các giá trị lat và long thành một biến?

Có ai biết nếu một cái gì đó như thế này đã tồn tại trong PHP không?

Cảm ơn trước

+0

vâng, đây có thể đạt được. –

Trả lời

26

Có lẽ bạn đang tìm kiếm một cái gì đó tương tự như điều này Latitude-Longitude Finder Tool. Mã ví dụ là API v2. Dưới đây là tỉa xuống phiên bản mã bằng Google Maps API v3:

var latlng = new google.maps.LatLng(51.4975941, -0.0803232); 
var map = new google.maps.Map(document.getElementById('map'), { 
    center: latlng, 
    zoom: 11, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: 'Set lat/lon values for this property', 
    draggable: true 
}); 
google.maps.event.addListener(marker, 'dragend', function(a) { 
    console.log(a); 
    // bingo! 
    // a.latLng contains the co-ordinates where the marker was dropped 
}); 

Demo

Giải thích: bạn phải thiết lập các draggable tài sản của marker là true. Sau đó bạn có thể móc một chức năng gọi lại đến sự kiện dragend của người đánh dấu đó; các tọa độ mới được chuyển đến hàm và bạn có thể gán chúng cho một biến JavaScript hoặc trường biểu mẫu.

+0

đây là rất gần đó! chỉ cần tìm ra những công cụ gọi lại kéo dài: – Zabs

+0

Một jsFiddle sắp xuất hiện! cho tôi một hoặc hai phút. –

+0

tuyệt vời sẽ được mong chờ nó :-) yêu u guys! – Zabs

5

Kiểm tra Google maps API v.3. Từ events page:

google.maps.event.addListener(map, 'click', function(event) { 
    // use event.latLng to place a google.maps.Marker 
}); 
6
// add a click event handler to the map object 
    GEvent.addListener(map, "click", function(overlay, latLng) 
    { 
     // display the lat/lng in your form's lat/lng fields 
     document.getElementById("latFld").value = latLng.lat(); 
     document.getElementById("lngFld").value = latLng.lng(); 
    }); 

Tôi nghĩ khi bạn sẽ nhận được lat-lng sau đó bạn có thể đặt dấu.

3

tôi đã được quản lý sau cho đến nay - làm thế nào tôi có thể sửa đổi này để di chuyển vị trí đánh dấu khi tôi nhấp vào bất cứ nơi nào trên bản đồ

http://jsfiddle.net/ZW9jP/

Tôi đã thêm sau nhưng nó không có vẻ để làm bất cứ điều gì

google.maps.event.addListener(map, 'click', function(event) { 
    addMarker(event.latLng); 
}); 
3

mã bên dưới hoạt động tốt

var latlng = new google.maps.LatLng(51.4975941, -0.0803232); 
var map = new google.maps.Map(document.getElementById('map'), { 
    center: latlng, 
    zoom: 11, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: 'Set lat/lon values for this property', 
    draggable: true 
}); 

google.maps.event.addListener(marker, 'dragend', function (event) { 
    document.getElementById("latbox").value = this.getPosition().lat(); 
    document.getElementById("lngbox").value = this.getPosition().lng(); 
}); 
Các vấn đề liên quan