2012-06-14 67 views
25

Tôi đang sử dụng API Google Maps. Và tôi đang sử dụng mã bên dưới để lấy tọa độ của điểm đánh dấu.Tìm tọa độ của điểm đánh dấu trong API Google Maps

var lat = homeMarker.getPosition().$a; 
var lng = homeMarker.getPosition().ab; 

Mọi thứ đều hoạt động tốt với ứng dụng tôi đã tạo bằng Google Maps. Nhưng tôi đã thử nghiệm nó ngày hôm nay và tôi đã nhận được vấn đề nhận được tọa độ chính xác. Chỉ để khám phá ra rằng đoạn mã trên không được xác định. Sau khi tôi console.log (homeMarker.getPosition()) Tôi phát hiện ra rằng đây là các biến mà chúng được sử dụng cho các tọa độ.

var lat = homeMarker.getPosition().ab; 
var lng = homeMarker.getPosition().cb; 

Tôi sẽ không hỏi tại sao Google Maps hoạt động theo cách này nhưng bạn cũng có thể đưa nó vào câu trả lời của bạn. Câu hỏi của tôi là làm thế nào để tôi có được đúng các tọa độ mà không thay đổi mã của tôi mỗi khi google maps thay đổi các biến mà chúng đang sử dụng.

Trả lời

2

hơn Một lựa chọn thay thế

var map = new google.maps.Map(document.getElementById('map_canvas'), { 
    zoom: 1, 
    center: new google.maps.LatLng(35.137879, -82.836914), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var myMarker = new google.maps.Marker({ 
    position: new google.maps.LatLng(47.651968, 9.478485), 
    draggable: true 
}); 

google.maps.event.addListener(myMarker, 'dragend', function (evt) { 
    document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>'; 
}); 

google.maps.event.addListener(myMarker, 'dragstart', function (evt) { 
    document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>'; 
}); 

map.setCenter(myMarker.position); 
myMarker.setMap(map); 

và file html

<body> 
    <section> 
     <div id='map_canvas'></div> 
     <div id="current">Nothing yet...</div> 
    </section> 
</body> 
+0

google.maps.event.addListener (myMarker, 'dragend', function (evt) {.. }); Điều này ném ngoại lệ – rajkiran

2

Ngoài ra, bạn có thể hiển thị vị trí hiện tại bằng cách "kéo" người nghe và ghi nó vào lĩnh vực thể nhìn thấy hoặc ẩn. Bạn cũng có thể cần phải lưu trữ zoom. Dưới đây của sao chép & dán từ công cụ làm việc:

  function map_init() { 
      var lt=48.451778; 
      var lg=31.646305; 

      var myLatlng = new google.maps.LatLng(lt,lg); 
      var mapOptions = { 
       center: new google.maps.LatLng(lt,lg), 
       zoom: 6, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var map = new google.maps.Map(document.getElementById('map'),mapOptions); 
      var marker = new google.maps.Marker({ 
       position:myLatlng, 
       map:map, 
       draggable:true 
      }); 

      google.maps.event.addListener(
       marker, 
       'drag', 
       function() { 
        document.getElementById('lat1').innerHTML = marker.position.lat().toFixed(6); 
        document.getElementById('lng1').innerHTML = marker.position.lng().toFixed(6); 
        document.getElementById('zoom').innerHTML = mapObject.getZoom(); 

        // Dynamically show it somewhere if needed 
        $(".x").text(marker.position.lat().toFixed(6)); 
        $(".y").text(marker.position.lng().toFixed(6)); 
        $(".z").text(map.getZoom()); 

       } 
      );     
      } 
Các vấn đề liên quan