Google地图未显示所有地点

时间:2018-08-22 16:08:05

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

我将google map集成到了我的应用程序中。但是有些地方没有显示。我认为事实是该地图未显示购物中心等内部的商店。我检查了凭据,但是所有功能都已启用。我以为问题出在这种方法<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> 中,但是当我设置值mGoogleMap.setIndoorEnabled()时没有任何效果。

附加了2个屏幕截图(在网络浏览器中一切正常,在带有Google Map的ios应用中也一切正常): screenshot 1 - whithout all places screenshot 1 - with all places

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

事实上,GoogleMap对象并非默认显示所有位置。似乎您应该使用Place Search中的Google 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!附近的网址请求仅返回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
  2.   
     

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

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显示的兴趣点与网络浏览器相同。