当用户遍历地图时,如何基于当前地图画布绘制标记

时间:2019-04-10 15:24:37

标签: javascript google-maps

我已经使用Google Maps API成功绘制了标记。

var latlng = {lat: 34.7651458,lng: 121.453208};

map = new google.maps.Map(document.getElementById('map'), {
  center: latlng,
  zoom: 18
});

var marker = new google.maps.Marker({
  position: latlng,
  map: map,
  title: 'Marker!'
});
marker.setMap(map);

但是,如果用户遍历地图,则centre:latlng会发生变化。如果要绘制一个新标记,对于这个新的centre,我该如何捕获centre中的更改以从API提取数据以绘制新标记。感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

您可以将dragend事件监听器添加到map中(或者也可以使用center_changed)。使用map.getCenter()获取地图的中心并创建一个标记。

map.addListener('dragend', function() {
    var c = map.getCenter();                   //Get new center of the map

    var marker = new google.maps.Marker({      //Create a new marker and use the map's center as the location.
        position: c,
        map: map,
        title: 'Marker!'
    });
});