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