Ich habe eine Anwendung, in der ich verschiedene Standorte anzeigen möchte (einen nach dem anderen, ausgewählt durch Benutzereingaben), indem ich Google Maps mit ihren spezifischen Geokoordinaten starte.
Ich benutze dies derzeit (natürlich mit echten Lat- und Long-Werten):
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?z=17"));
startActivity(intent);
Es ist genau das, was ich will, außer dass es keinen Indikator oder Marker für den angegebenen Punkt zeigt. Es zentriert sich nur an seinem Standort.
Gibt es eine Möglichkeit, den Marker oder etwas anderes aufzunehmen, ohne MapView zu verwenden?
Antworten:
Versuche dies:
Sie können (Label + Name) weglassen, wenn Sie kein Label möchten, und es wird zufällig eines basierend auf der nächsten Straße oder einer anderen Sache ausgewählt, die es für relevant hält.
quelle
geo:
erforderlich ist ) wird der Geopunkt in dem Teil vollständig ignoriert , betonte lke robpvn. In einigen Fällen schlägt die Abfrage mit lat / long fehl, und dann erhalten Sie nur einen Toast ohne Ergebnisse, anstatt auf Geopoint zurückzugreifen. Nicht sehr nützlich für jede Art von GIS-App.Die akzeptierte Antwort ist korrekt, außer wenn Ihr Etikett ein kaufmännisches Und (&) enthält.
Betrachten einer einheitlichen Ressourcen-ID für geografische Standorte ('geo'-URI) :
In Abschnitt 5.1 heißt es:
Leider entgeht uns dabei auch das '=', was wir nicht wollen.
Wir sollten das tun:
quelle
Es gibt viele weitere Optionen, um eine Google-Karte mit einer Absicht zu starten ...
1)
2)
3)
quelle
)
auf dem zweiten Weg.Diese Saite funktioniert gut für mich:
quelle
Versuchen Sie, (LocationMarkerName) an das geo: uri anzuhängen. Beispiel: "geo :,? Z = 17 (LocationMarkerName)"
In Google Maps auf Android, das nach 23.0980,30.6797 (NamedMarker) sucht, scheint es die Karte zu zentrieren und eine Markierung mit dem Namen NamedMarker an dieser Position zu positionieren.
quelle
Ich habe gerade bestätigt, dass das folgende Snippet von @Kenton Price unter Android 4.4 (KitKat) noch funktioniert:
quelle
Ich habe Overlays mit MapView nur zum Zeichnen von Markierungen auf einer Karte verwendet. Wenn in Ihrer Ansicht Ihre Karte angezeigt wird, können Sie Ihren Marker möglicherweise einfach in der Mitte des Bildschirms zeichnen, so wie Sie ein Bild in einer Ansicht zeichnen würden.
Die Markierung würde jedoch nicht mit den tatsächlichen Kartenkoordinaten verknüpft sein. Wenn es sich jedoch nur um eine statische Ansicht handelt, ist dies möglicherweise der Fall.
quelle