Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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中导出GeoJSON_Javascript_Json_Export_Geojson - Fatal编程技术网

如何在Javascript中导出GeoJSON

如何在Javascript中导出GeoJSON,javascript,json,export,geojson,Javascript,Json,Export,Geojson,我已经创建了一个GeoJSON列表,并试图通过网页中的按钮将其导出到文件中。除了导出的文件只显示“undefined”和没有GeoJSON数据外,其他一切都正常。我做错了什么 HTML: <button onclick="exportToJsonFile()">Download GeoJSON</button> 加载数据需要一些时间(即使是较短的json版本,加载后按钮名称也会更改为full)。 但即使在代码片段中也能工作。 问题是未使用的函数参数,然后是数据未加载

我已经创建了一个GeoJSON列表,并试图通过网页中的按钮将其导出到文件中。除了导出的文件只显示“undefined”和没有GeoJSON数据外,其他一切都正常。我做错了什么

HTML

  <button onclick="exportToJsonFile()">Download GeoJSON</button>

加载数据需要一些时间(即使是较短的json版本,加载后按钮名称也会更改为full)。 但即使在代码片段中也能工作。 问题是未使用的函数参数,然后是数据未加载时

函数loadData(){
var api=$.getJSON(“https://api.data.gov.sg/v1/environment/rainfall",
功能降雨(数据雨){
apiGeo={type:“FeatureCollection”,features:[],输入:api.responseJSON};
//----阿皮吉奥就住在这里----//
console.log(apiGeo);//在浏览器控制台中以GeoJSON格式显示数据
document.body.getElementsByTagName(“按钮”)[0].innerText+=“GeoJSON”;
});
}
函数exportToJsonFile(){
下载ObjectAsJSON(apiGeo,“数据”);
}
函数downloadObjectAsJson(exportObj,exportName){
if(navigator.msSaveBlob){//IE10+
var blob=new blob([JSON.stringify(exportObj)],{type:'application/JSON'});
返回navigator.msSaveBlob(blob,exportName+“.json”);
}
var dataStr=“data:application/json;charset=utf-8,”+encodeURIComponent(json.stringify(exportObj));
var downloadAnchorNode=document.createElement('a');
下载anchornode.setAttribute(“href”,dataStr);
setAttribute(“下载”,exportName+“.json”);
downloadAnchorNode.innerText=exportName;
document.body.appendChild(downloadAnchorNode);//firefox需要
下载AnchorNode.click();
下载anchornode.remove();
}
loadData()


下载
如果您满意的话,您可以在投票按钮下接受答案……这里可能有更好的信息
 var api = $.getJSON("https://api.data.gov.sg/v1/environment/rainfall?date=2019-07-03",
   function rainfall(data_rainfall){
   apiGeo = { type: "FeatureCollection", features: []};
             //---- apiGeo is populated here ----//

  console.log(apiGeo);     //displays data in GeoJSON format in browser console
});

function exportToJsonFile(apiGeo) {
let dataStr = JSON.stringify(apiGeo);
let dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr);

let exportFileDefaultName = 'data.json';

let linkElement = document.createElement('a');
linkElement.setAttribute('href', dataUri);
linkElement.setAttribute('download', exportFileDefaultName);
linkElement.click();
}