【发布时间】:2017-07-24 09:12:57
【问题描述】:
D3.js 不接受我创建的二维数组作为坐标(我使用的地图示例位于http://bl.ocks.org/phil-pedruco/6522279。)
以下是事实:
1.) 我提供的 JSON 输入 是一串纬度和经度(例如"37.3879 -134.96376")。
2.) 所需的输出 是一个二维数组,必须采用这种形式[[lat,long],[lat,long],...]。
3.) console.log(typeof(lat)); 返回 lat 和 long 值确实是数字(不是字符串)
4.) console.log("Coordinates: " + 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));
}
【问题讨论】:
标签: javascript arrays d3.js multidimensional-array