Jak zdobyć metrów piksela w mapkit?

głosy
1

Chciałem przetestować mapKit i chciał zrobić własną nakładkę, aby wyświetlić dokładność mojej pozycji. Jeśli mam współczynnik powiększenia np .005 których promień mój krąg wokół mnie musi mieć (jeśli moja dokładność wynosi na przykład 500)?

Byłoby wspaniale, aby uzyskać jakąś pomoc :)

Wielkie dzięki.

Utwórz 27/12/2009 o 12:58
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
1

Aby dodać do innej odpowiedzi, różnica jednej minuty szerokości geograficznej odpowiada jednej mili morskiej: to jak mila morska została zdefiniowana. Tak więc, konwersja na mile Statutu, 1 mila morska = 1.1508 mil statua, lub 6076.1 ft. Lub 1852 metrów.

Gdy idziesz do długości, rozmiar kół geograficznej wokół Ziemi kurczą się wraz ze wzrostem szerokości geograficznej, co zostało odnotowane w poprzedniej odpowiedzi. Prawidłowe czynnikiem jest to, że

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

gdzie teta jest szerokość.

Oczywiście, że Ziemia nie jest idealną kulą, ale prosta kalkulacja powyżej nigdy nie będzie się o więcej niż 1%.

Odpowiedział 28/12/2009 o 22:39
źródło użytkownik

głosy
1

Spójrz na dokumentacji MKCoordinateSpan, która stanowi część MAP za regionnieruchomości. Jeden stopień szerokości geograficznej jest zawsze ok. 111 km, więc konwersja latitudeDeltado metrów, a następnie dotarcie do metra na piksel powinien być łatwy. Wartości wzdłużnymi nie jest tak łatwe, jak to odległość przebyta przez jeden stopień długości wynosi od 111 km (na równiku) i 0 km (na biegunach).

Odpowiedział 27/12/2009 o 14:01
źródło użytkownik

głosy
0

Mój sposób na uzyskanie metrów na piksel:

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

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

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
Odpowiedział 19/03/2015 o 00:16
źródło użytkownik

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