用户的当前位置并在附近显示附近的Google标记?
问题描述:
我已经把谷歌的多个标志物在我的应用程序在不同的地点和街道:用户的当前位置并在附近显示附近的Google标记?
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(26.89209, 75.82759))
.title("Food"));
我要的是向用户展示的仅仅靠近其当前位置的标记。例如,如果用户在XYZ街道,那么只有XYZ街道标记将显示
答
检查此Viewport Marker Management通过获取用户可见的地图的当前边界起作用的文档,然后 - 基于地图的边界 - 将查询发送到服务器以获取位于边界内的所有标记。
只有在正方形标记被加载,这减少的加载时间和 提高性能和作为盒只移动所需要的标记是示出 ,其余都被删除。
首先,附加一个监听器map
idle
事件,使地图停止平移时,它执行被称为showMarkers()
功能。
google.maps.event.addListener(map, 'idle', showMarkers);
然后添加通过调用map.getBounds()
它返回边界的东北和西南经纬度点对象获取当前视口边界的功能showMarkers
。通过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)
。
希望这会有所帮助!