AM放送局の送信所を地理院タイルにマーカーで表示してみます。
送信所のjsonを作ります。とりあえず東北の各県にある民放の一番出力の大きい主幹送信所のみをデータにしてみました。
送信所の住所はでんぱでーたどっと混むさんで調べてGeocoding.jpさんの航空写真で確認して調整してあります。座標はアンテナの位置に合わせています。
gistのrawデータはヘッダーに"Access-Control-Allow-Origin: *"を付けてくれるので、ローカルのファイルから読み込んでもエラーになりません。
これを地理院タイルにマーカーを置きます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AM DX MAP</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function init() {
$.getJSON("https://gist.githubusercontent.com/yamori813/16065bbff4473e8ec3430570fcf7da7f/raw/4e1b1673465d247ae137aeb9fecec63015fc8128/radio.json", null, function(data,status){
//取得成功したら実行する処理
var map = L.map('mapcontainer', { zoomControl: false });
var mpoint = [35.8627, 139.6072];
map.setView(mpoint, 6);
L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/blank/{z}/{x}/{y}.png', {
attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
}).addTo(map);
for (var i = 0; i < data.radio.length; i++) {
//ポップアップする文字(HTML可、ここでは画像を表示)
var popup = L.popup().setContent(data.radio[i].name + " " + data.radio[i].frequency + "kHz");
//マーカーにポップアップを紐付けする。同時にbindTooltipでツールチップも追加
L.marker([data.radio[i].latitude,data.radio[i].longitude]).bindPopup(popup).bindTooltip(data.radio[i].corporation).addTo(map);
}
});
}
</script>
</head>
<body onload="init()">
<div id="mapcontainer" style="position:absolute;top:0;left:0;right:0;bottom:0;"></div>
</body>
</html>
こんな感じになります。
あとは全国版のjsonを作るだけ。
追記
全国版のjsonできました。当初対象を主幹局で作っていましたが、1kw以上の局にしてみました。広域大阪無線保全課さんの情報も大変参考になりました。いくつかは住所で出てこなく、いろいろ検索してみました。すべて航空写真で確認しました。
手書きのjsonなのでところどこミスがあり、jsonチェッカーで確認しました。^ ^;
gistのURLはレビジョンのハッシュを取ると最新のデータになるようです。
地理院タイルを標準地図にして拡大すると電波塔の記号が確認できます。
アンテナは海の中にあるものや、島にあるもの、ゴルフ場の中にあるものなどあり、形もいろいろでした。航空写真で全国アンテナめぐりできて楽しかったです。
HTMLもgistに置いてブラウザで直接見れるようにしました。