KML 및 스타일 정보를 Geoserver로 가져 오기


9

그래서 저는 1 년 넘게 개발 된 프로젝트를 진행하고 있지만 최근에 참여한 적이 있습니다. 내 작업에는 약 2,500 개의 KML 파일을 다른 형식으로 변환하고이 파일을 Geoserver로 가져온 다음 각 파일의 관련 스타일 정보를 복사하는 작업이 포함됩니다. Geoserver를 사용하면 KML 파일을 직접 가져올 수 있지만 파일이 올바르게 렌더링되지 않는 것 같습니다. 그리고 상사는 철학적 인 이유로 KML 형식에서 벗어나고 싶습니다.

ogr2ogr을 사용하여 이러한 파일을 ESRI Shapefile로 변환하려고 시도했지만 변환 프로세스는 파일의 거의 1/3에서만 작동했으며 스타일 정보에 필요한 일부 메타 데이터가 지워졌습니다. 내가 읽은 다각형과 점의 코드를 변환하지 않은 파일은 QGIS와 같은 다른 프로그램에서 오류가 될 수 있습니다.

또한 모든 KML 파일을 PostGIS 데이터베이스에 넣고 그와 같이 변환하려고 시도했습니다. 그러나 가져 오기 위해 빈 테이블을 남기고 모든 데이터를 삭제하는 것으로 보입니다.

TL; DR 2,500 개의 KML 파일을 Geoserver가 사용할 수있는 형식으로 변환하는 방법을 찾아야하며 XML 스타일 정보를 사용할 것입니다. 나는 완전한 GIS 멍청한 놈이며 이것은 처음으로 게시하는 것이므로 이것이 조금 어리 석다면 미안합니다.


스타일이 모든 KML 파일에서 기본적으로 동일합니까? 아니면 완전히 다른가요? 전자의 경우 SLD (XML 기반 형식)를 사용하는 GeoServer에 대한 스타일 파일 (또는 파일 세트)을 손으로 롤링 할 수 있습니다.
nmtoken


나는이 질문을 어디에서 물어볼 수 있는지 모르겠지만 내 대답을 알고 있다고 확신합니다. 어쨌든 GeoServer에서 KML을 새로운 데이터 소스로 업로드 할 수 있습니까? @samane
Mostafa Fallah

답변:


1

GeoServer 데이터와 스타일이 분리되어 있으므로이를 혼합 할 방법이 없습니다. SLD를 자동 생성 할 수 있습니다. 지금까지 kml 스타일에서 geoserver 스타일로의 변환기가 존재하는지 여부는 알 수 없습니다.


1

먼저 지오 서버 스타일 (SLD)과 데이터 (KML)가 완전히 다릅니다. Geoserver 및 이후 버전에서 KML 파일을 가져오고, 스타일 편집기에서 SLD 파일을 만들거나, 뷰어 내에서 Mapfishapp와 같은 스타일을 만든 다음, .sld 파일을 저장하여 XML에 쓰지 않고도 sld를 쉽게 가져올 수 있습니다 (분류하기가 더 어렵거나 일부 시스템이 쉽게 인식 할 때 다른 특정 스타일).

나중에 KML 파일을 사용하여 GIS 데이터를 저장했으며 항상 속성을 잃었습니다 (= 데이터 손실). KML은 지오메트리 정보 만 유지합니다. nativ 데이터를 다른 형식 (CSV 유지 속성)으로 저장하거나 데이터 테이블을 작성한 다음 지리 정보를 제공하거나 직접 계층을 작성하는 것이 좋습니다. (셰이프 파일, Csv ...).

내가 당신을 도울 수 있기를 바랍니다 ...


1

kml 파일에서 사용하고 "메타 데이터"라고하는 추가 정보는 KML 전문 용어에있을 수 있습니다.

  1. 스타일과 스타일 맵
  2. ExtendedData
  3. 장소 표시의 설명 입력란에있는 일반적으로 html 표 형식의 맞춤 정보

각 kml 파일은 ASCII 파일이므로 텍스트 처리 스크립트를 통해 처리 할 수 ​​있습니다. 내 이해에 따르면, Geoserver에서 제시하고 스타일을 지정하려는 각 유형의 객체에 대해 별도의 "레이어"를 만들어야합니다. 이것은 각 kml 파일에서 객체 유형의 분류에 따라 여러 파일로 끝나는 것을 의미합니다.

상용 공구를위한 간단한 작업이 아닙니다. 바라건대, 모든 2.500kml 파일이 동일한 응용 프로그램으로 작성되면 동일한 구조를 갖게됩니다. 이 경우이 구조와 많은 사용자 지정 스크립팅에 대한 자세한 분석이 필요합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.