XL 2016 Cartes choroplèthes des communes Insee

Jacques BRY

XLDnaute Nouveau
Bonjour

J'ai réalisé une carte choroplèthe à partir d'un tableau d'environ 35 000 lignes contenant dans l'ordre : le N° Insee, le code postal, le pays, la région, le département le nom de l commune et les données en dernière colonne.

Les polygones de la carte n'affichent en fait que ceux des codes postaux, regroupant donc plusieurs communes (environ 6 000 codes postaux au total pour environ 35 000 communes distinctes (avec N°s Insee différents)

Si je supprime les doublons de code postal de mon tableau : j'ai les mêmes cartes avec les mêmes polygones

J'ai manipulé le titres des colonnes à l'infini , en Français en Anglais au singulier au pluriel ... rien n'y fait

Que faut-il faire pour obtenir les polygones des 36 000 communes Insee ? (si je supprime la colonne Code Postal ça marche encore mais il y a beaucoup de trous dans les polygones ... ce n'est donc pas la solution)

Merci de votre aide

Bien cordialement

Jacques
 

Eric KERGRESSE

XLDnaute Occasionnel
Bonjour,

Perso, j'utilise Geo-Shape pour récupérer les limites des communes et MapsofWorld pour extrapoler relativement les shapes sur l'écran. Il s'agit de faire une règle de trois pour faire la correspondance entre les coordonnées géographiques et les coordonnées à l'écran.
En revanche, il vous faudra développer une routine pour interpréter les couples de coordonnées de ce type :
{"type": "Polygon", "coordinates": [[[-2.876284359378595, 48.28410387887174], [-2.891207989134452, 48.3013600572687], [-2.901091576800094, 48.3009840317229], [-2.911602062385656, 48.30738780859668], [-2.90623772361053, 48.320675446264744], [-2.891218328198813, 48.330059392750165], [-2.895581852558517, 48.33639193671377], [-2.891168901609164, 48.33444662777255], [-2.871435060038436, 48.33730502363166], [-2.863895143253061, 48.342009771295984], [-2.859383072260602, 48.34098846469662], [-2.857783289748957, 48.337684554270616], [-2.859756371231015, 48.32734691900805], [-2.840444357329456, 48.32388210724476], [-2.82895637905843, 48.31653720649545], [-2.827056942966847, 48.29195625246729], [-2.86789147768821, 48.287877496783054], [-2.876284359378595, 48.28410387887174]]]}

La carte est créée à partir de ce code à partir de la matrice des longitudes et des latitudes des communes à représenter :

Code:
          With ShCarte.Shapes.BuildFreeform(msoEditingAuto, longitude(1), latitude(1))
                      For I = 2 To nbpoint
                          .AddNodes msoSegmentLine, msoEditingAuto, longitude(I), latitude(I)
                      Next I
                      .AddNodes msoSegmentLine, msoEditingAuto, longitude(1), latitude(1)
                      .ConvertToShape.Select
                      Selection.Name = ville
                      Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 247) ' RGB(204, 255, 255) 'couleur(indexcouleur)
                 End With


Capture1.JPG


Capture.JPG
 

Jacques BRY

XLDnaute Nouveau
Bonjour et merci de votre intervention

J'utilise déjà cette approche pour les applications départementales avec ensuite le coloriage des polygones par d'autres macros Excel.

Nota : j'utilise également les fichiers OpenDataSoft, ceux de 2013 étaient corrects mais maintenant obsoletes vis à vis de l'évolution des communes Insee et ceux de 2020 sont une vraie calamité au niveau des polygones dont les nouveaux contours sont très souvent erratiques !
==> Si vous connaissez une autre source plus fiable ?


Au niveau national elle conduit à un temps de dessin des 35 000 polygones très long (mais il n'est à faire qu'une seule fois) et le temps de coloriage des 35 000 polygones est également trop long.

De plus je veux diffuser assez largement l'application sans qu'il soit besoin de macros que 90% des utilisateurs ne savent pas activer et je n'en ai pas réellement besoin fonctionnellement les données étant figées (contrairement à mes autres applications à base de macros)

L'approche Choroplèthe associée à un tableau croisé dynamique (pour choisir l'espèce à cartographier et la zone géographique à afficher (toute la France ou seulement une région ou seulement un département) serait idéale ... sauf que pour l'instant je n'ai que les polygones des codes postaux !

Bien cordialement
 

Trucky

XLDnaute Nouveau
Bonjour,

Perso, j'utilise Geo-Shape pour récupérer les limites des communes et MapsofWorld pour extrapoler relativement les shapes sur l'écran. Il s'agit de faire une règle de trois pour faire la correspondance entre les coordonnées géographiques et les coordonnées à l'écran.
En revanche, il vous faudra développer une routine pour interpréter les couples de coordonnées de ce type :


La carte est créée à partir de ce code à partir de la matrice des longitudes et des latitudes des communes à représenter :

Code:
          With ShCarte.Shapes.BuildFreeform(msoEditingAuto, longitude(1), latitude(1))
                      For I = 2 To nbpoint
                          .AddNodes msoSegmentLine, msoEditingAuto, longitude(I), latitude(I)
                      Next I
                      .AddNodes msoSegmentLine, msoEditingAuto, longitude(1), latitude(1)
                      .ConvertToShape.Select
                      Selection.Name = ville
                      Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 247) ' RGB(204, 255, 255) 'couleur(indexcouleur)
                 End With


Regarde la pièce jointe 1181461

Regarde la pièce jointe 1181462
Bonjour Eric,
Aprés avoir réalisé manuellement la carte des circonscriptions, J'aimerais bien reproduire une carte des communes pour un département ou une région, mais j'ai du mal à assembler les morceaux d'explications que vous avez donné. Serait-t-il possible de trouver un tuto quelque part ?
Sinon j'ai remarqué que les cartes des communes viennent toutes du blog de tatiak, et j'ai quelques dépts pris sur les échanges...
J'ai essayé de copier les communes d'un dépts, mais pas moyen.
85.png

Merci
 
Dernière édition:

Statistiques des forums

Discussions
315 097
Messages
2 116 185
Membres
112 679
dernier inscrit
Yupanki