Leafletでプロットいっぱい -GeoJSON-

MAP(地図)
スポンサーリンク

データファイルから複数地点プロット -Leaflet-

 Leafletだとオンライン地図上にJavaScriptで処理してプロットするので、重いページにしたくない。

 CSVファイルよりJSONファイルのほうが早く処理されるハズ。
  ※ JSONファイル .jsonは、プログラムの配列 [ ]と同じ入れ子状の形式。

 地理情報のJSONデータ、GeoJSON(geojson.org/)がある。

 一例として地震観測点のプロット。

 防災科学技術研究所 Hi-net 高感度地震観測網(www.hinet.bosai.go.jp/)の
 観測点情報 - 観測点情報データセット
からCSVファイルをダウンロード(KMZファイルもある)。

 CSVファイルをGeoJSONファイル .jsonへ変換(コンバート)。

 Convert CSV to GeoJSON(www.convertcsv.com/csv-to-geojson.htm)を利用した。
 Latitude Field(緯度の列 Col)、Longitude  Field(経度の列 Col)を指定してから変換。

 GoogleMap上にプロットされたので、終わり……。
 ではなくて、LeafletでOpenStreetMap上に小さな円をプロットしてみる。

<div id = "map"></div>

 で表示(位置決め)。
 以下JavaScript。JQueryが必要

<script>
var map = L.map('map').setView([35.37, 139.39] , 5);
L.tileLayer(
'https://tile.openstreetmap.jp/{z}/{x}/{y}.png',
{attribution: 'Map data © <a href="https://openstreetmap.jp">OpenStreetMap</a>'})
.addTo(map);
L.control.scale()
.addTo(map);

$.getJSON("NIED_SeismicStation.geojson", function(data) {
var point = L.geoJson(data, {
	pointToLayer: function (feature, latlng) {
	return L.circle(latlng,1000, {
	color: 'magenta'
	})},
	onEachFeature: function (feature, layer) {
	layer.bindPopup(feature.properties.観測点名);
	}
});
point.addTo(map)
});
</script>

LeafletでOpenStreetMapに地震観測点をプロット   

読み込み、プロット

 JQueryの$.getJSON(……
 L.geoJson(……
で変換済みのGeoJSONファイル(NIED_SeismicStation.geojson)を読み込み。

 feature.properties.観測点名
 NIED_SeismicStation.geojsonの中の
 ”properties”: {
 ”観測点名“:”●●●”
 }
と対応。

 円をクリックすると観測点名が表示される。

スポンサーリンク
ふシゼン
タイトルとURLをコピーしました