2012-05-03 6 views
10

Leaflet Mapping Library에 정확히 layer이 표시됩니까?리플릿 레이어 정의

개념적으로 나에게 어떤 레이어는 어떤 유형의 피쳐 또는 개체의 단일 계층을 나타냅니다. 예를 들어, 기본 레벨 맵을 나타내는 모든 이미지 타일이 단일 레이어 상에 표현 될 것이고, 미국 내의 상태를 나타내는 폴리곤 세트는 그들 자신의 개별 레이어 상에있을 수있다.

구체적으로 보면 을 보면 생성 된 각 새 폴리곤이 자신의 레이어에 놓여 있다고 읽습니다. 그런 다음 메서드를 호출하는 레이어와 병합 할 수 있습니까? 필자는 많은 geoJSON 객체를 한 번에 하나씩 추가해야하고 불필요한 레이어를 많이 생성하지 않도록하고 싶다.

감사합니다.

답변

25

리플릿에지도에 추가 할 수있는 모든 항목이 레이어입니다. 따라서 다각형, 원, 마커, 팝업, 타일은 모두 레이어입니다. 예를 들어 폴리곤 세트를 단일 레이어로 처리하려는 경우 L.LayerGroup (또는 FeatureGroup)에서 레이어를 결합 할 수 있습니다. 따라서 레이어의 해석이 리플릿에 L.LayerGroup으로 모델링 된 것과 더 잘 어울립니다.

L.GeoJSON은 GeoJSON으로 초기화되는 LayerGroup (특히 FeatureGroup)입니다. 각 새 다각형은 LayerGroup에 아무 것도 추가하는 메서드 인 addLayer를 사용하여 L.GeoJSON LayerGroup에 추가됩니다. 각 다각형 (이미 레이어로 간주되는 L.Polygon 제외)에 대해 새 레이어를 만들지 않습니다. GeoJSON의 구조를 보존하기 위해 GeometryCollection 및 MultiPoints에 대한 새로운 FeatureGroups (LayerGroups) 만 만듭니다.

한 번에 하나의 레이어 그룹에 geoJSON 개체를 추가하려면 L.GeoJSON.geometryToLayer을 호출하여 GeoJSON 개체를 변환 한 다음 L.LayerGroup.addLayer을 사용하여 레이어 그룹에 추가하면됩니다.

+0

대단한 답변입니다. 감사합니다. 단지 'L.GeoJSON'은 사실 자체적으로 레이어가 아닌 레이어 그룹 (다른 레이어 그룹)입니까? 까다 롭고 까다 롭지 만, 다른 사람들이 이것을 읽는다면 완전한 명확성을 위해. – oli

+0

@oli 감사합니다. 그렇습니다. L.GeoJSON은 LayerGroup이지만, LayerGroup은 정의에 따라 레이어로 간주 될 수도 있습니다. 어쨌든 명확성을 위해 답변을 업데이트했습니다. –

관련 문제