J'ai converti un fichier de formes avec des attributs en .kml pour un client. Le .kml et les attributs ont ensuite été modifiés dans google earth. J'ai reçu le .kml mis à jour et maintenant je dois le récupérer en .shp. Le problème est: tous mes attributs sont maintenant au format html, ce qui rend la boîte d'informations contextuelle dans google earth. Lorsque j'essaie de reconvertir en .shp, mes attributs sont regroupés dans un champ (Description créé par Google). Et TOUS mes attributs et informations sont regroupés dans une seule cellule. Existe-t-il un moyen d'extraire les données du champ "Description". Même si je fais cela, existe-t-il un moyen facile de se débarrasser du format html et de le rendre utilisable?
C'est ce que j'obtiens en utilisant la méthode "Fusion Table" que j'ai trouvée sur certains forums. Vous pouvez voir le html à gauche, il continue plus loin qu'il ne le montre.
J'utilise ArcGIS Desktop 10.2.
la source
Réponses:
Je viens de confirmer qu'un outil ETL spatial créé à l'aide de l'extension d'interopérabilité des données ramènera les attributs de votre fichier KML / KMZ dans un fichier de formes avec le schéma intact. Sélectionnez simplement l' option Dynamic Schema dans l'assistant de création d'outils:
une solution consiste à analyser le champ de description pour les valeurs des différents champs d'attribut dont vous avez besoin et à les copier dans les champs appropriés. Et la prochaine fois, demandez à votre client d'ajouter des attributs dans une feuille de calcul Excel ou quelque chose afin que vous puissiez simplement le joindre à votre fichier de formes pour la mise à jour.
la source
J'ai d'abord dû ouvrir le kml dans QGIS et l'enregistrer en tant que fichier de formes et il a conservé les attributs. Dans QGIS, ajoutez des données vectorielles et sous Parcourir, définissez les fichiers de type sur "Keyhole Markup Language (KML)" Naviguez jusqu'au KML que vous souhaitez importer, puis cliquez sur Ouvrir. Enregistrez les objets importés de KML dans un fichier de formes. Lors de l'importation du fichier de formes dans ArcMap, vous verrez tous les attributs conservés.
la source
Cet outil, Export to KML développé par Kevin Martin fait le travail.
Il y a quelques problèmes avec les styles mais au moins les couleurs et les attributs sont corrects, et il y a beaucoup d'options pour jouer avec les attributs, les étiquettes, etc.
la source
Je n'avais besoin que d'un des champs, qui contenait une chaîne de date. En utilisant arcMap, j'ai pu résoudre ce problème en utilisant le calculateur de champ pour l'extraire. Si vous n'avez besoin d'extraire que quelques champs, cela peut fonctionner pour vous, quoique un peu fastidieux:
Les étapes suivantes vous aideront à créer une ligne de VB à utiliser dans le calculateur de champ pour couper une sous-chaîne du champ de description en fonction des balises HTML et de la longueur des données stockées dans votre table.
Dans arcMap, ajoutez un nouveau champ TEXTE à votre couche et assurez-vous de lui donner au moins autant de caractères que vous en aurez besoin pour vos données. La valeur par défaut est 50.
Ensuite, ouvrez la calculatrice de champ pour votre nouveau champ. Le début des données est trouvé à l'aide de la fonction InStr () et les données sont extraites à l'aide de la fonction Mid (). Tapez la commande VB suivante:
Mid([PopupInfo],InStr([PopupInfo],"DATE")+15,19)
Bien sûr, remplacez mes noms de champs par les vôtres (à partir des étapes 3 et 6) et modifiez la longueur des nombres 15 et 19 à la longueur de vos sous-chaînes (trouvées aux étapes 7 et 8).
Dans la ligne VB ci-dessus:
la source
Voici un guide que j'ai trouvé qui vous guide à travers certaines étapes en utilisant ArcMap, Google Drive Fusion Tables et MS Excel pour convertir des fichiers KML en fichiers .shp tout en préservant les attributs.
Lien vers le site contenant le guide .
la source
J'ai pu faire ce travail en utilisant des curseurs et des listes pour diviser le champ xml PopupInfo en valeurs utiles
utiliser l'outil arcpy KML to layer et les outils Project pour accéder au système de coordonnées souhaité (j'ai rencontré des problèmes pour ajouter des champs à la sortie de conversion d'origine, ce qui peut être dû au fichier de couche qui lui est associé)
Utilisez .da.SearchCursor pour obtenir la chaîne PopupInfo de la première ligne. Ensuite, divisez-le en une liste basée sur '<', supprimez les deux premières valeurs (le champ d'étiquette de Google Earth) et placez les valeurs restantes qui ont la balise 'td>' mais pas la balise de fermeture 'td>' dans une nouvelle liste des noms de champ (index pairs) et des valeurs de champ (index impairs)
Parcourez la liste des noms de champs avec arcpy.AddField_management pour ajouter tous les champs (ignorez s'ils existent déjà)
Utilisez .da.UpdateCursor pour obtenir des PopupInfo pour toutes les lignes, puis divisez et créez de nouvelles listes comme avec le curseur de recherche
cette fois, utilisez toutes les valeurs d'index impaires pour mettre à jour les lignes (si i% 2 <> 0: ligne [(i-1) / 2] = liste [i]) puis curseur.updateRow (ligne)
la source
bugmenot123 l'a déjà mentionné, mais ogr2ogr peut convertir entre les fichiers de formes et kml.
Conversion entre KML et format shapefile (SHP)? couvre comment convertir entre les deux.
la source
MISE À JOUR: si vous rencontrez ce fil avec le même problème, il existe un outil pour vous! Consultez https://mygeodata.cloud/
Je travaille vraiment bien. J'ai pu télécharger mon KML et le fichier de formes exporté avait tous mes attributs correctement dans leurs propres champs. Le seul inconvénient est qu'il y a un nombre limité de conversions "gratuites".
la source
Il n'y a toujours pas de solution simple à ce problème de conversion. Elle a été posée ici plusieurs fois au cours des dernières années:
kml-in-qgis-with-additional-data
préservation-attributs-pendant-kml2shp-conversion-dans-arcgis-for-desktop
convertir-kml-en-fichier de formes sans perdre les données d'attribut
Explication d'esri pour leur outil de conversion KmltoLayer:
"En tant que" propriétaire "de l'outil KML chez Esri, je peux dire: les éléments ExtendedData à l'intérieur d'un KML ne se traduiront pas en attributs de champ lors de l'utilisation de l'outil KML to Layer avec ArcGIS dans n'importe quelle version (9.3-10.3). Cela inclut ArcMap sur Windows ou ArcGIS Server sous Linux. Il existe une demande d’amélioration pour prendre en charge ce problème, que nous envisageons pour une prochaine version.
la source