如何在由geo uri Intent发布的地图中显示标记?
我有一个应用程序,我想通过启动Google地图及其特定的地理坐标来显示不同的位置(当时一个,由用户input)。
我目前正在使用这个(当然,真正的经纬度值)
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?z=17")); startActivity(intent);
这正是我想要的,只是它没有显示任何指示器或标记的指定点。 它只集中在它的位置。
有没有一些方法来获得标记或其他东西,而不使用MapView?
尝试这个:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)")); startActivity(intent);
如果您不需要标签,您可以省略(标签+名称),并根据最近的街道或其他认为相关的东西随机select一个。
被接受的答案是正确的,除非您的标签中包含&符(&)。
查看地理位置统一资源标识符(“地理”URI) :
第5.1节指出:
如果最终的URI包含“查询”组件,则添加组件分隔符“?” 到结果的末尾,然后是编码的查询string。
不幸的是,对我们来说,这样做也将逃避“=”,这不是我们想要的。 我们应该做的是这样的:
String label = "Cinnamon & Toast"; String uriBegin = "geo:12,34"; String query = "12,34(" + label + ")"; String encodedQuery = Uri.encode( query ); String uriString = uriBegin + "?q=" + encodedQuery; Uri uri = Uri.parse( uriString ); Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri ); startActivity( intent );
有更多的select来启动谷歌地图使用意图…
Double myLatitude = 44.433106; Double myLongitude = 26.103687; String labelLocation = "Jorgesys @ Bucharest";
1)
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<" + myLatitude + ">,<" + myLongitude + ">?q=<" + myLatitude + ">,<" + myLongitude + ">(" + labelLocation + ")")); startActivity(intent);
2)
String urlAddress = "http://maps.google.com/maps?q="+ myLatitude +"," + myLongitude +"("+ labelLocation + ")&iwloc=A&hl=es"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress)); startActivity(intent);
3)
String urlAddress = "http://maps.googleapis.com/maps/api/streetview?size=500x500&location=" + myLatitude + "," + myLongitude + "&fov=90&heading=235&pitch=10&sensor=false"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress)); startActivity(intent);
这个string适合我:
String geoUriString="geo:"+lat+","+lon+"?q=("+head+")@"+lat+","+lon; Uri geoUri = Uri.parse(geoUriString); Log.e(TAG, "String: "+geoUriString); Intent mapCall = new Intent(Intent.ACTION_VIEW, geoUri); startActivity(mapCall);
你有尝试追加(LocationMarkerName)的地理:uri吗? 例如“geo:,?z = 17(LocationMarkerName)”
在Android上的谷歌地图search23.0980,30.6797(NamedMarker)似乎居中映射,并在该位置定位名为NamedMarker的标记。
刚刚确认@Kenton价格仍然适用于Android 4.4以下片段
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)")); startActivity(intent);
我只使用了MapView的覆盖图在地图上绘制标记。 如果您的视图正在显示地图,则可以简单地在屏幕的中心绘制标记,就像在“视图”上绘制任何图像一样。 但是,标记不会链接到实际的地图坐标,但如果它只是一个静态视图,那么这可能会。
- 如何将LatLng和半径转换为Android Google Maps API v2中的LatLngBounds?
- Android SDKpipe理器没有获取其他SDK平台
- Google Play服务更新至版本13后,出现错误
- 如何从Java的keytool获取MD5指纹,而不仅仅是SHA-1?
- 从XML获取维度并在运行时设置文本大小
- 在android中camera.setParameters失败
- IntelliJ IDEA 13和Android Studio之间的差异
- Android的logcat充斥着“W /谷歌地图的Android API:GLHudOverlay弃用; draw():no-op“
- 如何在Android中创build自定义评分栏