我在不同地点和街道的应用程序中放置了多个Google Markers:
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(26.89209, 75.82759))
.title("Food"));
我想要的是仅向用户显示当前位置附近的标记。例如,如果用户位于XYZ街道,则只显示XYZ街道标记
答案 0 :(得分:0)
通过获取用户可见的地图的当前边界来检查此Viewport Marker Management文档,然后 - 根据地图的边界 - 将查询发送到服务器以获取谎言的所有标记在界限内。
只加载方形中的标记,这样可以减少加载时间 提高性能,并且盒子只移动所需的标记 显示,其余部分被移除。
首先,将一个侦听器附加到map
idle
事件,以使其在地图停止平移时执行名为showMarkers()
的函数。
<强> google.maps.event.addListener(map, 'idle', showMarkers);
强>
然后通过调用showMarkers
添加获取当前视口边界的函数map.getBounds()
,该函数返回一个具有边界的NorthEast和SouthWest LatLng点的对象。使用bounds
信息,您可以向服务器发送请求(最好使用AJAX)以获取这些范围内的标记。
function showMarkers() {
var bounds = map.getBounds();
// Call you server with ajax passing it the bounds
// In the ajax callback delete the current markers and add new markers
}
使用新的标记列表,您可以删除地图上的当前标记marker.setMap(null)
并添加新标记marker.setMap(map)
。
希望这有帮助!