我正在尝试找到我在地图上添加的lat和long。我已经尝试了很多东西,但无法理解。
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);
答案 0 :(得分:2)
超新星是对的 - 谷歌地图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
方便,而纬度/经度坐标分别位于lat
和long
。