谷歌地图不显示所有地方

问题描述 投票:4回答:1

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

附2个截图(在网络浏览器中一切正常,也在ios应用程序与谷歌地图都好):screenshot 1 - whithout all places screenshot 1 - with all places

可能是什么问题呢?

android google-maps google-maps-android-api-2
1个回答
2
投票

确实GoogleMap对象默认不显示所有地方。似乎你应该使用Place SearchGoogle Places API并通过附近的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>

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

NB!附近的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标记之前,您可能需要隐藏“标准”标记,例如this Jozef的答案:

您只需修改地图样式即可完成: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显示与Web浏览器相同的兴趣点。

© www.soinside.com 2019 - 2024. All rights reserved.