我想将txt,xls和csv文件上传到传单中。首先,我正在尝试txt文件。 Js将我的txt读作js数组。现在我想将我的js数组转换为geojson。但我在这里感到困惑。需要一些关于我应该遵循何种方式的线索。感谢您的时间,感谢您的回复。
$(function () {
document.getElementById('file').onchange = function () {
debugger;
var file = this.files[0];
var reader = new FileReader();
reader.onload = function (progressEvent) {
// Entire file
console.log(this.result);
// By lines
var lines = this.result.split('\n');
var list = [];
for (var line = 0; line < lines.length; line++) {
list.push(lines[line]);
}
};
reader.readAsText(file);
};
});
答案 0 :(得分:0)
根据给定github链接的映射,我猜你可以按照我在下面给出的给定案例进行操作,但是对于一般方法,如果你使用github geoJSON library或者如果你有冒险精神你可能会更好尝试扩展以下代码...
var dataStr = "name: 'Location A', category: 'Store', street: 'Market', lat: 39.984, lng: -75.343, name: 'Location B', category: 'House', street: 'Broad', lat: 39.284, lng: -75.833, name: 'Location C', category: 'Office', street: 'South', lat: 39.123, lng: -74.534",
data = dataStr.split(/\s*,\s*(?=name)/g)
.map(function(d){
return d.split(/\s*,\s*/)
.reduce(function(r,s){
var [k,v] = s.replace(/\s*'|'\s*$/g,"")
.split(":");
return k === "name" ||
k === "category" ? (r.properties[k] = v, r)
: k === "lat" ||
k === "lng" ? (r.geometry.coordinates.unshift(+v), r)
: r;
}, {type : "feature",
geometry : {type : "Point", coordinates: [] },
properties: {name : "",
category: ""
}
});
}),
geoJSON = { type : "FeatureCollection",
features: data
};
console.log(geoJSON);