Javascript 二维阵列未转换为D3地图坐标

Javascript 二维阵列未转换为D3地图坐标,javascript,arrays,d3.js,multidimensional-array,Javascript,Arrays,D3.js,Multidimensional Array,D3.js不接受我创建的2D数组作为坐标(我使用的地图示例位于) 事实如下: 1.)提供给我的JSON输入是一个纬度和经度字符串(例如“37.3879-134.96376”) 2.所需的输出是一个2D数组,该数组的格式必须为[[lat,long],[lat,long],…] 3.console.log(typeof(lat))返回lat和long值实际上是数字(不是字符串) 4.console.log(“坐标:+JSON.stringify(points))返回[[37.3879,-134.96

D3.js不接受我创建的2D数组作为坐标(我使用的地图示例位于)

事实如下: 1.)提供给我的JSON输入是一个纬度和经度字符串(例如
“37.3879-134.96376”

2.所需的输出是一个2D数组,该数组的格式必须为
[[lat,long],[lat,long],…]

3.
console.log(typeof(lat))
返回lat和long值实际上是数字(不是字符串)

4.
console.log(“坐标:+JSON.stringify(points))
返回
[[37.3879,-134.96376],[13.5,-45],…]
-看起来格式正确,但地图上未显示任何点

5.)如果我对数组中的值进行硬编码,则会显示点

var points = [];
//var dotSpot = [[1.4440, 32.442], [12.222, 4.893]];

window.onload = function () {
    getJSON();
} 

function getJSON(supplierID) {
    //retrieves JSON perfectly
    //calls make() with Supplier data
}

function make(jdata) {

    for (var i = 0; i < jdata.length; i++) {
        //Splits string by space
        var temp = jdata[i].latLong.split(/[ ,]+/)
        //Converts lat and long strings to floats
        var lat = parseFloat(temp[0]);
        var long = parseFloat(temp[1]);
        console.log(typeof(lat)); 

        //Add "curr" coordinates array to "points" array
        var curr = new Array(lat, long);
        points.push(curr);

    }

    console.log("Coordinates: " + JSON.stringify(points)); 
}
var points=[];
//var dotSpot=[[1.4440,32.442],[12.222,4.893];
window.onload=函数(){
getJSON();
} 
函数getJSON(供应商ID){
//完美地检索JSON
//使用供应商数据调用make()
}
函数make(jdata){
对于(var i=0;i
您已将坐标指定为
[纬度,经度]
。然而,与许多其他应用程序不同,D3使用坐标,第一个值是经度,第二个值是纬度。从:

该点必须指定为两元素数组[经度,纬度],单位为度

相应地更改数据应产生所需的渲染:

var curr = new Array(long, lat);   // instead of new Array(lat, long)
points.push(curr);

您已将坐标指定为
[纬度,经度]
。然而,与许多其他应用程序不同,D3使用坐标,第一个值是经度,第二个值是纬度。从:

该点必须指定为两元素数组[经度,纬度],单位为度

相应地更改数据应产生所需的渲染:

var curr = new Array(long, lat);   // instead of new Array(lat, long)
points.push(curr);