Openlayer에서 수천 개의 다각형을 표시하는 가장 좋은 방법은 무엇입니까?


10

수천 개의 다각형을 표시하는 Openlayers 맵을 만들려고합니다. 사용자가 각각을 클릭하면 일부 메타 데이터가 표시되기를 원합니다. 이 큰 데이터 세트로 작업하는 것은 어려운 것처럼 보입니다. 그러나 나는 이것에 관한 표준 방법이 있는지 알아 내려고 노력하고 있습니다. 이 시점에서 나는

  1. WMS로 다각형을 표시하고 getfeatureinfo를 사용하십시오.
  2. WFS, Load with Strategy.BBOX로 표시하고 GetFeature를 사용하여 미트 데이터를 가져옵니다.

이 모든 데이터를 맵에로드하고 속도가 빠르다는 논리적 인 방법이 있습니까? 나는이 페이지를보고 그들이 무엇을했는지 알아 내려고 노력했다 : http://protectedplanet.net/

답변:


5

BBOX 전략이 마음에 들지 않습니다. 생성 될 수있는 요청의 양으로 인해 속도가 느릴 수 있다고 생각합니다.

나는 당신이 언급 한 두 가지의 조합을 사용합니다.

WMS를 사용하여 다각형을 표시하고 getfeatureinfo ...를 사용한 다음 WFS를 사용하여 클릭시 피처를로드하거나 데이터베이스에서 추가 정보를 얻습니다.

protectedplanet.net은 Google지도 만 Openlayers를 사용하지 않습니다. 아마도 모든 정보를 KML / KMZ에 저장하고있을 것입니다.


큰 감사합니다! 나는 내가 올바른 길을 가고 있다고 생각합니다. 그러나 protectedplanted가 KML을 사용하고 있는지 궁금합니다. 속도를 높이기 위해해야합니까? KML 데이터가 WFS에서 제공되고 있습니까?
KyleK

KML인지 확실하지 않습니다. 그러나 WFS는 GML을 사용하기 때문에 WFS에서 제공되지 않습니다. Google API 및 KML을 사용하는 방법은 누구나 볼 수있는 공개 URL에 해당 KML이 있어야한다는 것입니다. 이것이 문제가되지 않는다면 시도해 볼 수 있습니다. Google이이 KML을 서버로 흡수하여 API로 다시 돌려주기 때문입니다. 이 두 가지 이유로 인해 일부 프로젝트의 민감도로 인해 Google Maps API를 사용할 수 없습니다.
CaptDragon

Google KML 파서 문자열을 제공하는 사용자 에이전트 만 허용하도록 공개 KML URL에 대한 액세스를 제한 할 수 있습니다.
Sarge

3

여기서 주요 접근 방식은 래스터 화와 상호 작용을 분리하는 것입니다. 한 가지 방법은 (내가 부분적으로 책임이있어 것을)이다 UTFGrid 에 의해 사용 된, 등 NPR, 그리고에 통합되어 TileMillMapnik . CartoDB 에서도 사용되며 Google지도는 Fusion Tables에 대해 비슷한 접근 방식을 사용합니다.

(예를 들어,이 : 보호 행성의 사용은 물론 타일을 래스터 http://184.73.201.235/blue/8/78/93)와 (예를 들어 포인트 기반의 쿼리 뒤에 라이브 서버가 이 일을 ).

Re : CaptDragon : WFS 나 KML이 없습니다.

WMS와 WFS는 퍼블릭 사이트에 대해 성능이 거의 좋은 곳을 제공하지 않습니다. 사용자가 확대 / 축소하면 BBOX 전략이 작동하지 않습니다.


참고 : 타일을 제공하는 WMS 래스터 서비스를 캐시 할 수 있습니다.
CaptDragon

1
예, 그러나 여기서 중요한 문제는 아닙니다. 상호 작용입니다. WFS / WMS GetFeature는 타일 단위로 캐시되도록 설계되지 않았기 때문에 WFS / WMS GetFeature의 작동 방식을 캐시 할 수 없습니다.
tmcw

CSW, WFS 및 WMS GetFeature, GetRecord 등의 결과를 항상 캐시합니다. 이들은 상호 운용성을위한 형식의 표준 일 뿐이며 캐시 여부에 관계없이 소스가 저장되는 위치를 나타내지 않습니다.
CaptDragon 2009 년

일반적인 WFS GetFeature 요청은 단일 좌표에 대한 요청입니다. 해당 요청에 대한 캐시는 정확히 일치하는 경우에만 적합합니다. 사용자 상호 작용 측면에서는 드문 경우입니다. 데이터의 UTFGrid 캐시 타일과 같은 대안은 잠재적으로 수백만 개의 단일 좌표에 대한 캐시와 달리 캐시를 낙관적으로 채울 수 있습니다. 이러한 방식으로 표준은 캐시 친 화성을 지시합니다.
tmcw

와우-모든 도움을 주셔서 감사합니다. OpenLayers를 사용하고 있고 내지도가 4326 (TileMill에서 지원하지 않음)에 있기 때문에 CartoDB를 통해 내 데이터를 저장하고 액세스하는 수단으로 사용 하시겠습니까?
KyleK
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.