Ich habe ein Shapefile mit Attributen für einen Client in eine .kml-Datei konvertiert. Die .kml und Attribute wurden dann in Google Earth bearbeitet. Ich habe die aktualisierte .kml erhalten und muss sie jetzt wieder auf .shp zurücksetzen. Das Problem ist: Alle meine Attribute sind jetzt im HTML-Format, wodurch das Popup-Infobox in Google Earth angezeigt wird. Wenn ich versuche, wieder in .shp zu konvertieren, werden meine Attribute in einem (von Google erstellten) Feld "Beschreibung" zusammengefasst. Und ALLE meine Attribute und Informationen sind in einer einzigen Zelle zusammengefasst. Gibt es eine Möglichkeit, die Daten aus dem Feld "Beschreibung" zu extrahieren? Selbst wenn ich das mache, gibt es eine einfache Möglichkeit, das HTML-Format loszuwerden und es nutzbar zu machen?
Dies ist, was ich mit der "Fusion Table" -Methode bekomme, die ich in einigen Foren gefunden habe. Sie können das HTML auf der linken Seite sehen, es geht weiter als es zeigt.
Ich verwende ArcGIS Desktop 10.2.
quelle
Antworten:
Ich habe gerade bestätigt, dass ein mit der Erweiterung Data Interoperability erstelltes Spatial ETL-Tool die Attribute aus Ihrer KML / KMZ-Datei mit dem aktuellen Schema wieder in ein Shapefile zurückbringt. Wählen Sie einfach die Option Dynamisches Schema im Assistenten zum Erstellen von Werkzeugen:
Eine Problemumgehung besteht darin, das Beschreibungsfeld nach den Werten der verschiedenen Attributfelder zu durchsuchen und diese in die entsprechenden Felder zu kopieren. Lassen Sie Ihren Kunden beim nächsten Mal Attribute zu einer Excel-Tabelle oder etwas anderem hinzufügen, damit Sie sie zur Aktualisierung einfach wieder mit Ihrem Shapefile verknüpfen können.
quelle
Ich musste zuerst die kml in QGIS öffnen und als Shapefile speichern, und die Attribute wurden beibehalten. Fügen Sie in QGIS Vektordaten hinzu und setzen Sie unter Durchsuchen Dateien vom Typ auf "Keyhole Markup Language (KML)". Navigieren Sie zu der KML, die Sie importieren möchten, und klicken Sie dann auf Öffnen. Speichern Sie die aus KML importierten Objekte in einem Shapefile. Beim Importieren des Shapefiles in ArcMap werden alle Attribute beibehalten.
quelle
Dieses von Kevin Martin entwickelte Tool Export to KML erledigt die Arbeit.
Es gibt einige Probleme mit den Stilen, aber zumindest sind Farben und Attribute korrekt, und es gibt viele Optionen, um mit den Attributen, Beschriftungen usw. zu spielen.
quelle
Ich brauchte nur eines der Felder, das eine Datumszeichenfolge enthielt. Mit arcMap konnte ich dies mithilfe des Feldrechners lösen, um es zu extrahieren. Wenn Sie nur ein paar Felder extrahieren müssen, funktioniert dies möglicherweise für Sie, wenn auch etwas mühsam:
Die folgenden Schritte helfen Ihnen beim Aufbau einer VB-Zeile, die im Feldrechner verwendet werden kann, um eine Teilzeichenfolge aus dem Beschreibungsfeld basierend auf den HTML-Tags und der in Ihrer Tabelle gespeicherten Datenmenge auszuschneiden.
Fügen Sie in arcMap Ihrem Layer ein neues TEXT-Feld hinzu und geben Sie ihm mindestens so viele Zeichen, wie Sie für Ihre Daten benötigen. Der Standardwert ist 50.
Öffnen Sie dann den Feldrechner für Ihr neues Feld. Der Anfang der Daten wird mit der Funktion InStr () ermittelt und die Daten mit der Funktion Mid () extrahiert. Geben Sie den folgenden VB-Befehl ein:
Mid([PopupInfo],InStr([PopupInfo],"DATE")+15,19)
Tauschen Sie natürlich meine Feldnamen gegen Ihre aus (aus den Schritten 3 und 6) und ändern Sie die Länge der Nummern 15 und 19 in die Länge Ihrer Teilzeichenfolgen (in den Schritten 7 und 8).
In der obigen VB-Zeile:
quelle
Hier ist eine Anleitung, die Sie gefunden hat und die Sie durch einige Schritte mit ArcMap, Google Drive Fusion Tables und MS Excel führt, um KML-Dateien in .shp-Dateien zu konvertieren und dabei die Attribute beizubehalten.
Link zu der Site, auf der sich der Leitfaden befindet .
quelle
Ich konnte diese Funktion mithilfe von Cursorn und Listen ausführen, um das PopupInfo-XML-Feld in nützliche Werte aufzuteilen
Verwenden Sie das arcpy KML zum Überlagern von Werkzeugen und Projektwerkzeuge, um zum gewünschten Koordinatensystem zu gelangen (ich hatte Probleme beim Hinzufügen von Feldern zur ursprünglichen Konvertierungsausgabe, was möglicherweise auf die damit verbundene Ebenendatei zurückzuführen ist).
Verwenden Sie .da.SearchCursor, um die PopupInfo-Zeichenfolge aus der ersten Zeile abzurufen. Teilen Sie es dann in eine Liste auf, die auf '<' basiert, löschen Sie die ersten beiden Werte (das Beschriftungsfeld von Google Earth) und fügen Sie die verbleibenden Werte mit dem Tag 'td>', aber nicht mit dem abschließenden Tag 'td>' in eine neue Liste ein von Feldnamen (gerade Indizes) und Feldwerten (ungerade Indizes)
Durchlaufen Sie die Liste der Feldnamen mit arcpy.AddField_management, um alle Felder hinzuzufügen (überspringen, falls sie bereits vorhanden sind).
Verwenden Sie .da.UpdateCursor, um PopupInfos für alle Zeilen abzurufen, und teilen Sie dann neue Listen auf und erstellen Sie sie wie beim Suchcursor
Verwenden Sie dieses Mal alle ungeraden Indexwerte, um Zeilen zu aktualisieren (wenn i% 2 <> 0: Zeile [(i-1) / 2] = Liste [i]) und dann cursor.updateRow (Zeile)
quelle
bugmenot123 hat es bereits erwähnt, aber ogr2ogr kann zwischen Shapefiles und kml konvertieren.
Konvertieren zwischen KML- und Shapefile-Format (SHP)? beschreibt, wie man zwischen den beiden konvertiert.
quelle
UPDATE: Wenn Sie auf diesen Thread mit dem gleichen Problem stoßen, gibt es ein Tool für Sie! Überprüfen Sie https://mygeodata.cloud/
Ich arbeite sehr gut. Ich konnte meine KML hochladen und das exportierte Shapefile hatte alle meine Attribute korrekt in ihren eigenen Feldern. Der einzige Nachteil ist, dass es eine begrenzte Anzahl von "kostenlosen" Conversions gibt.
quelle
Es gibt noch keine einfache Lösung für dieses Konvertierungsproblem. Es wurde hier in den letzten Jahren mehrmals gefragt:
kml-in-qgis-mit-zusätzlichen-Daten
Beibehalten von Attributen während der kml2shp-Konvertierung in arcgis für den Desktop
Konvertieren Sie kml in Shapefile, ohne Attributdaten zu verlieren
esris Erklärung für ihr KmltoLayer-Konvertierungstool:
"Als 'Eigentümer' des KML-Tools bei Esri kann ich sagen: Die ExtendedData-Elemente in einer KML werden bei Verwendung des KML-to-Layer-Tools mit ArcGIS in keiner Version (9.3-10.3) in Feldattribute übersetzt. Dies schließt ArcMap ein Windows oder ArcGIS Server unter Linux. Es gibt eine Erweiterungsanforderung, um dies zu unterstützen, die wir für eine zukünftige Version in Betracht ziehen. "
quelle