Viac

Import informácií KML a štýlu do Geoserveru


Pracujem teda na projekte, ktorý je vo vývoji viac ako rok, ale zapojil som sa len nedávno. Mojou úlohou je previesť zhruba 2 500 súborov KML do iného formátu, importovať tieto súbory do geoserveru a potom skopírovať informácie o príslušnom štýle pre každý súbor. Uvedomujem si, že Geoserver vám umožňuje importovať súbory KML priamo, ale zdá sa, že naše súbory sa nikdy nevykresľujú správne a môj šéf by sa chcel z filozofických dôvodov odkloniť od formátu KML.

Pomocou programu ogr2ogr som sa pokúsil previesť tieto súbory na ESRI Shapefiles, ale proces prevodu fungoval iba na zhruba tretine súborov a vymazal niektoré metadáta požadované v informáciách o štýle. Súbory, ktoré nekonvertovali kód pre polygóny a body, ktoré som čítal, môžu byť chybou v iných programoch, ako je QGIS.

Tiež som sa pokúsil vložiť všetky súbory KML do databázy PostGIS a takto ich previesť. Zdá sa však, že sa tým odstránia všetky údaje a ponechajú sa v podstate prázdne tabuľky na import.

TL; DR Potrebujem nájsť spôsob, ako previesť 2 500 súborov KML do formátu, ktorý môže používať Geoserver, a bude pracovať s informáciami o štýle XML. Som úplný GIS noob a toto je môj prvý príspevok, takže sa ospravedlňujem, ak to vyzerá trochu smiešne.


V GeoServeri sú údaje a štýl oddelené, neexistuje spôsob, ako ich kombinovať. Môžete automaticky vygenerovať SLD. Doteraz neviem, či existuje prevodník pre štýl kml na štýl geoserver.


Po prvé, štýl Geoserver (SLD) a údaje (KML) sú úplne odlišné. Importujte súbor KML do Geoserveru a novších, vytvorte súbor SLD v editore štýlov alebo vytvorte štýl v prehliadači (ako Mapfishapp) a potom uložte súbor .sld, aby ste ľahko získali sld bez zápisu do XML (ťažšie je realizovať klasifikáciu alebo iný špecifický štýl, keď si to nejaký systém ľahko uvedomí).

Neskôr som použil súbory KML na uloženie údajov GIS a stále som stratil atribút (= údaje sa stratili). KML uchováva iba informácie o geometrii. Je lepšie uložiť natívne údaje do iného formátu (atribút CSV keep) alebo len vytvoriť tabuľku údajov a potom poskytnúť geografické informácie alebo priamo vytvoriť vrstvu. (shapefile, Csv ...).

Dúfam, že vám pomôžem…


Dodatočné informácie v súbore kml, ktoré chcete použiť a ktoré nazývate „metadáta“, môžu byť v žargóne KML:

  1. Štýly a mapy štýlov
  2. ExtendedData
  3. Vlastné informácie v poli Popis značky miesta, zvyčajne vo forme html tabuliek

Pretože každý súbor kml je súborom ASCII, je možné ho spracovať pomocou skriptu na spracovanie textu. Podľa môjho chápania musí byť pre každý typ objektu, ktorý chcete v Geoserveri prezentovať a štylizovať, vytvorená samostatná „vrstva“. To znamená, že z každého súboru kml skončíte s niekoľkými súbormi v závislosti od klasifikácie typov objektov.

Nie je to jednoduchá práca pre bežné nástroje. Našťastie, ak sú všetky súbory 2 500 kml vytvorené pomocou rovnakej aplikácie, budú mať rovnakú štruktúru. V takom prípade budete potrebovať podrobnú analýzu tejto štruktúry a veľa vlastného skriptovania.


Otvorte kml a pozrite sa dovnútra, zdá sa, že všetko, čo skutočne chcete, sú údaje, pretože ostatné plagáty naznačujú, že štýly nie sú na kartách, takže vašim problémom je konverzia všetkých súborov, ktoré sú v podstate iba textovými súbormi, naučiť sa nejaký python

potom hacknite niečo také do tvaru: https://gist.github.com/linwoodc3/0306734dfe17076dfd34e09660c198c0


Pozri si video: Learn Google Earth: Importing KML, KMZ and GPS Data (Október 2021).