[英]Fill array with a for loop in JavaScript
我正在嘗試使用JavaScript獲取多邊形的面積。 為此,我需要將JSON數組中的經度和緯度點轉換為笛卡爾x和y坐標。 此循環和函數將數組中每個經度值的經度值轉換為x。 現在,我需要使用所有這些值創建一個新的數組。 目前,它正在為JSON數組中的每個值創建一個新數組。 這是控制台中的結果:
[445.555480625] mapChoropleth.html:280
[1, 445.55897] mapChoropleth.html:280
[2, 2: 445.62943062500005] mapChoropleth.html:280
[3, 3: 445.63478375] mapChoropleth.html:280
[4, 4: 445.64964499999996] mapChoropleth.html:280
[5, 5: 445.6483775] mapChoropleth.html:280
[6, 6: 445.61210562499997] mapChoropleth.html:280
[7, 7: 445.612394375] mapChoropleth.html:280
[8, 8: 445.6023443750001] mapChoropleth.html:280
[9, 9: 445.604339375] mapChoropleth.html:280
[10, 10: 445.571159375] mapChoropleth.html:280
這就是我現在試圖填充新數組的方式:
for (var i=0;i<areaData.coordinates[0].length;i++){
var lng = areaData.coordinates[0][i][1];
var x = XLngToPixel(lng, '#map');
function XLngToPixel(lng,elem){
var array = new Array();
var containerWidth=($(elem).width());
lng=lng+180;
array[i] = $(elem).offset().left+((lng*containerWidth)/360);
return array;
}
console.log(YLatToPixel(lng, '#map'));
}
任何幫助將非常感激!
要創建包含結果的單個數組,需要在循環之外創建該數組:
var array = new Array();
for (var i=0;i<areaData.coordinates[0].length;i++){
var lng = areaData.coordinates[0][i][1];
var x = XLngToPixel(lng, '#map');
function XLngToPixel(lng,elem) {
var containerWidth=($(elem).width());
lng=lng+180;
array[i] = $(elem).offset().left+((lng*containerWidth)/360);
return array[i];
}
console.log(YLatToPixel(lng, '#map'));
}
創建lat和lng數組:
var lats = new Array();
var lngs = new Array();
for (var i=0;i<areaData.coordinates[0].length;i++){
var lng = areaData.coordinates[0][i][1];
var x = XLngToPixel(lng, '#map');
function XLngToPixel(lng,elem) {
var containerWidth=($(elem).width());
lng=lng+180;
lngs[i] = lng;
lats[i] = $(elem).offset().left+((lng*containerWidth)/360);
return lats[i];
}
console.log(YLatToPixel(lng, '#map'));
}
這是您想要的東西嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.