2012-05-03 3 views
10

Leaflet Mapping Libraryにはlayerが正確に何を表していますか?リーフレット層の定義

私にとって、レイヤーはあるタイプのフィーチャまたはオブジェクトの単一の層を表します。例えば、ベースレベルマップを表すすべての画像タイルが単一のレイヤ上に表され、米国内の状態を表すポリゴンのセットは、それら自身の別個のレイヤ上に存在することができる。

具体的には、L.GeoJSON.addGeoJSON(geojson)を見ると、作成された新しいポリゴンがそれぞれのレイヤーに配置されていることが読み取られます(メソッドを呼び出すレイヤーとマージされる可能性があります)。私の使用例は、一度に1つずつ多くの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オブジェクトを同じLayerGroupに1つずつ追加する場合は、L.GeoJSON.geometryToLayerを呼び出してGeoJSONオブジェクトを変換し、L.LayerGroup.addLayerを使用してLayerGroupに追加することができます。

+0

これは素晴らしい回答です。ありがとうございます。 「L.GeoJSON」は実際にはレイヤーではなくレイヤーグループ(他のレイヤーのグループ)ですか?ニットピカピカ、他の人がこれを読んでいるならば、完全に分かりやすくするためです。 – oli

+0

@oliありがとうございました.L.GeoJSONはLayerGroupですが、LayerGroupもレイヤーと見なすことができます(定義に応じて)。とにかく、わかりやすく解答を更新しました。 –

関連する問題