Android – 如何在Android应用中使用特定的位置,缩放级别和标记来启动Google地图

地图意图不使用特定缩放级别以及自定义标记

float lat = 40.714728f; float lng = -73.998672f; String maplLabel = "ABC Label"; final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:0,0?q="+lat+","+lng+"&z=16 (" + maplLabel + ")")); startActivity(intent); 

有人知道什么是错的? 或者如何做? 我想在特定的缩放级别上显示特定(lat,lng)的地图与自定义标签标记。

Solutions Collecting From Web of "Android – 如何在Android应用中使用特定的位置,缩放级别和标记来启动Google地图"

尝试以下解决scheme:

 double latitude = 40.714728; double longitude = -73.998672; String label = "ABC Label"; String uriBegin = "geo:" + latitude + "," + longitude; String query = latitude + "," + longitude + "(" + label + ")"; String encodedQuery = Uri.encode(query); String uriString = uriBegin + "?q=" + encodedQuery + "&z=16"; Uri uri = Uri.parse(uriString); Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); startActivity(intent); 

信贷在这里: 答案

我相信这个问题与你的标签中的空间有关。 编码查询string将通过用有效字符replace空格来消除此问题

在地图应用中显示位置:

 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); String data = String.format("geo:%s,%s", latitude, longitude); if (zoomLevel != null) { data = String.format("%s?z=%s", data, zoomLevel); } intent.setData(Uri.parse(data)); startActivity(intent); 
 Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + location.getLatitude() + "," + location.getLongitude())); startActivity(intent);