Importowanie KML i informacji o stylu do Geoserver

9

Pracuję więc nad projektem, który był rozwijany od ponad roku, ale dopiero niedawno się zaangażowałem. Moje zadanie obejmuje konwersję około 2500 plików KML do innego formatu, importowanie tych plików do Geoservera, a następnie kopiowanie powiązanych informacji o stylu dla każdego pliku. Zdaję sobie sprawę, że Geoserver pozwala na bezpośredni import plików KML, jednak nasze pliki nigdy nie wydają się poprawnie renderowane, a mój szef chciałby odejść od formatu KML z powodów filozoficznych.

Korzystając z ogr2ogr, próbowałem przekonwertować te pliki na pliki kształtu ESRI, jednak proces konwersji działał tylko na około jednej trzeciej plików i usunął niektóre metadane wymagane w informacjach o stylu. Pliki, które nie przekonwertowały kodu na wielokąty i punkty, które przeczytałem, mogą być błędem dla innych programów, takich jak QGIS.

Próbowałem również umieścić wszystkie pliki KML w bazie danych PostGIS i przekonwertować je w ten sposób. Wydaje się jednak, że usuwa to wszystkie dane, pozostawiając zasadniczo puste tabele do zaimportowania.

TL; DR Muszę znaleźć sposób na konwersję 2500 plików KML do formatu używanego przez Geoserver i będę pracować z informacjami o stylu XML. Jestem kompletnym GIS noob i to mój pierwszy post, więc przepraszam, jeśli wydaje się to trochę śmieszne.

Jakub
źródło
Czy styl jest zasadniczo taki sam dla wszystkich plików KML, czy wszystkie są zupełnie inne? Jeśli ten pierwszy może się okazać, że możesz po prostu ręcznie zrolować plik stylu (lub zestaw plików) dla GeoServer, który używa SLD (format oparty na XML).
nmtoken
Nie wiem, gdzie mogę zadać to pytanie, ale jestem pewien, że znasz moją odpowiedź. Czy mimo to jest tu przesyłanie KML jako nowego źródła danych w GeoServer? @samane
Mostafa Fallah

Odpowiedzi:

1

W GeoServer dane i styl są rozdzielone, nie ma możliwości ich pomieszania. Możesz automatycznie wygenerować SLD. Jak dotąd nie wiem, czy istnieje konwerter dla stylu kml na styl geoserver.

GeoStoneMarten
źródło
1

Po pierwsze, styl Geoserver (SLD) i dane (KML) są całkowicie różne. Zaimportuj plik KML w Geoserver i nowszych, utwórz plik SLD w edytorze stylów lub utwórz styl w przeglądarce (np. Mapfishapp), a następnie zapisz plik .sld, aby łatwo uzyskać sld bez zapisu w XML (trudniejsze do przeprowadzenia klasyfikacji lub inny specyficzny styl, gdy jakiś system łatwo go zrealizuje).

Później używałem plików KML do zapisywania danych GIS i cały czas traciłem atrybut (= dane utracone). KML po prostu zachowuje informacje o geometrii. Lepiej jest zapisać dane natywne w innym formacie (atrybut CSV keep) lub po prostu utworzyć tabelę danych, a następnie podać informacje geograficzne lub bezpośrednio utworzyć warstwę. (shapefile, Csv ...).

Mam nadzieję, że ci pomogę ...

Gaetan
źródło
1

Dodatkowe informacje w pliku kml, których chcesz użyć i które nazywasz „metadanymi”, mogą znajdować się w żargonie KML:

  1. Style i mapy stylów
  2. ExtendedData
  3. Informacje niestandardowe w polu Opis oznaczenia miejsca, zwykle w formie tabel HTML

Ponieważ każdy plik kml jest plikiem ASCII, można go przetwarzać za pomocą skryptu przetwarzającego tekst. Zgodnie z moim rozumieniem dla każdego typu obiektu, który chcesz przedstawić i nadać styl w Geoserver, należy utworzyć osobną „warstwę”. Oznacza to, że z każdego pliku kml skończy się kilka plików, w zależności od klasyfikacji typów obiektów.

Nie jest to proste zadanie dla gotowych narzędzi. Mamy nadzieję, że jeśli wszystkie pliki o pojemności 2.500 kml zostaną utworzone za pomocą tej samej aplikacji, będą miały tę samą strukturę. W takim przypadku potrzebujesz szczegółowej analizy tej struktury i wielu niestandardowych skryptów.

użytkownik73203
źródło
1

Otwórz kml i zajrzyj do środka, wygląda na to, że wszystko, czego naprawdę potrzebujesz, to dane, ponieważ inne plakaty sugerują, że stylów nie ma na kartach, więc twoim problemem jest konwersja wszystkich plików, które są w zasadzie tylko plikami tekstowymi. Naucz się pytona

następnie zhakuj coś takiego do kształtu: https://gist.github.com/linwoodc3/0306734dfe17076dfd34e09660c198c0

Keith
źródło