[OSGeoJapan-discuss] Leaflet+Geojsonが重たいのですが、対処法がありますか?
ASAHI Kosuke
asahi @ hcc.co.jp
2015年 7月 29日 (水) 17:39:52 PDT
喜多さん
あさひです
下記についてです。
>> また、ポリゴンやマーカーなどを表示するズームレベルを限定はできますか?
>> 例えばズームレベル17より小縮尺は表示しないとか。
こんな感じでどうでしょう?
◯ズームレベル変更のイベントに合わせてレイヤを追加/削除する
#レイヤ作っておいて
geojson = L.geoJson(tsunamiData, {
style: style,
onEachFeature: onEachFeature
});
#mapのズームレベル変更のイベントを拾う
map.on('zoomend', function(e) {
#現在のズームレベルを見て、レイヤを追加/削除をする
var zoom = map.getZoom();
if (zoom < 6) {
if (map.hasLayer(geojson) == true)
map.removeLayer(geojson);
} else {
if (map.hasLayer(geojson) == false)
map.addLayer(geojson);
}
});
◯個別の図形について表示/非表示を判断する
#filterを設定して、個別の図形の表示・非表示を判断します
geojson = L.geoJson(tsunamiData, {
style: style,
onEachFeature: onEachFeature,
filter: function(feature, layer) {
#この中で個別の図形(feature)について表示する場合は"return
true", 表示しない場合は"return false"とする処理を書く
}
}).addTo(map);
On 2015/07/30 1:40, 喜多耕一 wrote:
> 北海道の喜多です。
>
> 現在、Leafletを使って、様々なデータをWebで可視化しようと思っていてるので
> すが、北海道の津波浸水予想範囲のメッシュデータ(ポリゴン)を地図上に表示
> すると非常に重たくなります。
>
> サンプル
> http://koukita.github.io/LeafLet_test/tsunami_test/index.html
>
> ひとつの町村の半分も表示していないのですが、地図を動かすことも出来ません。
>
> このままでは、使い物にならないのですが、大量のポリゴンデータでもスムーズ
> に動かす方法はあるのでしょうか?
>
> たとえば、表示している地図の範囲のみデータを読み込むとか・・・。
>
> また、ポリゴンやマーカーなどを表示するズームレベルを限定はできますか?
> 例えばズームレベル17より小縮尺は表示しないとか。
>
> JavaScriptもHTMLも初心者ですので、わかりやすい説明でお願いします。
> よろしくお願いします。
>
> 北海道 喜多耕一
>
>
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
--
北海道地図株式会社 研究開発課
朝日 孝輔
mailto:asahi @ hcc.co.jp
Tel : 0166-62-4711
OSGeoJapan-discuss メーリングリストの案内