用户的当前位置并在他们周围显示附近的Google Marker?

时间:2016-07-18 08:11:21

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

我在不同地点和街道的应用程序中放置了多个Google Markers:

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

我想要的是仅向用户显示当前位置附近的标记。例如,如果用户位于XYZ街道,则只显示XYZ街道标记

1 个答案:

答案 0 :(得分:0)

通过获取用户可见的地图的当前边界来检查此Viewport Marker Management文档,然后 - 根据地图的边界 - 将查询发送到服务器以获取谎言的所有标记在界限内。

  

只加载方形中的标记,这样可以减少加载时间   提高性能,并且盒子只移动所需的标记   显示,其余部分被移除。

     

enter image description here

首先,将一个侦听器附加到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)

希望这有帮助!