我将谷歌地图集成到了我的应用程序。但是有些地方没有显示出来。我认为事实是地图并没有显示购物中心内的商店等。我检查了凭据,但是一切都已启用。我认为问题是在这个方法mGoogleMap.setIndoorEnabled()
,但当我设置值true
我没有得到任何影响。
附2个截图(在网络浏览器中一切正常,也在ios应用程序与谷歌地图都好):
可能是什么问题呢?
确实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!附近的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
- 像这样创建JSON文件src \ main \ res \ raw \ map_style.json:
[ { featureType: "poi", elementType: "labels", stylers: [ { visibility: "off" } ] } ]
- 将地图样式添加到
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浏览器相同的兴趣点。