Conversion coordonnées géographiques / UTM

LeChatNoirLeChatNoir 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+ !

Réponses

  • muqaddarmuqaddar Administrateur
    09:16 modifié #2
    C'est quoi UTM ?

    Soit c'est un truc que je ne connais pas, soit tu as fusionné GMT et UTC ?
  • Alf1996Alf1996 Membre
    octobre 2011 modifié #3
    dans 1318882681:

    C'est quoi UTM ?

    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 !
  • AliGatorAliGator Membre, Modérateur
    09:16 modifié #4
    Non UTM c'est un système de coordonnées géographique (projection de Mercator Transverse Universelle).

    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é ?
  • muqaddarmuqaddar Administrateur
    09:16 modifié #5
    Sur la page citée, les formules sont sympas...
  • AliGatorAliGator Membre, Modérateur
    09:16 modifié #6
    dans 1318885292:

    Sur la page citée, les formules sont sympas...
    Bah oui c'est toute la difficulté des projections, c'est un pur bonheur ces trucs là , des trucs de malades.

    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
  • amnesicamnesic Membre
    octobre 2011 modifié #7
    Bonjour,

    dans 1318882300:

    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 ?


    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,
  • muqaddarmuqaddar Administrateur
    09:16 modifié #8
    Vous avez étudié ça en cours ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    09:16 modifié #9
    euh perso, j'ai rien étudié du tout  :o

    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+
  • AliGatorAliGator Membre, Modérateur
    09:16 modifié #10
    Non moi sur le tas :P
  • muqaddarmuqaddar Administrateur
    09:16 modifié #11
    dans 1318926133:

    Non moi sur le tas :P


    T'as des drôles de passions ! :)
  • AliGatorAliGator Membre, Modérateur
    09:16 modifié #12
    C'est pas une passion c'est pour le taf, démarré un projet SIG il y a qques mois, donc j'ai découvert tout ça un peu plus en détail au fur et à  mesure ;)
  • muqaddarmuqaddar Administrateur
    09:16 modifié #13
    dans 1318926356:

    C'est pas une passion c'est pour le taf, démarré un projet SIG il y a qques mois, donc j'ai découvert tout ça un peu plus en détail au fur et à  mesure ;)


    Tu me rassures. ;)
  • SmySmy Membre
    LeChatNoir, tu as fini par faire comment ?



    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...
  • Moi j'ai vu du lambert mais bon je devais dormir.
  • SmySmy Membre
    Après avoir joué avec de l'UTM avec des sources de Carnegie Mellon :

    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...
  • Un peu à  coté, mais existe-t-il des librairies qui permettent d'associer facilement des coordonnés GPS à  une zone administrative: canton, département, région, etc. ?
  • Quand tu vois la tailles des données à  charger pour gérer ton propre serveur OSM (mini 600Go), j'ai peur que ça ne soit trop gros à  embarquer dans un iphone/ipad. Mais tu peux facilement utiliser des webservices de reversegeocoding qui te fourniront tout un tas d'informations.

    Jete un oeil ici : http://wiki.openstreetmap.org/wiki/Nominatim
  • LeChatNoirLeChatNoir Membre, Modérateur
    'MonsieurPaul' a écrit:


    Un peu à  coté, mais existe-t-il des librairies qui permettent d'associer facilement des coordonnés GPS à  une zone administrative: canton, département, région, etc. ?




    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)
  • spin0usspin0us Membre
    mars 2012 modifié #20
    'LeChatNoir' a écrit:


    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)
    La source d'info est stockée ou ? sur le tel ?



    EDIT: basé sur google map, donc bien un web service (plus ou moins)
  • AliGatorAliGator Membre, Modérateur
    Heu bah évidemment, encore heureux !
  • 'LeChatNoir' a écrit:


    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)




    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...
  • AliGatorAliGator Membre, Modérateur
    'MonsieurPaul' a écrit:


    Mais comme je n'y connais rien en géométrie...
    Et encore c'est plus compliqué que de la géométrie planaire de base, car ce n'est pas de la géométrie plane (bah oui, la terre est plutôt sphérique que plate...) et ça fait intervenir des systèmes de coordonnées et de référence complexes. Sur une petite zone géolocalisée on peut parfois considérer ça comme des la géométrie planaire ça passe, mais sur des zones plus étendues c'est une autre paire de manches.
  • C'est tout à  fait possible, je viens justement de le faire pour un projet.

    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é.

Connectez-vous ou Inscrivez-vous pour répondre.