JSONから都道府県の座標を取得して配列オブジェクトに格納したいと思っております。
javascript
1$.getJSON("/map/assets/json/map.json", (list) => { 2 // console.log(list) 3 let mapPosition = []; 4 for (var i = 0; i < list.marker.length; i++) { 5 var lat = list.marker[i].lat; 6 var lng = list.marker[i].lng; 7 8 mapPosition = [{ lat: lat, lng: lng }]; 9 //console.log(mapPosition) 10 }
JSON
1{ 2 "marker": [ 3 { 4 "pref": "北海道", 5 "url": "http://www.pref.hokkaido.lg.jp/", 6 "addr": "北海道札幌市中央区北3条西6丁目", 7 "lat": 43.064301, 8 "lng": 141.346874 9 }, 10 { 11 "pref": "青森県", 12 "url": "http://www.pref.aomori.lg.jp/", 13 "addr": "青森県青森市長島一丁目1-1", 14 "lat": 40.824622, 15 "lng": 140.740598 16 }, 17 { 18 "pref": "岩手県", 19 "url": "http://www.pref.iwate.jp/", 20 "addr": "岩手県盛岡市内丸10番1号", 21 "lat": 39.7036, 22 "lng": 141.152709 23 } 24 ] 25} 26※一部割愛
上記条件でmapPositionに配列オブジェクトとして座標の値を取得したいのですが、うまくできずにおります。
実現したい形としては
javascript
1const mapPosition = [ 2 { lat: 35.6849051, lng: 139.7270029 }, 3 { lat: 34.7024854, lng: 135.4937566 }, 4 { lat: 33.5885861, lng: 130.3772019 }, 5 { lat: 43.0686606, lng: 141.3485613 }, 6 ];
上記のような形で格納し後にmapPositionのindexを指定して処理を続けたいとおもっておりました。
しかし、現在のコードでの実行結果では
javascript
1const mapPosition = [ 2 { lat: 35.6849051, lng: 139.7270029 }, 3 ]; 4const mapPosition = [ 5 { lat: 34.7024854, lng: 135.4937566 }, 6 ]; 7const mapPosition = [ 8 { lat: 33.5885861, lng: 130.3772019 }, 9 ]; 10*console.log()の結果を置き換えております
lengthの回数分配列オブジェクトが生成されてしまいます。
for文の中で宣言しているからではと思い
javascript
1 $.getJSON("/partners/map/assets/json/test.json", (list) => { 2 // console.log(list) 3 for (var i = 0; i < list.marker.length; i++) { 4 var lat = list.marker[i].lat; 5 var lng = list.marker[i].lng; 6 } 7 let mapPosition = []; 8 mapPosition = [{ lat: lat, lng: lng }]; 9 console.log(mapPosition) 10 });
for文の外での宣言も試してみましたが
javascript
1const mapPosition = [ 2 { lat: 26.212418, lng: 127.680895 }, 3 ]; 4*console.log()の結果を置き換えております
存在しない座標の取得、lengthも0となっており自力で解決ができませんでした。
解決策お分かりになる方がいましたら回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/04 07:16