Wenn meine Karte zeigt, beginnt sie immer an einem festen Ort (in der Nähe von Afrika).
Dann verwende ich den folgenden Code, um die Karte an dem gewünschten Ort zu zentrieren.
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));
Meine Frage ist, ob ich einen Standardort und eine Zoomstufe festlegen kann, bevor die Karte angezeigt wird.
Weil ich nicht möchte, dass meine Benutzer die Animation am Anfang sehen.
Vielen Dank.
android
google-maps
google-maps-api-3
dong221
quelle
quelle
moveCamera
ist die beste Lösung dafürAntworten:
Sie können dies verwenden, um direkt ohne die Animation zu zoomen:
quelle
MyLocation
es zu greifen, damit ich die Karte verschieben und auf den Standort des Benutzers zoomen kann. Da die Karte in XML initialisiert ist, kann ich nicht herausfinden, wie der Sprung verhindert werden kann. Im Idealfall würde ich die Karte ausblenden, bis sieMyLocation
gefunden ist, und sie dann anzeigen.Schauen Sie sich die Dokumentation hier an:
https://developers.google.com/maps/documentation/android-api/map#configure_initial_state
Die Vorgehensweise unterscheidet sich geringfügig, je nachdem, ob Sie die Karte über XML oder programmgesteuert hinzufügen. Wenn Sie XML verwenden, können Sie dies wie folgt tun:
Wenn Sie dies programmgesteuert tun, können Sie Folgendes tun:
quelle
Unexpected namespace prefix "map" found for tag fragment
Nur für den Fall, dass Sie
Google Map
bei einer InitialeLocation
programmgesteuert laden möchten, können Sie diesen Code verwenden.Fügen Sie diesen Code für hinzu
layout
Dies wird
GoogleMap
insbesondereLocation
direkt geladen, dh initialLatLng.quelle
Ich habe ein Handle für erstellt
SupportMapFragment
und esvisibility
aufView.INVISIBLE
using gesetztSupportMapFragment.getView().setVisibility()
. DannonLocationChanged
überprüfe ich in dem Rückruf, den meine Klasse implementiert, obINVISIBLE
und setze aufVISIBLE
if true. Dadurch wird das Springen, das Sie unter Last sehen, beseitigt, und Sie können die Startposition dynamisch initialisieren. In meinem Fall zentriere ich die Kamera um den Standort des Benutzers, wird alsoonLocationChanged
sofort wegen angerufensetMyLocationEnabled(true)
.Ihre Anforderungen mögen unterschiedlich sein, aber in beiden Fällen müssen Sie nur die Sichtbarkeit einstellen
INVISIBLE
und dann einen guten Ort zum Festlegen finden,VISIBLE
nachdem Ihre entsprechenden Daten geladen wurden.quelle
Sie können direkt CameraUpdate mit statischem Latlong verwenden
quelle