function myInit(e) { /* 北緯38.891度, 東経139.824度, ズームレベル16 で地図表示 */ var mymap = L.map("map").setView([38.891, 139.824], 14); var osm = L.tileLayer('//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(mymap); L.control.scale().addTo(mymap); var laycon = L.control.layers({"OSM": osm}).addTo(mymap); var lg = L.featureGroup(); lg.addTo(mymap); let urlbase = "https://www.yatex.org/gitbucket/SKIP/bird-2021/raw/master/geo-material" function addPols(pat) { var reg = new RegExp(pat); console.log("SEARCH: "+pat); for (let l of lg.getLayers()) lg.removeLayer(l); laycon.removeLayer(lg, pat); //前回足したかもしれないので除去 laycon.addOverlay(lg, pat); //オーバーレイを追加 lg.name = 'foo'; var files = ["city", "kaigan", "kawa", "mori", "minato", "park"]; for (let m of files) { fetch(urlbase + "/" + m +".geojson").then((resp) => { // fetch(m +".geojson").then((resp) => { console.log("Loading "+m+", "+resp.ok); if (resp.ok) return resp.text(); // HTTPレスポンスから文字列のみ返す throw new Error(); }).then((txt) => { // それを txt として受け取る if (!txt) return; let j = JSON.parse(txt); let name = j.features[0].properties.name; if (name && name.match(reg)) lg.addLayer(L.geoJson(j)); })// .catch ((r) => { /* nothing */ }) } } document.getElementById("placetype").addEventListener("change",(e)=>{ addPols(e.target.value); }); } document.addEventListener("DOMContentLoaded", myInit, false);