Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用lat和lon加载JSON并获取变量_Javascript_Json_P5.js - Fatal编程技术网

Javascript 使用lat和lon加载JSON并获取变量

Javascript 使用lat和lon加载JSON并获取变量,javascript,json,p5.js,Javascript,Json,P5.js,我正在加载JSON文件,我想从文件中获取纬度和经度变量。 我用让lat=row.get('lat')来做但它不起作用,在常量pix=yMap.latLngToPixel(data.lat,data.lon)中;它说它不认识它。 我如何才能正常工作,因为在这之后我想从localhost获取json文件,这就是我使用p5.js库的原因 <title>Mappa </title> <script src="https://cdnjs.cloudflare.com/aja

我正在加载JSON文件,我想从文件中获取纬度和经度变量。 我用让lat=row.get('lat')来做但它不起作用,在常量pix=yMap.latLngToPixel(data.lat,data.lon)中;它说它不认识它。 我如何才能正常工作,因为在这之后我想从localhost获取json文件,这就是我使用p5.js库的原因

<title>Mappa </title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.16/p5.min.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/mappa-mundi@0.0.4" type="text/javascript"></script>
<script src="mappa.js" ></script>
js.file

let data;

let myMap;
let canvas;

const mappa = new Mappa ('Leaflet');

const options = {
lat: 39.074207, 
lng: 21.824312,
zoom: 2,
style: "http://{s}.tile.osm.org/{z}/{x}/{y}.png"
}

function preload(){
data = loadJSON ("conflicts.json");

//var jsonData = JSON.parse(data);

}



function setup(){

canvas = createCanvas(1350,600); 
myMap = mappa.tileMap(options); 
myMap.overlay(canvas);


 let lat = row.get('lat');
 let lon = row.get('lon');

}

 function draw() {
clear();
const pix = myMap.latLngToPixel(data.lat,data.lon);
fill (255,0,200);
ellipse (pix.x,pix.y,20,20); 
}

您的
数据
是一个具有单个属性(即数组)的对象。要访问此数组中的每个元素,需要对其进行迭代:

 for (let item of data.conflicts)
    draw(item)


 function draw(item) {
    const pix = myMap.latLngToPixel(item.lat, item.lon);
    fill (255,0,200);
    ellipse (pix.x,pix.y,20,20); 
 }

我尝试了for循环和您的解决方案,但是常量pix中的lat和lon=myMap.latLngToPixel(item.lat,item.lon);lat和lon中也有一个错误。我这样做了,但再次失败:函数设置(){canvas=createCanvas(1350600);myMap=mappa.tileMap(选项);myMap.overlay(画布);for(let item of data.conflicts){let lan=conflicts.lat;let lon=conflicts.lon;draw(item)}函数draw(item){clear();const pix=myMap.latLngToPixel(item.lat,item.lon);fill(255,0200);椭圆(pix.x,pix.y,20,20);}如果在
绘图中添加
console.log(item)
,它会记录什么?p5.maps加载✓ mappa.js:42{Place:“Afganistan”,lat:33,lon:65}mappa.js:42{Place:“Koln”,lat:17.05,lon:-61.8}mappa.js:42{Place:“ai”,lat:18.25,lon:-63.166}mappa.js:42未定义但错误在这里:未捕获(承诺中)类型错误:无法读取未定义的绘图属性“lat”(mappa.js:44)
 for (let item of data.conflicts)
    draw(item)


 function draw(item) {
    const pix = myMap.latLngToPixel(item.lat, item.lon);
    fill (255,0,200);
    ellipse (pix.x,pix.y,20,20); 
 }