0

我试图找到我在地图上添加的经纬度。我已经尝试了很多东西,但无法弄清楚。

这是我的完整代码

function initialize() {
  var mapOptions = {
    zoom: 4,
    center: new google.maps.LatLng(41,29),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

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

function placeMarker(position, map) {
  var marker = new google.maps.Marker({
    position: position,
    map: map,
draggable: true
  });
  map.panTo(position);
}

google.maps.event.addDomListener(window, 'load', initialize);
4

1 回答 1

2

supernova 是对的——Google Maps API 不提供在标记以任何其他方式添加到地图后引用标记的方法,而不是保留原始标记google.maps.Marker。一个简单的解决方案是在函数之外定义一个数组,并在创建时将所有标记一个一个地推到它上面。用于此的函数可能与此类似:

(function() {
   var markers = [];
   window.addMarkerToMap(parameters, map) {
     var params = parameters || {};
     params.map = map;
     var marker = new google.maps.Marker(params);
     markers.push({ "object": marker, "lat": params.position.lat(), "long": params.position.long() });
     return marker;
   };
   window.getMarkers() {
     return markers;
   };
})();

这为您提供了addMarkerToMap()带有签名的全局函数:parameters: Object, map: google.map. 每次使用它添加标记时,它都会在window.getMarkers(). 从那里,标记方便地位于 中object,而纬度/经度坐标分别位于latlong中。

于 2013-04-17T18:21:34.750 回答