我正在尝试从我的应用程序启动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)
任何人都知道会出现什么问题?
答案 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")));