Jak se dostat metrů pixel mapkit?

hlasů
1

Chtěl jsem vyzkoušet mapKit a chtěl, aby můj vlastní překrytí pro zobrazení přesnost mé pozice. Mám-li faktor přiblížení například .005 které radius můj kruh kolem sebe musí mít (v případě mé přesnost je například 500m)?

By bylo skvělé získat nějakou pomoc :)

Díky moc.

Položena 27/12/2009 v 12:58
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Chcete-li přidat na jinou odpověď, rozdíl jedné minuty zeměpisné šířky odpovídá jedné námořní míle: je to, jak byl námořní míle definovány. Takže, převod do statutárních mil, 1 námořní míle = 1.1508 socha mílí nebo 6076.1 ft. Nebo 1852 metrů.

Když jdete do délky, velikost délky kruzích kolem Země zmenšovat s rostoucí šířky, jak bylo uvedeno v předchozí odpovědi. Správné faktorem je, že

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

kde theta je zeměpisné šířky.

Samozřejmě, že Země není dokonalá koule, ale jednoduchý výpočet výše nebude nikdy off o více než 1%.

Odpovězeno 28/12/2009 v 22:39
zdroj uživatelem

hlasů
1

Podívejte se na dokumentaci MKCoordinateSpan, která je součástí mapy je regionobjektem. Jeden stupeň zeměpisné šířky je vždy cca. 111 km, takže převedení latitudeDeltana metry a pak se dostat do m na pixel by mělo být snadné. Pro podélné hodnot, není tak jednoduché, jak je vzdálenost na které se vztahuje jeden stupeň zeměpisné délky se pohybuje mezi 111 km (na rovníku) a 0 km (na pólech).

Odpovězeno 27/12/2009 v 14:01
zdroj uživatelem

hlasů
0

Můj způsob, jak získat m na pixel:

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

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

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
Odpovězeno 19/03/2015 v 00:16
zdroj uživatelem

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