Wie Meter in Pixel in MapKit zu bekommen?

stimmen
1

Ich wollte die MapKit testen und wollte mein eigenes Overlay machen die Richtigkeit meiner Position angezeigt werden soll. Wenn ich einen Zoomfaktor von etwa .005, dem Radius hat meinen Kreis um mich herum zu haben, hat (wenn meine Genauigkeit zum Beispiel 500 ist)?

Wäre toll, etwas Hilfe zu bekommen :)

Danke vielmals.

Veröffentlicht am 27/12/2009 um 12:58
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

So fügen Sie entspricht eine andere Antwort, eine Differenz von einer Minute der Breite zu einer nautischen Meile: das ist, wie die nautische Meile definiert wurde. Also, die Umstellung auf Statut Meilen, 1 nautische Meile = 1,1508 Statue Meilen oder 6.076,1 ft. Oder 1852 Meter.

Wenn Sie zu Länge gehen, schrumpft die Größe der Länge Kreise um die Erde als Breite zunimmt, wie auf der vorherige Antwort festgestellt wurde. Der richtige Faktor ist, dass

1 minute of longitude = (1852 meters)*cos(theta),

wobei Theta der Breite.

Natürlich ist die Erde keine perfekte Kugel, sondern die einfache Berechnung oben würde nie weg von mehr als 1% betragen.

Beantwortet am 28/12/2009 um 22:39
quelle vom benutzer

stimmen
1

Sehen Sie in der Dokumentation MKCoordinateSpan, die Teil der Karte ist , ist regionEigentum. Ein Breitengrad ist immer ca.. 111 km, Umwandlung , so dass die latitudeDeltain Meter und dann auf den Meter pro Pixel bekommen sollte einfach sein. Für Längs Werte ist es nicht ganz so einfach , wie die von einem Längengrad zurückgelegte Strecke zwischen 111 km (am Äquator) variiert , und 0 km (an dem Polen).

Beantwortet am 27/12/2009 um 14:01
quelle vom benutzer

stimmen
0

Mein Weg Meter pro Bildpunkt zu erhalten:

MKMapView *mapView = ...;
CLLocationCoordinate2D coordinate = ...;

MKMapRect mapRect = mapView.visibleMapRect;
CLLocationDistance metersPerMapPoint = MKMetersPerMapPointAtLatitude(coordinate.latitude);

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
Beantwortet am 19/03/2015 um 00:16
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more