KML이 Google Maps API에 비해 너무 크거나 복잡한 경우 다음은 무엇입니까? [닫은]


29

Google 웹 앱에는 간단한 매핑 기능 (현재 Google지도에 마커 및 KML 오버레이 만 있음)이 포함되어 있습니다. 이것은 꽤 잘 작동합니다. Google이 직면 한 유일한 제한은 KML에 대한 Google의 크기 및 복잡성 제한을 넘어서는 KML 오버레이입니다 .

자체 서버 (예 : GeoServer 또는 ArcGIS Server)를 세우는 것을 고려하고 있습니다. 하지만 Google의 한도가 10MB 인 경우 15MB의 KML을 제공하는 것은 큰 단계 인 것 같습니다.

위생 검사가 필요합니다. Google의 무료 및 쉬운 KML 오버레이 용 API와 자체 타일 서버를 설정하는 중간 단계가 있습니까?


5
하나의 KML을 2 개의 더 작은 KML 파일로 나눕니다. 필요없는 데이터 켜기 / 끄기 옵션.
— Mapperz

1
선택적으로 사용 융합 테이블 (100,000 행 제한 또는 데이터의 1백메가바이트은) - gmaps-samples.googlecode.com/svn/trunk/fusiontables/... 참조 groups.google.com/group/fusion-tables-users-group/browse_thread/...을
— Mapperz

@mapperz 한 번에 100MB의 데이터 만 업로드 할 수 있지만 최대 250MB의 스토리지까지 동일한 행으로 추가 행을 가져올 수 있습니다.
— geographika

비록 당신이 이미 알고 있다는 것을 알지만
— geographika

Fusion Tables 서비스는 2019 년 12 월 3 일에 종료되므로 QGIS 데스크탑 소프트웨어로 kml 파일을 더 작게 만드는 옵션이 있습니다. qgis 파이썬 라이브러리도 있습니다. 0.0005를 사용하여 Simplify geometry 옵션과 함께 QGIS desktop을 사용했습니다. 그런 다음 생성 된 레이어를 kml로 내 보냅니다. 동일한 메뉴에서 일괄 작업으로이 작업을 수행 할 수 있습니다. 그런 다음 생성 된 모든 레이어 별도의 프로젝트와 .KML 모든 .shp 인 파일을 변환 할 QGIS 바탕 화면 내부의 콘솔을 사용하여 열 수 있습니다
— makkasi

답변:


12

Google지도 개발에 이미 투자 했으므로 모든 데이터를 Google Fusion Tables로 푸시하는 것이 좋습니다.이 데이터는 KML과 비슷한 방식으로 놀라운 성능으로지도에서 파싱 될 수 있습니다 ( WNYC Fusion Tables 앱 참조 ). 프런트 엔드를 대폭 수정하지 않고도 KML로 업그레이드 할 수 있습니다.


데이터가 24 시간을 초과하는 업데이트 일정에 맞지 않으면 이것이 좋은 생각이라고 생각합니다. 이것이 구글이 방금 말한 것입니다 (kml이 브라우저 사용 퓨전 테이블을 느리게하는 경우)하기 위해 이것이 최선의 대답이라고 말할 것입니다.
— Steve

1
Fusion Tables를 지적 해 주셔서 감사합니다. 어떻게 든 이것이 완전히 관심을 피했습니다. 불행히도 이것은 자주 변경되는 데이터에 대해 다루기가 다소 어색합니다. 전체 스토리지 제한 (사용자 당 250MB)으로 확장 할 수 없었습니다.
— Herb Caudill

2
실험적인 Fusion Tables 서비스는 2019
— Jonas

12

더 작은 kmls를 참조하는 Parent KML을 사용하여 KML을 여러 KML로 분류 할 수 있습니다. 최소한 이것은 파일 크기를 적절한 수준으로 낮추고 훨씬 큰 데이터 세트를 KML로 참조 할 수있게합니다.

솔직히 KML은 기능과 관련 속성이 거의없는 작은 데이터 집합에만 유용합니다. 나는 파일 데이터 소스로 가까이 가지 않을 것입니다. 이 파일이 커지는 것을보고 있다면 다른 데이터 유형을 보거나 GeoServer / MapServer 경로를 분산 데이터 세트로 향하게됩니다.


2
그러나 네트워크 KML (슈퍼 오버레이 포함)은 대규모 데이터 세트를위한 디자인이지만 웹 서버 및 렌더링 소프트웨어가 필요합니다. Geoserver는 이러한 유형의 KMZ에서 잘 작동합니다. Google Maps API가 KML 사용을 제한했기 때문에 Google 어스에서 가장 잘 작동합니다.
— Mapperz

Google 어스 엔터프라이즈 클라이언트를 제외하고는 슈퍼 오버레이에 대해 운이 없었습니다. 나는 이것에 많은 시간을 소비하지 않았지만. 확실히 탐험 할 수있는 옵션, +1 @Mapperz
— OptimizePrime

1
Oracle과 함께 GeoServer를 사용하고 매우 잘 작동합니다. KMZ (슈퍼 오버레이) 렌더링-사용자에게 매우 유용한 실시간 (일관 적으로 업데이트 된) 데이터-새로 고침시 속도를 높이려면 지오 서버를 조정해야했습니다.
— Mapperz

8

Google Maps API에 너무 많은 시간을 투자하지 않은 경우 자체 KML 파일을 읽을 수있는 클라이언트 측 KML 파서가있는 OpenLayers로 전환 할 수 있습니다 (아래 예 참조).

http://openlayers.org/dev/examples/kml-layer.html

그러나 15MB 파일의 경우 브라우저가 정지 될 수 있습니다. 파일 크기 제한에 가까워지면 Google 서버를 통해 속도가 느려질 수 있습니다.

실제로 15MB 수준의 세부 정보가 필요합니까? 아니면 너무 많은 정보를 잃지 않고 KML을 단순화 할 수 있습니까?

클라이언트 측에서 벡터 / 형상에 액세스해야합니까? 이 데이터를 이미지로 제공 할 수 있습니까?

이 중 어느 것도 가능하지 않으면 일부 맵 제공 소프트웨어 유형을 살펴 봐야합니다. ArcGIS Server의 GeoServer와 함께 KML을 제공하거나 WFS로 MapServer 를 고려할 수 있습니다. 맵 서버 사용의 이점은 요청이 맵 내 데이터 만 반환하므로 네트워크 트래픽이 줄어들고로드 시간이 줄어든다는 것입니다.


구글 퓨전 테이블을 사용해 본 후 Guddie의 접근 방식은 구현하기 가장 쉬운 방법입니다. 한 번에 100MB의 KML 만 업로드 할 수 있지만 각 사용자에게는 250MB의 저장 옵션이 있습니다 (쓰기시).
— geographika

2

버전 3을 사용하는 경우 고유 식별자를 제외한 모든 속성 정보를 제거하고 사용자가 기능을 클릭 할 때마다 웹 서비스에 대한 ajax 호출을 통해 정보를 요청할 수 있습니다. 10MB 이상의 포인트가있는 경우 모든 포인트를 한 번에 표시하는 대신 일종의 클러스터링을 수행하는 것이 좋습니다. 또한지면 오버레이를 별도의 KML 파일로 분리 할 수도 있습니다.



2

MapLarge 는 흥미로운 솔루션을 제공합니다. 서버에서 데이터를 복제 한 다음 독점 소프트웨어를 사용하여 타일 생성 작업을 대폭 수행 할 수 있습니다. 자바 스크립트 API를 제공하며이를 Google지도, OpenLayers 등의 기본지도에 오버레이 할 수 있습니다.

그들의 예 중 일부를 확인하십시오-속도는 인상적입니다.

무료는 아니지만 이러한 계층을 생성하기 위해 별도의 서버를 세우는 데 어려움을 겪고 싶지 않은 사람에게는 좋은 옵션이 될 수 있습니다.

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