2010-03-31 3 views
2

J'essaie de lancer Google Maps depuis mon application. J'utilise:Lancer l'application Google Maps

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); 

Je l'ai testé avec une carte centrée sur quelque part à New York, mais les cartes Google ouvre pas centrées là. J'ai suivi la référence du site du développeur Android pour utiliser le modèle "geo: latitude, longitude".

le journal que vous voyez des impressions:

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

quelqu'un sait ce qui peut être le problème?

Répondre

3

Essayez d'utiliser:

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

Le format décimal geo: Uri prend latitude/longitude et non E6 Format (* degrés 1E6).

+0

Ah, vous le fixe. Bien. –

2

Vous devez diviser par 1E6 puisque GeoPoint ne retourne pas un double.

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

J'aime cette façon, personnellement où DADDR serait (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")));