我正在尝试获取当前位置,这意味着标记的经度和纬度。首先,在用户位置创建标记,当用户单击地图时,前一个标记将被删除,并在用户点击点创建一个新标记。我自己用var lat1 = markers.position.lat(); var lng1 = markers.position.lng();
尝试了它,但是没有用,我得到了错误消息Uncaught TypeError: Cannot read property 'lat' of undefined
。如何获取标记的当前位置并将其保存在变量中?
var markers = [];
// This event listener will call addMarker() when the map is clicked.
map.addListener('click', function(event) {
addMarkers(event.latLng);
});
//draw a marker at the position of the user
addMarkers(pos);
// Adds a marker to the map and push to the array.
function addMarkers(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
}
// Sets the map on all markers in the array.
function setMapOnAll(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}
// Removes the markers from the map, but keeps them in the array.
function clearMarkers() {
setMapOnAll(null);
}
// Deletes all markers in the array by removing references to them.
function deleteMarkers() {
clearMarkers();
marker = [];
}
答案 0 :(得分:4)
markers是一个数组。
试
markers[0].position.lng();
获取第一个标记
或
markers[markers.length-1].position;
获取最后一个标记
答案 1 :(得分:0)
最初未定义变量pos
。
首先在用户位置创建标记
用户所在的位置是什么意思?如果它是地图的中心,那么你可以这样做:
var pos = map.getCenter();
addMarkers(pos);