71 votes

Meilleure façon de superposer un fichier de formes ESRI sur Google Maps ?

Quel est le meilleur moyen de superposer un shapefile dans Google Maps?

Après quelques recherches, il semble que convertir un shapefile en KML et superposer le KML dans Google Maps soit une option. Si c'est le cas, comment puis-je convertir un shapefile en KML?

Je crois qu'il existe quelques outils open source disponibles pour cette conversion. Est-ce que quelqu'un peut indiquer un outil pour convertir un shapefile en KML sans perte de données?

0 votes

Gis.stackexchange peut également vous aider, par exemple gis.stackexchange.com/questions/68027/…

47voto

Aaron Kreider Points 437

J'aime utiliser Quantum GIS (open source et convivial pour l'interface graphique) pour convertir le fichier shapefile en kml.

L'API Google Maps ne prend en charge qu'un sous-ensemble de la norme KML. Une limitation est la taille du fichier.

Pour réduire la taille de votre fichier, vous pouvez utiliser la fonction "simplifier les géométries" de Quantum GIS. Cela "lisse" les polygones.

Ensuite, vous pouvez sélectionner votre couche et faire un "enregistrer sous kml" dessus.

Si vous avez besoin de traiter un tas de fichiers, le processus peut être regroupé avec la commande ogr2ogr de Quantum GIS depuis l'invite osgeo4w.

Enfin, je recommande de compresser votre kml (avec votre programme de compression favori) pour réduire la taille du fichier et de l'enregistrer en tant que kmz.

1 votes

1. ctrl-shift-v pour charger un fichier de formes : qgis.org/fr/docs/user_manual/working_with_vector/…; 2. Enregistrer sous KML par : townshipgis.com/resources/problems-and-workarounds/…

17voto

chaos0815 Points 558

à partir du 12.03.2019 FusionTables n'existe plus...

Importez le Shapefile dans Google FusionTables (http://www.google.com/fusiontables) en utilisant http://www.shpescape.com/ et à partir de là, vous pouvez utiliser les données de plusieurs manières, par exemple les afficher à l'aide de GoogleMaps.

0 votes

La procédure elle-même a bien fonctionné. Dans mon cas, cependant, quelques formes n'ont pas été converties (par exemple, les coordonnées n'ont pas été converties).

0 votes

Cela fonctionne. Après la procédure, il est nécessaire de marquer l'accès public au graphique de fusion et d'ajouter une clé API aux cartes Google

1 votes

Comme de nombreux autres produits expérimentaux de Google, Google Fusion Tables sera également bientôt supprimé support.google.com/fusiontables/answer/9185417

16voto

Ryan Goodman Points 125

Je n'utiliserais pas le format KML. Utilisez plutôt GeoJSON que vous pouvez consommer directement dans l'API Google Maps maintenant. C'est une fonctionnalité plus récente qui n'existait pas dans les réponses originales.

En tout cas, il vous suffit d'ouvrir le fichier SHP dans Quantum GIS, et ensuite vous pouvez le convertir dans n'importe quel format qui vous convient (KML, GeoJSON).

Si vous utilisez Google Maps for Work, j'ai trouvé une extension premium qui gère le chargement des shapefiles directement, où vous pouvez vous connecter directement au shapefile que vous générez à partir d'ESRI. J'ai fait une recherche sur le site de CMaps et trouvé ce snippet qui charge le shapefile des États-Unis par état : https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp

var cMap = new centigon.locationIntelligence.MapView();
    cMap.key([votre_clé_api]);

    cMap.layerNames(["Formes de base"]);
    cMap.dbfKeys([['Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','District of Columbia','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming']]);
    cMap.userShapeKeys([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']); 
    cMap.labels([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']);

    cMap.polyDataSources([centigon.locationIntelligence.CMapAnalytics.DATA_PROVIDERS.SHAPE_DATAPROVIDER]);
    cMap.layerTypes([centigon.mapping.Layer.TYPE.POLY]);
    cMap.locations([["https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp"]]);

    cMap.panTo("USA");
    cMap.zoomLevel(3);

14voto

Wyatt Anderson Points 4012

Voulez-vous dire shapefile comme dans un fichier shapefile Esri? Dans tous les cas, vous devriez pouvoir effectuer la conversion en utilisant ogr2ogr, qui est disponible dans les packages GDAL. Vous avez besoin du fichier .shp et idéalement du fichier correspondant .dbf (qui fournira des informations contextuelles).

De plus, envisagez d'utiliser un outil comme MapShaper pour réduire la complexité de vos shapefiles avant de les transformer en KML; vous réduirez considérablement la taille du fichier en fonction de la quantité de détails dont vous avez besoin.

2voto

SoilSciGuy Points 185

Juste pour mettre à jour ces réponses, ESRI a inclus cet outil, connu sous le nom de Couche vers KML dans ArcMap 10.X. De plus, un outil Carte vers KML existe.

Il suffit d'importer la couche désirée (vectorielle ou matricielle) et de choisir l'emplacement de sortie, la résolution, etc. Outil très simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X