[英]d3js: “Error: <circle> attribute cy: Expected length, ”NaN"
[英]Arcgis JSAPI, Error: <circle> attribute cx: Expected length, “NaN”
我正在使用Arcgis JSAPI 4.3开发应用程序。 我正在尝试使用提供事件网站的公共API在地图上显示一些公共事件。
我有XMLHttpRequest响应作为Json数据,其中包含许多事件的事件纬度和经度信息。
但是我在控制台中收到此错误 ; MapView.js:379错误:属性cx:预期长度为“ NaN”。
当我拖动地图时,错误计数越来越多。
var latitude = [];
var longitude = [];
eventIO.request.onreadystatechange = function () {
if (this.readyState === 4) {
listItems = JSON.parse(this.responseText);
data = listItems.recs;
for (var j=0; j < data.length; j++) {
latitude.push(data[j].venue.lat);
longitude.push(data[j].venue.lng);
}
}
require([
"esri/Map",
"esri/PopupTemplate",
"esri/views/MapView",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Multipoint",
"esri/geometry/Polyline",
"esri/geometry/Polygon",
"esri/symbols/SimpleMarkerSymbol",
"esri/layers/FeatureLayer",
"dojo/domReady!"
], function(
Map, PopupTemplate, MapView,
Graphic, Point, Multipoint, Polyline, Polygon,
SimpleMarkerSymbol, FeatureLayer
) {
var map = new Map({
basemap: "hybrid"
});
var view = new MapView({
center: [30, 40],
container: "viewDiv",
map: map,
zoom: 6
});
var myPoints = {"points": [[longitude, latitude]]};
var multipoint = new Multipoint(myPoints);
var markerSymbol = new SimpleMarkerSymbol({
color: [226, 119, 40],
outline: {
color: [255, 255, 255],
width: 2
}
});
var pointGraphic = new Graphic({
geometry: multipoint,
symbol: markerSymbol
});
view.then(function() {
view.graphics.add(pointGraphic);
});
});
“多点”的控制台日志屏幕截图
API文档的multipoints属性“ points”要求一个Number数组,并且控制台日志显示您的点数组包含字符串,即: "40.993603"
修改您的for循环以将纬度和经度值转换为浮点数。
我什至怀疑您没有正确地形成点阵列来构建多点。 在此for循环中,应将经度和纬度推入同一数组中。
var points = [];
for (var j=0; j < data.length; j++) {
points.push([parseFloat(data[j].venue.lng, parseFloat(data[j].venue.lat)]);
}
然后: var multipoint = new Multipoint({"points" : points})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.