Przekształciłem plik kształtu z atrybutami w .kml dla klienta. Pliki .kml i atrybuty zostały następnie edytowane w Google Earth. Otrzymałem zaktualizowany plik .kml i teraz muszę go przywrócić do .shp. Problem w tym, że wszystkie moje atrybuty są teraz w formacie HTML, co powoduje, że wyskakujące okienko informacyjne w Google Earth. Gdy próbuję przekonwertować z powrotem na .shp, moje atrybuty zostają zbite w pole „Opis” (utworzone przez Google). I wszystkie moje atrybuty i informacje są skupione w jednej komórce. Czy istnieje sposób na wyodrębnienie danych z pola „Opis”. Nawet jeśli to zrobię, czy istnieje prosty sposób na pozbycie się formatu HTML i uczynienie go użytecznym?
To właśnie otrzymuję za pomocą metody „Fusion Table”, którą znalazłem na niektórych forach. Możesz zobaczyć html po lewej stronie, kontynuuje dalej niż pokazuje.
Korzystam z ArcGIS Desktop 10.2.
źródło
Odpowiedzi:
Właśnie potwierdziłem, że narzędzie przestrzennego ETL utworzone przy użyciu rozszerzenia Interoperacyjności danych przywróci atrybuty z pliku KML / KMZ z powrotem do pliku kształtu z taktowanym schematem. Wystarczy wybrać opcję Schemat dynamiczny w kreatorze tworzenia narzędzi:
obejściem byłoby przeanalizowanie pola opisu pod kątem wartości różnych pól atrybutów, których potrzebujesz, i skopiowanie ich do odpowiednich pól. I następnym razem poproś klienta, aby dodał atrybuty do arkusza kalkulacyjnego programu Excel lub czegoś takiego, abyś mógł po prostu dołączyć go z powrotem do swojego pliku kształtu w celu aktualizacji.
źródło
Musiałem najpierw otworzyć kml w QGIS i zapisać jako plik kształtu, który zachował atrybuty. W QGIS dodaj dane wektorowe i podczas przeglądania ustaw pliki typu na „Keyhole Markup Language (KML)” Przejdź do KML, który chcesz zaimportować, a następnie kliknij otwórz. Zapisz obiekty zaimportowane z KML do pliku Shapefile. Podczas importowania pliku kształtu w ArcMap zobaczysz wszystkie atrybuty zachowane.
źródło
To narzędzie Eksport do KML opracowane przez Kevina Martina działa.
Istnieją pewne problemy ze stylami, ale przynajmniej kolory i atrybuty są poprawne, i istnieje wiele opcji zabawy z atrybutami, etykietami itp.
źródło
Potrzebowałem tylko jednego z pól, które zawierały ciąg daty. Korzystając z arcMap, udało mi się to rozwiązać za pomocą kalkulatora pola, aby go wyodrębnić. Jeśli potrzebujesz tylko wyodrębnić kilka pól, może to działać dla ciebie, choć trochę nudne:
Poniższe kroki pomogą Ci zbudować linię VB do użycia w kalkulatorze pola do wycięcia podciągu z pola opisu na podstawie znaczników HTML i legalizacji danych przechowywanych w tabeli.
W arcMap dodaj nowe pole TEKSTOWE jako warstwę i pamiętaj, aby podać co najmniej tyle znaków, ile potrzebujesz do danych. Domyślnie jest to 50.
Następnie otwórz kalkulator pola dla nowego pola. Początek danych można znaleźć za pomocą funkcji InStr (), a dane wyodrębnić za pomocą funkcji Mid (). Wpisz następujące polecenie VB:
Mid([PopupInfo],InStr([PopupInfo],"DATE")+15,19)
Oczywiście zamień moje nazwy pól na swoje (z kroków 3 i 6) i zmień długość liczb 15 i 19 na długość podłańcuchów (znalezione w krokach 7 i 8).
W linii VB powyżej:
źródło
Oto znaleziony przewodnik, który przeprowadzi Cię przez kilka kroków za pomocą ArcMap, Google Drive Fusion Tables i MS Excel do konwersji plików KML do plików .shp przy zachowaniu atrybutów.
Link do strony z przewodnikiem .
źródło
Udało mi się to zrobić za pomocą kursorów i list, aby podzielić pole PopupInfo xml na przydatne wartości
użyj arcpy KML do narzędzia do warstw i narzędzi projektu, aby dostać się do pożądanego układu współrzędnych (napotkałem problemy z dodawaniem pól do oryginalnego wyniku konwersji, co może być spowodowane powiązanym z nim plikiem warstwy)
Użyj .da.SearchCursor, aby pobrać ciąg PopupInfo z pierwszego wiersza. Następnie podziel go na listę opartą na „<”, usuń dwie pierwsze wartości (pole etykiety z Google Earth) i umieść pozostałe wartości, które mają znacznik „td>”, ale nie znacznik zamykający „td>”, na nowej liście nazw pól (indeksy parzyste) i wartości pól (indeksy nieparzyste)
Zapętlaj listę nazw pól za pomocą arcpy.AddField_management, aby dodać wszystkie pola (pomiń, jeśli już istnieją)
Użyj .da.UpdateCursor, aby uzyskać PopupInfo dla wszystkich wierszy, a następnie podziel i utwórz nowe listy, tak jak kursor wyszukiwania
tym razem użyj wszystkich nieparzystych wartości indeksu, aby zaktualizować wiersze (jeśli i% 2 <> 0: wiersz [(i-1) / 2] = lista [i]), a następnie kursor.updateRow (wiersz)
źródło
bugmenot123 już o tym wspomniał, ale ogr2ogr może konwertować między plikami kształtów i kml.
Konwertujesz pomiędzy KML a formatem plików shapefile (SHP)? obejmuje sposób konwersji między nimi.
źródło
AKTUALIZACJA: jeśli natrafisz na ten wątek z tym samym problemem, istnieje narzędzie dla Ciebie! Sprawdź https://mygeodata.cloud/
Działam naprawdę dobrze Udało mi się przesłać mój plik KML, a wyeksportowany plik kształtu miał poprawnie wszystkie moje atrybuty w swoich polach. Jedynym minusem jest to, że istnieje ograniczona liczba „bezpłatnych” konwersji.
źródło
Nadal nie ma prostego rozwiązania tego problemu z konwersją. W ciągu ostatnich kilku lat zadawano tu wiele pytań:
kml-w-qgis-z-dodatkowymi danymi
zachowując-atrybuty-podczas-kml2shp-konwersji-w-arcgis-na-pulpicie
Konwertuj-kml-na-shapefile-bez-utraty-atrybut-danych
Wyjaśnienie esri dotyczące narzędzia do konwersji KmltoLayer:
„Jako„ właściciel ”narzędzia KML w Esri mogę powiedzieć: elementy ExtendedData wewnątrz KML nie będą się tłumaczyć na atrybuty pól podczas używania narzędzia KML do warstwowania z ArcGIS w dowolnej wersji (9.3-10.3). Obejmuje to ArcMap na Windows lub ArcGIS Server w systemie Linux. Istnieje prośba o ulepszenie w celu obsługi tego, co rozważamy w przyszłej wersji. ”
źródło