Conversion entre le format KML et le fichier shapefile (SHP)?

97

Mes utilisateurs m'envoient des données de points numérisées à l'aide de Google Earth.

Comment puis-je convertir leur KML en un fichier de formes?

TroutSlayer
la source

Réponses:

129

En utilisant l'open source ogr2ogrde GDAL / OGR :

ogr2ogr -f 'ESRI Shapefile' output.shp input.kml

Comme indiqué dans le commentaire de grego ci - dessous , vous devrez peut-être utiliser des guillemets doubles au lieu de guillemets simples pour l'option de format de sortie (par exemple, "Fichier de forme ESRI" pour la ligne de commande Windows). Voir aussi le wiki gdal .

fmark
la source
20
... et juste pour éviter la question naturelle suivante, cela fonctionne également dans l'autre sens: ogr2ogr -f sortie KML.kml input.shp
glennon
8
Si vous préférez utiliser des outils basés sur une interface graphique, QGIS peut servir d’interface pour ogr2ogr.
underdark
1
souhaite qu'il y avait un indice en
Pure.Krome
1
@mattwilkie Je pense qu'il voulait dire quelque chose comme Zamzar.com. Un service de conversion en ligne.
RK
1
Je devais utiliser des guillemets doubles pour l'argument "ESRI Shapefile".
MatthewD
30

ArcGIS 10 dispose d'un outil de stratégie de groupe appelé KML vers couche qui convertit KML en classe d'entités. Recherchez KML en utilisant la nouvelle recherche. J'ai utilisé cela pour récupérer les flux de kml de Google en cas de marée noire et les convertir en SHP.

KML To Layer peut uniquement créer une classe d'entités de géodatabase. Elle doit donc être suivie d'une étape Classe d'entités vers Classe d'entités pour la convertir en fichier de formes.

jiriteach
la source
2
L'outil mentionné ici semble être une couche KML en couche, mais il ne peut créer qu'une classe d'entités de géodatabase devant être suivie par l'étape Classe d'entités en classe d'entités pour la convertir en un fichier de formes.
PolyGeo
19

Utilisez ogr2ogr, mais si vous n'êtes pas intéressé par une ligne de commande, essayez ogr2gui - une interface très simple pour ogr2ogr.

om_henners
la source
10

Pour utiliser des données spatiales publiées sous forme de fichier KML ou KMZ dans ArcGIS, vous devez d'abord convertir le fichier KML en une classe d'entités (fichier de formes). L'université du Connecticut a publié un script pour la création de fichiers de formes à partir de KML appelé KML_to_Shp.tbx. Cela fonctionne très bien et vous pouvez l'utiliser à partir d'ArcToolbox. Parce que KML sera (devrait) toujours être en coordonnées géographiques (WGS84), vous voudrez éventuellement les transformer en UTM Zone 15N NAD83 ...

Comme pour tous les nouveaux outils, consultez la documentation avant utilisation. Vous pouvez le trouver sur le site Web du Centre d’éducation et de recherche sur l’utilisation des sols de UCONN. Une fois que vous l'ajoutez à votre boîte à outils et que vous comprenez ses limites, l'outil est très simple à utiliser.

http://clear.uconn.edu/tools/kml_to_shp/index.htm

TroutSlayer
la source
3
Vous ne voulez pas toujours la zone UTM 15N NAD83, vous voulez la zone appropriée pour les données. Et vous pouvez aussi projeter avec WGS84 (c.-à-d. Que WGS84 ne veut pas dire latlon)
Vinko Vrsalovic
10

Global Mapper est un autre produit commercial qui mérite d'être mentionné . Cela tombe dans la catégorie de la vue, convertir, re-projeter presque toutes les données géographiques que vous pouvez imaginer. J'utilise beaucoup la version gratuite dans un cours que j'enseigne et presque tout le monde s'en va commenter le couteau suisse des outils SIG (bien que la version gratuite ne traduise pas les traductions, elle expose tout le menu et toutes les options). Vaut le coût dans mon expérience.

Dennis
la source
10

Couple plus d'options en plus des autres réponses ...

L' application fdo2fdo de SL-King , qui utilise les bibliothèques FDO open source, vous permet d'effectuer des traductions de KML à SHP et vice versa. Il comprend à la fois une interface utilisateur graphique (qui exprime les traductions de format à format et des traductions de mappage de schéma plus personnalisées), ainsi qu'un outil en ligne de commande.

Pour les applications appropriées, le logiciel FME de Safe Software vous donne un contrôle étonnant sur la manière dont vous mappez les informations source sur la destination. Si vous possédez ArcGIS, vous pouvez y accéder via l’extension d’interopérabilité des données ( liste des formats ) moyennant un coût supplémentaire.

S'ils ne sont que des entités ponctuelles sans attributs, j'envisagerais d'analyser le code XML en quelque chose que vous pouvez facilement importer, comme un fichier CSV; vous recherchez simplement les données entre les balises de coordonnées.

JasonBirch
la source
9

Une autre option consiste à utiliser XToolsPro, une extension tierce qui fonctionne dans ArcGIS. Parmi leurs nombreux outils de conversion pratiques se trouve une fonction "Importer des données à partir de KML".

Pure.Krome
la source
8

Il existe également d'autres produits commerciaux. Arc2Earth vient à l'esprit. L'intégration avec ArcGIS Desktop est très bonne. http://www.arc2earth.com

Jason
la source
8

QGIS est devenu beaucoup plus robuste pour la conversion entre kml et shp. Utilisez simplement le menu Enregistrer sous du menu contextuel de la couche. Ou ouvrez chacun de ces types de fichiers à partir du menu Ajouter un nouveau calque, veillez à modifier le type de fichier dans la boîte de dialogue.

Willy
la source
6

Vous pouvez également consulter FME à partir de Safe Software http://www.safe.com

Un essai de 14 jours est disponible. FME vous permet même de mapper les attributs de votre fichier KML au format ESRI SHP lors du processus de conversion / migration des données, en plus de la possibilité de filtrer les fichiers de points KML en fonction de certains attributs ou de certaines étendues spatiales.

Il est également possible d'effectuer une conversion par lots lorsque vous avez un grand ensemble de fichiers KML de vos utilisateurs.

~ SRG

SRG
la source
6

Utilisez OGR pour le contrôle en ligne de commande. Google Earth Pro vous donnera un moyen graphique de convertir, ainsi que diverses autres applications.


la source
5

ET GeoWizards propose également une option d'importation à partir de Google Earth, qui convertira les fichiers KML ou KMZ en classe d'entités. > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm

Si vous recherchez une option open source, je vois que MapWindow a été mis à jour récemment, et il existe quelques plugins pour la conversion vers et à partir de KML et de fichiers de formes.

Don Meltz
la source
5

Le SIG Open Source MapWindow dispose d’une extension gratuite ( KML2Shapefile ) pour la conversion de fichiers KML / KMZ en fichiers de formes.

Tim Beermann
la source
4

Si vous avez l'extension interop, chargez ce fichier KML directement dans ArcMap et exportez-le vers shp.

Bien que la réponse à votre question soit inverse, au cas où quelqu'un viendrait faire l'inverse, je trouve ce script parfait pour passer de SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273

Simon
la source
3

Voici quelques options que je ne voyais dans aucune des réponses pour ajouter des ressources supplémentaires pour la conversion de KML en SHP:

Convertisseur MyGeodata

Le convertisseur en ligne du format Keyhole Markup Language au format ESRI Shapefile (KML à SHP) est un outil rapide et facile à utiliser pour les conversions individuelles et par lots. Converter prend également en charge plus de 90 autres formats SIG / CAD vectoriels et rasters et plus de 3 000 systèmes de référence de coordonnées.

Free Geography Tools couvre et fournit un tutoriel de l' outil logiciel Zonums

pourquoizar
la source
2

Une aide simple et efficace pour obtenir des résultats plus nets consiste à convertir d'abord KML en GPX (plusieurs logiciels Open Source pouvant le faire) et à ouvrir les données respectives (GPX comporte 5 classes d'informations différentes: points de cheminement, points de trace, Points de route, pistes et itinéraires) en utilisant le fichier ogr2ogr de GDAL / OGR dans QGIS et enregistrez-le directement au format de fichier .SHP.

Il est également très facile d'utiliser le traitement par lots pour de grandes quantités de données (en utilisant les couches de fusion de vecteur de SAGA, par exemple) pour générer un fichier de forme unique si vous le souhaitez. Vous pouvez également effacer les attributs vides avant la dernière "Enregistrer au format SHP".

Portez une attention particulière au système de codification si des caractères étranges apparaissent sur votre résultat final. Vous pouvez choisir celui qui convient au moment où vous ajoutez de nouvelles données vectorielles à votre carte.

Ricardo M. Nogueira Mendes
la source
0

Je suis en retard à la fête mais voici quelques moyens supplémentaires:

  1. Google Fusion Tables , il peut convertir les informations relatives aux points KML en WGS84 X et Y au format .csv, que vous pouvez ensuite utiliser dans votre logiciel d'analyse SIG préféré.

  2. Utiliser le paquetage rgdal dans R .:

    install.packages("rgdal")
    library(rgdal) #load package
    kmlfile=readOGR("yourkmlfilehere.kml") #load KML
    writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape
    
Richard N. Belcher
la source
0

Autre astuce: si vous souhaitez convertir plusieurs fichiers KML d'un fichier / dossier à la fois en fichier de forme à l'aide de la ligne de commande, ouvrez cmd dans le dossier et saisissez-le dans:

pour / R% f dans (* .kml), exécutez la commande "ESRI Shapefile" "% ~ dpnf.shp" "% f"

Remarque: Il utilisera le nom du fichier KML comme nom du fichier de formes. Assurez-vous donc que vos fichiers KML disposent des formats de dénomination appropriés pour les fichiers de formes. Le fichier de formes sera créé dans le même répertoire que le kml correspondant. Les KML des sous-répertoires seront également convertis en fichiers de formes.

Ifeoma Collins
la source
-1

Pour convertir le format KML au format de fichier Shp, vous pouvez utiliser l'utilitaire ogr2ogr. Tout d'abord, vous devez l'installer dans le système. Si vous l'avez déjà installé, utilisez le type ogr2ogr dans le terminal.

Maintenant, pour la conversion, la commande donnée doit être exécutée, c'est-à-dire

--- ogr2ogr -f 'ESRI Shapefile' Output_sahpefile.shp Input_KML.kml

Voici comment les conversions peuvent être effectuées par ogr2ogr et si vous n'obtenez pas de résultats, vous pouvez convertir Kml en shp par la méthode de codage.

Cela peut aussi être fait en utilisant PHP. Vous pouvez créer une fonction définissant cette commande sous forme de chaîne et lui attribuer la chaîne à exécuter dans la méthode shell_exec (). Shell_exec () exécute la commande et renvoie le résultat sous forme de chaîne.

public function KML_to_shp($KMLfilepath,$output){
 $query="ogr2ogr -f 'ESRI Shapefile'  $output.gml  $KMLfilepath";
 shell_exec($query);
 }

voici un post pour convertir kml en shp en utilisant l’outil de ligne de commande ogr2ogr ou en utilisant le code php. Tandis que si vous utilisez l'outil QGIS, vous pouvez consulter l'un de mes billets de blog ici, kml, pour convertir shp à l'aide de QGIS ou continuer à utiliser ce message.

Himanshu Patel
la source
1
Êtes-vous associé au site Web que vous proposez comme réponse? Dans l'affirmative, veuillez l'indiquer dans vos messages.
LaughU
-2

Dans ArcGIS, recherchez simplement "kml TO LAYER" ou "Layer to KML". cet outil vous aidera à convertir en shapefile et KML

Naseem Ahmad
la source
Je pense que cette approche a déjà été mentionnée auparavant par un autre auteur. Alternativement, vous pouvez suggérer quelque chose de nouveau ou amélioré.
Taras