Wie kann ich Kompass / Überschrift in mapkit mapview anzeigen?

8

auf dem iPhone 3GS in der "Maps" -App können Sie auf das Symbol klicken, das normalerweise Ihre Position zweimal zeigt und der blaue Punkt erhält, was wie ein Strahl von einer Stirnlampe aussieht, im Grunde zeigt Ihnen die Richtung, die Sie auf der Karte und Drehen Sie das Bild entsprechend.

Ist diese Option mit MapKit MapView verfügbar?

Ich weiß, dass ich mich mit etwas wie

beschäftigen kann %Vor%

// Wenn die Genauigkeit gültig ist, verarbeiten Sie das Ereignis.

%Vor%

}

aber ich weiß nicht, wie man diesen schönen Scheinwerfer-Effekt in Mapkit bekommt und es scheint keine Dokumentation zu geben.

Irgendwelche Ideen?

    
Erik Carlson 12.06.2010, 21:23
quelle

5 Antworten

4

Ich habe eine Lösung gefunden:

Ich rotiere die Karte mit den verfügbaren Überschrifteninformationen mit

%Vor%

Daher zeigt der "Strahl" immer auf die Oberseite des Geräts. Ich zeige jetzt nur ein ImageView oben auf der Karte an und ändere seine Position in locationManager: didUpdateToLocation: fromLocation:

%Vor%

Wobei frameTop und frameHeight Abkürzungen für frame.origin.y und frame.size.height sind. Es ist nicht ideal und manchmal fehlt ein bisschen, wenn der Punkt seine Position ändert, aber ich bin glücklich mit der Lösung b / c funktioniert es.

Sehen Sie sich mein OpenSource-Framework MTLocation an, welches all dies (und eine Menge anderer cooler Map-bezogener Sachen für Sie) erledigt:

MTL-Standort

    
myell0w 08.02.2011 20:13
quelle
3

Die rotierende Logik der anderen Antworten ist gut, aber das Verlassen auf die Delegiertenmethoden des Standortmanagers führt nicht zu einer guten Lösung. Das "Beam" -Bild wird selten an der gleichen Stelle wie der blaue Punkt sein und springt viel herum.

Die beste Lösung besteht darin, einen Verweis auf die blaue Punktansicht zu erhalten und das "Strahl" -Bild als Unteransicht hinzuzufügen. Ich ging mit einem Strahlbild, das ein Quadrat war, mit dem Strahl oben und Transparenz um ihn herum. Stellen Sie sich den blauen Punkt in der Mitte des Bildes vor.

%Vor%     
Jared Egan 18.03.2011 15:15
quelle
3

Das Hinzufügen des Benutzer-Tracking-Modus hilft ebenfalls. Ich weiß, ich bin zu spät, aber möglicherweise eine Hilfe für andere Entwickler wie mich:)

%Vor%     
ScarletWitch 17.11.2013 13:03
quelle
2

Ich könnte mir eine Methode ausdenken, obwohl ich sie nicht implementiert habe, aber Ihnen vielleicht ein bisschen helfen kann.

  1. Zuerst brauchen Sie ein Bild mit einem Zeiger Ihrer Wahl, dieser Zeiger muss nach oben zeigen 90 Grad.
  2. Jetzt in Ihrem MapKit die Markierung für den aktuellen Standort.
  3. Verwenden Sie in Ihrem didUpdateHeading die x- und y-Werte, um den Winkel der Richtung zu berechnen.
  4. Verwenden Sie diesen Winkel, um das Bild des Zeigers
  5. zu drehen
  6. Verwenden Sie dieses gedrehte Bild als Anmerkungsstift in Ihrer Karte.
  7. Sie müssten die Position des Zeigers häufig aktualisieren.

Bitte posten Sie Ihre Vorschläge / Änderungen für den obigen Ansatz.

Danke

    
RVN 22.06.2010 13:39
quelle
2

Swift 3-Implementierung

%Vor%     
Johan Tingbacke 05.10.2016 09:54
quelle