Android - 如何在Android应用中设置谷歌地图意图设置缩放级别和标记

时间:2016-12-13 22:09:56

标签: android google-maps android-intent

我的问题与这个问题(Android - How to launch Google map intent in android app with certain location, zoom level and marker)非常相似,但接受的答案对我不起作用。它打开地图,标记位于正确的位置和正确的缩放级别,然后继续放大到街道级视图(缩放= 16或17?)。

我已经搜索过了,我已经阅读了this文档,但无法找到地点标记和组合的组合。缩放,做我需要的。

我已尝试使用Google地图版本的一些设备 8.2.0, 9.20.1, 9.36.2& 9.42.3

以下是日志打印的结果(用于意图的Uri) ?地理:39.29038619995117,-76.61219024658203 Q = 39.29038619995117%2C-76.61219024658203(巴尔的摩)及Z = 11

另一篇文章的答案现在是4岁。地图是否已更改,以至于现在不起作用?另一个答案是否有效,因为他们将缩放设置为17并且没有注意到它不能在另一个缩放级别上定位?我错过了别的什么吗?

清楚说明我的问题: 如何使用地理位置意图打开地图应用以显示地点标记并同时选择缩放级别?

我的代码,基于其他帖子接受的答案。

double latitude = item.getLatitude();
double longitude = item.getLongitude();
String label = item.getName();
String uriBegin = "geo:" + latitude + "," + longitude;
String query = latitude + "," + longitude + "(" + label + ")";
String encodedQuery = Uri.encode(query);
String uriString = uriBegin + "?q=" + encodedQuery + "&z=11";
mListener.onListFragmentInteraction(uriString);

然后

public void onListFragmentInteraction(String url) {
    Uri geoLocation = Uri.parse(url);
    Log.d(TAG, "geo uri = " + geoLocation);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(geoLocation);
    startActivity(intent);
}

2 个答案:

答案 0 :(得分:1)

@ Gary99删除餐馆你必须在这里添加隐藏地图功能内容链接(https://developers.google.com/maps/documentation/android-api/hiding-features

答案 1 :(得分:0)

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants")

Intent mapIntent = new Intent(Intent.ACTION_VIEW,gmmIntentUri) mapIntent.setPackage( “com.google.android.apps.maps”) startActivity(mapIntent)