启动Google地图应用

时间:2010-03-31 13:25:25

标签: android google-maps android-intent

我正在尝试从我的应用程序启动Google地图。我正在使用:

GeoPoint center = _mapView.getMapCenter(); 

Uri uri = Uri.parse("geo:"+center.getLatitudeE6()+","+center.getLongitudeE6()); 

Log.d(LOG_TAG, "Launching Google Maps with Uri: ("+uri+")"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent); 

我使用以纽约某处为中心的地图对其进行了测试,但Google地图打开时并未居中。 我按照Android Developer的网站参考使用:“geo:latitude,longitude”模式。

您看到的日志打印:

Launching Google Maps with Uri: (geo:40763500,-73979305) 

任何人都知道会出现什么问题?

2 个答案:

答案 0 :(得分:3)

尝试使用:

Uri uri = Uri.parse("geo:"+(center.getLatitudeE6()/1E6)+","+(center.getLongitudeE6()/1E6)); 

geo: Uri格式采用小数纬度/经度而不是E6格式(度* 1E6)。

答案 1 :(得分:2)

您需要除以1E6,因为GeoPoint不会返回双精度。

Uri uri = Uri.parse("geo:"+(center.getLatitudeE6()/1E6)+","+(center.getLongitudeE6()/1E6));

我个人喜欢这种方式,其中daddr将是(center.getLatitudeE6()/1E6)+","+(center.getLongitudeE6()/1E6)

startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://maps.google.com/maps?f=d&saddr="+saddr+"&daddr="+daddr+"&hl=en")));