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.