【问题标题】:Get a list of POIs (Points Of Interest) currently visible on a GoogleMap?获取当前在 GoogleMap 上可见的 POI(兴趣点)列表?
【发布时间】:2021-11-02 18:34:33
【问题描述】:

使用Google Maps SDK,是否可以获得当前在地图上作为“图标”可见的所有 POI 的列表?

我知道我可以使用 Places API 来做类似的事情,但就我而言,我真的只想获得目前在用户屏幕上作为图标可见的确切 POI。

我也知道我可以在用户点击 POI 时进行监听,但这对我的情况没有帮助。

【问题讨论】:

    标签: android google-maps-android-api-2 point-of-interest


    【解决方案1】:

    通过 Google Maps SDK 似乎不可能,但无论如何您都可以使用解决方法:

    1. 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));`
    
    1. 获取屏幕上可见区域的坐标:

      LatLngBounds visibleAreaBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;

    2. 通过Places SDK for Android“手动”(按种类)获取有关屏幕中心坐标附近 POI 的信息,并解析有关每个地点的信息。

    4.检查每个 POI 的坐标是否在边界内:

    for (LatLng poiCoords : PoisCoords) {
        if (visibleAreaBounds.contains(poiCoords)) {
            // POI is visible on screen 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2018-01-13
      • 1970-01-01
      • 2017-04-29
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多