Utilisées les coordonnées SHP sur une carte

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
Zebu1er
Messages : 10
Inscription : dim. févr. 11, 2018 9:52 pm

Utilisées les coordonnées SHP sur une carte

Message par Zebu1er » dim. févr. 11, 2018 10:27 pm

Bonjour,
J'ai besoin de produire dans mon logiciel sous Windows (développé en Lazarus / Free pascal) une carte avec les aires (polygones) des communes sélectionnées (via code INSEE). Ce sont les utilisateurs qui administrent en temps réel les listes de communes.
Pour l'heure je me suis contenté d'exploiter le fichier OSM des tracés des communes, désormais disponible sur un site gouvernemental au format SHP. J'ai donc à présent la liste (polygones) des coordonnées des points pour chaque code INSEE de commune. Ces coordonnées se placent mal sur Google Maps, visiblement il y a un gros problème de projection. Dans le fichier PRJ il est indiqué : GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
Ma question est comment obtenir au format image (PNG, JPG) une carte (Google Maps ou OSM) avec tracé dessus, des dizaines de polygones (semi-transparents). Je peux faire des requêtes HTTP(S) ou REST. Au minium il me faudrait la formule pour convertir les coordonnées du fichier SHP vers le système de coordonnées de Google Maps. Ensuite je peux récupérer moi-même le fond de carte et tracer dessus... encore qu'il me faudra convertir vers le système de coordonnées du fond de carte...

Si vous pouvez me donner des éléments ... merci d'avance !

Sefoun
Messages : 238
Inscription : lun. nov. 03, 2014 8:01 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Sefoun » lun. févr. 12, 2018 4:20 pm

Salut,

Google maps utilise la projection EPSG: 3857 et le fichier shp que tu as téléchargé doit par défaut utiliser la projection EPSG: 4326

Il existe des outils en ligne pour reprojeter ses fichiers, en voici 2 que je n'ai pas testé : https://mygeodata.cloud/cs2cs/ et https://epsg.io/transform#s_srs=4326&t_srs=3857

jcr83
Messages : 98
Inscription : ven. nov. 25, 2011 5:22 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par jcr83 » mar. févr. 13, 2018 8:40 am

Bonjour,
Tu trouveras les formules de conversion et des tas d'exemples en faisant une recherche sur "Google Mercator".
Exemple de code javascript:

Code : Tout sélectionner

var degrees2meters = function(lon,lat) {
        var x = lon * 20037508.34 / 180;
        var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
        y = y * 20037508.34 / 180;
        return [x, y]
}

Zebu1er
Messages : 10
Inscription : dim. févr. 11, 2018 9:52 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Zebu1er » mer. févr. 14, 2018 2:28 pm

Merci à vous deux.
Cependant vous m'indiquez comment convertir vers une projection sur une surface plate, les unités sont donc des distances. Je ne sais pas comment l'on fait pour saisir de telles valeurs dans GMaps ou OSM.
En revanche autant dans GMaps qu'OSM on peut saisir des coordonnées angulaires, ça semble plus commun. On nous parle de coordonnées GPS..
Si je prends l'exemple de Pierrelatte (26), le fichier laposte_hexasmal de la poste donne pour centre :
44.3718503232, 4.71003849979
ce qui sur GMaps et OSM ne correspond pas au centre ville.
En revanche pour cette même vile OSM donne pour cente (https://nominatim.openstreetmap.org/det ... =179153313) :
44.3778474, 4.6976609
Donc visiblement il y a une conversion de coordonnées angulaires vers coordonnées angulaires, mais avec un changement de paramètres (rayons ? origine du zéro ? autre bais ?).
Est-ce bien cela ?
En revanche j'ai testé une coordonnée du BANO dans le 69, c'est tombé pile... c'est dur à suivre ! :cry:

Zebu1er
Messages : 10
Inscription : dim. févr. 11, 2018 9:52 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Zebu1er » mer. févr. 14, 2018 3:45 pm

Toutes mes excuses !
Si effectivement pour le fichier de la poste les coordonnées sont un peu décalées, en revanche pour les contours de commune c'est bon J'avais en fait un décalage dans la lecture du fichier SHP. Une fois converti en KML ça donne bien un tracé pile au bon endroit.
En revanche la conversion EPSG: 3857 / distances devrait effectivement désormais m'aider à faire mes propres superpositions sur cartes, la formule devrait être aux petits oignons.
Merci.

Sefoun
Messages : 238
Inscription : lun. nov. 03, 2014 8:01 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Sefoun » mer. févr. 14, 2018 4:47 pm

Pour terminer sur les points qui ne tombent pas sur le centre ville, il n'y a pas de coordonnées "officielles" dans le fichier laposte_hexasmal les points ont été déposés arbitrairement, sur OSM aussi. Enfin sur OSM la logique souvent c'est la lisibilité sur la carte, dans le cas de Pierrelatte le contributeur à probablement jugé qu'à une certaine échelle, le nom de la commune dérangerait moins s'il était placé sur le théâtre, peut être que chez laposte ils ont estimés que ça serait mieux sur l'école, d'autres auraient pu choisir la mairie.

Dans certains cas, sur osm ou ailleurs, le nom de la commune n'est pas du tout posé sur le centre-ville, parfois il est simplement calculé en tant que centroïde du polygone formé par les limites administratives de la commune et donc le point peut se retrouver en plein champ.

Zebu1er
Messages : 10
Inscription : dim. févr. 11, 2018 9:52 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Zebu1er » lun. févr. 19, 2018 3:34 pm

Oui il est vrai que la notion de centre est un peu subjective. J'ai aussi trouvé un fichier eucircos_regions_departements_circonscriptions_communes_gps mais il semble que les coordonnées GPS sont trop arrondies et manquent donc un peu de précision. La précision doit être en centaines de mètres, ce qui sur une carte un peu serrée provoque des alignements :
21-beaune.png
21-beaune.png (227.11 Kio) Consulté 1188 fois
Du coup comme je veux superposer les codes INSEE sur la carte je vais simplement calculer les centres à partir des limites de communes. Et pour déterminer les communes à afficher, rechercher les positions GPS dans eucircos_regions_departements sur un peu plus large que la carte. Ca devrait être suffisant comme ça !

Avatar de l’utilisateur
cquest
Messages : 1758
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Utilisées les coordonnées SHP sur une carte

Message par cquest » mar. févr. 20, 2018 8:47 am

Pour des limites de communes aux géométries non simplifiées, il y a l'export annuel que je fais d'OSM:

http://www.data.gouv.fr/fr/datasets/dec ... streetmap/

Le calcul des centroid peut être fait une seule fois, en dehors de ton logiciel.

Zebu1er
Messages : 10
Inscription : dim. févr. 11, 2018 9:52 pm

Re: Utilisées les coordonnées SHP sur une carte

Message par Zebu1er » jeu. mars 01, 2018 11:06 am

Oui je suis tout à fait d'accord, c'est finalement la solution la plus simple.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités