2012-03-22 1 views
0

Je travaille actuellement sur une application de cartographie pour iPhone. J'ai créé des cartes personnalisées de différentes tailles, mais j'ai rencontré un problème:Calcul de coordonnées relatives dans la carte personnalisée

Je voudrais implémenter la possibilité de vérifier automatiquement les emplacements des utilisateurs, mais puisque je n'utilise pas MapView, c'est beaucoup plus difficile. (Voir ci-dessous)

map

compte tenu des différents systèmes de coordonnées, je souhaite recevoir une géolocalisation (point vert) et le traduire en un emplacement de pixel sur une carte personnalisée. J'ai eu la géolocalisation pour les 4 coins, mais le rect est asymétrique. J'ai calculé l'angle de rotation, mais je suis juste généralement confus.

note: la taille des cartes n'est pas assez grande pour que la nature sphérique de la Terre puisse entrer dans le calcul.

Toute aide est appréciée!

+0

poste connexes: http://stackoverflow.com/questions/6534691/ – Gilbou

+0

Avez-vous trouvé toute solution pour cela ?? – Nina

Répondre

0

Pour convertir une géolocalisation en point, vous devez d'abord comprendre le mappage. en supposant que vous utilisez Mercator. Où lat et long sont en radians.R est le rayon de la terre. l'échelle de l'image serait de 0 to R*PI

donc pour l'obtenir dans view.frame.size vous devrez peut-être diviser par un facteur d'échelle.

pour la différence entre les points.

x2-x1 = R* (long2-long1) 
y2-y1 = R* ( (1+sin(lat2))/cos(lat2) - (1+sin(lat1))/cos(lat1) ) 
Questions connexes