【问题标题】:Google map not show all places谷歌地图不显示所有地方
【发布时间】:2018-08-22 16:08:04
【问题描述】:

我将谷歌地图集成到我的应用程序中。但有些地方并没有显示出来。我认为事实是地图没有显示购物中心内的商店等。我检查了凭据,但一切都已启用。我以为问题出在mGoogleMap.setIndoorEnabled()这个方法中,但是当我设置值true时,我没有任何效果。

附上 2 张截图(在网络浏览器中一切正常,在带有谷歌地图的 ios 应用程序中也一切正常):

可能是什么问题?

【问题讨论】:

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


    【解决方案1】:

    确实GoogleMap 对象默认不显示所有地点。看来您应该使用 Google Places API 中的 Place Search 并通过附近的 URL 请求获取兴趣点列表:

    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=<LAT_LNG_e_g_ 32.944552,-97.129767>&types=point_of_interest&radius=<RADIUS_IN_METERS>&sensor=false&key=<YOUR_APP_KEY>
    

    解析它并以编程方式在地图上显示所需的位置。

    注意!附近的 URL 请求仅返回 20 个位置,要加载更多数据,您应该使用来自响应的 next_page_token 标记的字符串值,并通过 pagetoken 参数将其传递给下一个请求:

    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=<LAT_LNG_e_g_ 32.944552,-97.129767>&types=point_of_interest&radius=<RADIUS_IN_METERS>&sensor=false&key=<YOUR_APP_KEY>&pagetoken=<TOKEN_FOR_NEXT_PAGE_FROM_next_page_token_TAG_OF_RESPONSE>
    

    在添加 POI 标记之前,您可能需要隐藏“标准”标记,例如 thisJozef 的答案:

    只需修改地图样式即可:Adding a Styled Map

    1. 像这样创建 JSON 文件 src\main\res\raw\map_style.json

    [
      {
        featureType: "poi",
        elementType: "labels",
        stylers: [
          {
            visibility: "off"
          }
        ]
      }
    ]
    
    1. 将地图样式添加到您的GoogleMap

    googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));
    

    别忘了从Console 为您的应用程序启用 Places API。

    或者,你可以做到这一点:使用简单的WebView 而不是MapFragment 并在必要的地方打开它:

    WebView webview = (WebView) findViewById(R.id.web_view);
    webview.setWebViewClient(new WebViewClient());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl("http://maps.google.com/maps?q=32.944552,-97.129767&z=20");
    

    WebView 显示与网络浏览器相同的兴趣点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多