Conversion coordonnées géographiques / UTM
LeChatNoir
Membre, Modérateur
Salut,
Voilà ,j'ai trouvé pas mal de JS qui font ça et je me sens de le convertir en Obj-C mais je tente à tout hasard ici : connaissez vous un framework qui ferait déjà ça ?
J'ai cherché mais pas trouvé...
Si ça existe pas, je me ferai un petit objet qui le fait et je vous le livrerai ici tiens.
A+ !
Voilà ,j'ai trouvé pas mal de JS qui font ça et je me sens de le convertir en Obj-C mais je tente à tout hasard ici : connaissez vous un framework qui ferait déjà ça ?
J'ai cherché mais pas trouvé...
Si ça existe pas, je me ferai un petit objet qui le fait et je vous le livrerai ici tiens.
A+ !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Soit c'est un truc que je ne connais pas, soit tu as fusionné GMT et UTC ?
http://fr.wikipedia.org/wiki/Transverse_Universelle_de_Mercator
@LeChatNoir : Je ne connais pas de truc tout fait... mais cela peut m'intéresser !
Tu veux passer de quelle projection à quelle autre, LeChatNoir ?
Parce que dans le domaine y'a de quoi faire !
A moins que tu veuilles passer d'un système non projeté (géodésique) à un système projeté ?
En plus il n'y a aucune projection parfaite. Y'a des projections qui ne sont valides que sur certaines parties du globe mais pas sur d'autres (genre Lambert II), d'autres qui sont valides sur tous les fuseaux mais déforment plus ou moins (avec tentative de minimiser l'erreur moyenne globale sur tout le globe), d'autres qui s'efforcent de respecter les propriétés de la plus courte distance (qui s'assurent que le plus court chemin entre 2 points A et B du globe correspond toujours à une ligne droite une fois projeté avec ladite projection), d'autres qui déforment les pôles (le fameux Groenland qui est plus gros sur une mappemonde qu'il n'est en réalité...) et tout c'est un peu la foire, selon ce dont tu as besoin, la partie du globe que tu veux couvrir, les propriétés que tu veux garder, ...
Bref, bienvenue dans le monde des SIG :P
Dans mon souvenir, les fameux outils de PROJ.4 compile sans trop de soucis sous iOS ... (maintenant tu n'as peut être par forcement besoin de l'intégralité et tu peux piocher dans le code qui t'intéresse : MIT license)
http://trac.osgeo.org/proj/
Je viens tout juste de repenser qu'il y a même un projet Xcode de PROJ.4 dans route-me :
https://github.com/route-me/route-me/tree/master/Proj4
Amicalement,
C'est juste que dans Climbing Away, on donne des coordonnées en lat/lon et nos utilisateurs qui sont des montagnards utilisent traditionnellement les UTM...
Du coup, j'aimerai bien fournir les 2 infos et éventuellement un convertisseur.
Merci pour vos réponses, je vais regarder ça de plus près.
a+
T'as des drôles de passions !
Tu me rassures.
J'ai le même besoin que toi pour une idée débile sur mon détecteur de loups garous, et il me faudrait de l'UTM pour tracer sur une carte...
http://www.koders.com/c/fidDCF578CB4239E895E60BD251F7675D81F336576E.aspx?s=ll2utm#L29
J'ai fini par faire plus simplement du Mercator, merci Wikipedia pour la projection (voir paragraphe Exemple d'application) :
http://fr.wikipedia.org/wiki/Projection_de_Mercator
La conversion est plus simple...
Jete un oeil ici : http://wiki.openstreetmap.org/wiki/Nominatim
Oui, MKReverseGeocoder.
Et depuis iOS 5, on peut faire l'inverse, c'est à dire du Forward Geocoding (on file une @ et ça te renvoie les coordonnées)
EDIT: basé sur google map, donc bien un web service (plus ou moins)
Merci pour le lien, il semblerait qu'il faille plutôt utiliser CLGeoCoder maintenant.
En fait, j'imaginais plutôt un système avec une base locale de zones géographiques sous forme de polygones ( = un array de coordonnés pour les sommets) et un algorithme pour savoir à l'intérieur de quel polygone se trouve un point donné.
Mais comme je n'y connais rien en géométrie...
Il m'a fallu plusieurs jours pour rassembler les pièces du puzzle.
Déjà si tu n'as pas besoin d'une trop grande précision, laisses tomber OSM et utilise les donnees fournies par l'IGN sous le nom de GEOFLA.
Ces données sont au format shapefile (.shp) qui est assez répandu dans le domaine SIG.
Tu devras convertir ces données ans le bon système de projection et de coordonnées (de lambert93 vers EPSG:900913/wgs84).
J'avoue que je ne suis pas sûr d'avoir compris cette étape pour l'instant et j'ai fait pluseurs essais avec l'utilitaire ogr2ogr pour y arriver.
Ensuite tu trouves un moyen d'importer ces données dans ton app :
soit en ipportant directement le .shp (il existe du code objective c sur le net),
soit en utilisant encore ogr2ogr pour convertir ton .shp en kml pour lequel il y a plus de code dispo (notamment pour recuperer les metadonnées).
Ensuite tu pourras créer des CGPaths pour chaque polygone importé (voir la classe RMPath dans le projet route-me).
Enfin tu pourras faire des "hittests" en utilisant une méthode des CGPath dont j'ai oublié le nom).
Il y a sans doute un moyen mathématique de se passer des CGPath pour faire la détection de position mais comme j'avais besoin de les afficher, je n'ai pas cherché.