Πώς να πάρει μέτρα σε pixel στην mapkit;

ψήφοι
1

Ήθελα να δοκιμάσει την mapKit και ήθελε να κάνει το δικό μου επικάλυψης για να εμφανιστεί η ακρίβεια της θέσης μου. Αν έχω ένα συντελεστή μεγέθυνσης για παράδειγμα .005 που ακτίνας έχει κύκλο μου γύρω μου πρέπει να έχει (Αν ακρίβεια μου είναι για παράδειγμα 500);

Θα ήταν μεγάλη για να πάρετε κάποια βοήθεια :)

Ευχαριστώ πολύ.

Δημοσιεύθηκε 27/12/2009 στις 12:58
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Για να προσθέσετε μια άλλη απάντηση, μια διαφορά ενός λεπτού από το γεωγραφικό πλάτος αντιστοιχεί σε ένα ναυτικό μίλι: αυτό είναι το πώς το ναυτικό μίλι ορίστηκε. Έτσι, τη μετατροπή σε μίλια καταστατικό, 1 ναυτικό μίλι = 1,1508 μίλια άγαλμα, ή 6.076,1 πόδια. Ή 1852 μέτρα.

Όταν πηγαίνετε στο γεωγραφικό μήκος, το μέγεθος των κύκλων μήκους γύρω από τη Γη συρρικνωθεί όσο αυξάνεται το γεωγραφικό πλάτος, όπως επισημάνθηκε στην προηγούμενη απάντηση. Η σωστή παράγοντας είναι ότι

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

όπου θ είναι το γεωγραφικό πλάτος.

Φυσικά, η Γη δεν είναι τέλεια σφαίρα, αλλά ο απλός υπολογισμός παραπάνω δεν θα ήταν ποτέ μακριά από περισσότερο από 1%.

Απαντήθηκε 28/12/2009 στις 22:39
πηγή χρήστη

ψήφοι
1

Κοιτάξτε την τεκμηρίωση MKCoordinateSpan, που αποτελεί μέρος του χάρτη του regionακινήτου. Μια διακριτική ευχέρεια είναι πάντα περίπου. 111 χιλιόμετρα, έτσι μετατρέποντας το latitudeDeltaσε μέτρα και στη συνέχεια να πάρει τα μέτρα ανά pixel θα πρέπει να είναι εύκολη. Για διαμήκη αξίες δεν είναι αρκετά τόσο εύκολο όπως η απόσταση που καλύπτεται από ένα γεωγραφικό μήκος κυμαίνεται μεταξύ 111 χιλιόμετρα (στον ισημερινό) και 0 km (στους πόλους).

Απαντήθηκε 27/12/2009 στις 14:01
πηγή χρήστη

ψήφοι
0

Ο δικός μου τρόπος για να πάρετε μέτρα ανά pixel:

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

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

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
Απαντήθηκε 19/03/2015 στις 00:16
πηγή χρήστη

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