获取谷歌地图中标记的当前位置

时间:2016-01-05 12:08:31

标签: javascript google-maps google-maps-api-3

我正在尝试获取当前位置,这意味着标记的经度和纬度。首先,在用户位置创建标记,当用户单击地图时,前一个标记将被删除,并在用户点击点创建一个新标记。我自己用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 = [];
}

2 个答案:

答案 0 :(得分:4)

markers是一个数组。

markers[0].position.lng();

获取第一个标记

markers[markers.length-1].position;

获取最后一个标记

答案 1 :(得分:0)

最初未定义变量pos

  

首先在用户位置创建标记

用户所在的位置是什么意思?如果它是地图的中心,那么你可以这样做:

var pos = map.getCenter();
addMarkers(pos);