Leafletの地図に鉄道線路、駅を表示する必要があり、探しましたところベースレイヤーでOpenRailwayMapというのが見つかり使ってみました。
< コード例 >
レイヤー選択にOpenRailwayMapを加える
{
label: '鉄道路線図',
url: 'http://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png',
attr: {
minZoom: 2,
maxZoom: 19,
tileSize: 256,
attribution: '<a href="https://www.openstreetmap.org/copyright">© OpenStreetMap contributors</a>, Style: <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA 2.0</a> <a href="http://www.openrailwaymap.org/">OpenRailwayMap</a> and OpenStreetMap'
},
ldtp: "L"
},
OpenStreetMapを重ねる必要があります。
let baseMaps = {};
let curkey = "";
let objlayer;
$.each(leyers, function (j, itm) {
curkey = itm["label"];
objlayer = L.tileLayer(itm["url"], itm["attr"]);
baseMaps[curkey] = objlayer;
});
// layersコントロールにbaseMapsオブジェクトを設定して地図に追加
// コントロール内にプロパティ名が表示される
L.control.layers(baseMaps).addTo(lmap);
let tgtbase = baseMaps[layerkey];
tgtbase.addTo(lmap);
//baseMaps["OpenRailwayMap"].addTo(lmap)
// 鉄道地図の場合、OpenStreetmapも重ねる必要あるので //
if (layerkey.includes("OpenRailwayMap")) {
const addmap = layerkey.includes("satellite") ? "Google satellite" : "Open street map"
const osbase = baseMaps[addmap]
try {
osbase.addTo(lmap);
}
catch (e) {
}
}
else {
$("#legend").hide()
}
< 画面例 >
コメントを投稿するにはログインしてください。