2016-07-18 117 views
0

我已经把谷歌的多个标志物在我的应用程序在不同的地点和街道:用户的当前位置并在附近显示附近的Google标记?

googleMap.addMarker(new MarkerOptions() 
      .position(new LatLng(26.89209, 75.82759)) 
      .title("Food")); 

我要的是向用户展示的仅仅靠近其当前位置的标记。例如,如果用户在XYZ街道,那么只有XYZ街道标记将显示

回答

0

检查此Viewport Marker Management通过获取用户可见的地图的当前边界起作用的文档,然后 - 基于地图的边界 - 将查询发送到服务器以获取位于边界内的所有标记。

只有在正方形标记被加载,这减少的加载时间和 提高性能和作为盒只移动所需要的标记是示出 ,其余都被删除。

enter image description here

首先,附加一个监听器mapidle事件,使地图停止平移时,它执行被称为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)

希望这会有所帮助!