获取当前在 GoogleMap 上可见的 POI(兴趣点)列表?
Posted
技术标签:
【中文标题】获取当前在 GoogleMap 上可见的 POI(兴趣点)列表?【英文标题】:Get a list of POIs (Points Of Interest) currently visible on a GoogleMap? 【发布时间】:2021-11-02 18:34:33 【问题描述】:使用Google Maps SDK,是否可以获得当前在地图上作为“图标”可见的所有 POI 的列表?
我知道我可以使用 Places API 来做类似的事情,但就我而言,我真的只想获得目前在用户屏幕上作为图标可见的确切 POI。
我也知道我可以在用户点击 POI 时进行监听,但这对我的情况没有帮助。
【问题讨论】:
【参考方案1】:通过 Google Maps SDK 似乎不可能,但无论如何您都可以使用解决方法:
-
像thisjosef 的回答一样,删除所有“POI 目前在地图上显示为“图标””:
a) 像这样创建 JSON 文件 src\main\res\raw\map_style.json:
[
featureType: "poi",
elementType: "labels",
stylers: [
visibility: "off"
]
]
b) 将地图样式添加到您的 GoogleMap:
`googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));`
获取屏幕上可见区域的坐标:
LatLngBounds visibleAreaBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
通过Places SDK for android“手动”(按种类)获取有关屏幕中心坐标附近 POI 的信息,并解析有关每个地点的信息。
4.检查每个 POI 的坐标是否在边界内:
for (LatLng poiCoords : PoisCoords)
if (visibleAreaBounds.contains(poiCoords))
// POI is visible on screen
【讨论】:
以上是关于获取当前在 GoogleMap 上可见的 POI(兴趣点)列表?的主要内容,如果未能解决你的问题,请参考以下文章
GoogleMap(Android)投影可见区域在方向更改后未更新?