住所の一覧から緯度・経度を取得する
はじめに
膨大な住所の一覧をもとに緯度と経度を取得したいということで「Googleマップで住所検索⇒検索されたポイントを右クリック⇒緯度・経度取得」でも取得はできるのですが、手間がかかりすぎるため一括で取得するためにGeocoding APIを利用してみました。
サンプルコード
Geo2LatLon.html
<html>
<head>
<title>Geo2LatLon</title>
<!-- referrence by https://github.com/madefor/postal-code-api -->
<style>
textarea{width:100%;}
input{margin-top:5px;padding:5px 20px 5px 20px;font-weight:bold;font-size:20px;}
</style>
<script src="https://cdn.geolonia.com/community-geocoder.js"></script>
</head>
<body>
<h2>Geo2LatLon</h2>
<h3>概要:住所から緯度経度を取得するツールです。</h3>
<h3>使い方</h3>
<ol>
<li>テキストエリアに住所を入力します。複数の場合は改行区切りで入力してください。</li>
<li>「実行」ボタンを押下します。</li>
<li>csv形式でファイルがダウンロードされます。</li>
</ol>
<textarea id="geoList" rows="20"></textarea>
<input id='exec' type='button' value='実行' />
<script>
document.getElementById('exec').addEventListener('click', () => {
const geoList = document.getElementById('geoList');
if (geoList.value) {
const lines = geoList.value.split('\n');
const promises = [];
for (let i = 0; i < lines.length; i++) {
const addr = lines[i];
if (addr) {
const func = new Promise((resolve, reject) => {
getLatLng(addr, (geo) => {
const data = [addr, geo.lat, geo.lng].join(',');
resolve(data);
});
});
promises.push(func);
}
}
Promise.all(promises).then((results) => {
results.unshift(['住所', '緯度', '経度'].join(','))
const data = results.join('\n');
const filename = 'geo2latlon.csv';
const bom = new Uint8Array([0xef, 0xbb, 0xbf]);
const blob = new Blob([bom, data], {type: 'text/csv'});
const url = (window.URL || window.webkitURL);
const download = document.createElement('a');
download.href = url.createObjectURL(blob);
download.download = filename;
download.click();
url.revokeObjectURL(url);
});
}
});
</script>
</body>
</html>
ただ精度はあまり良くないようなので(Google Maps APIも同様)、Google Mapsの右クリックで取得するのが一番良さそうです。。。
Author And Source
この問題について(住所の一覧から緯度・経度を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/oj_free_oj/items/5c3d1a828c17bb78c7fe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .