我正在尝试在网站上的表格中列出GeoJSON文件中的所有功能,但我很难搞清楚如何实现这一目标。
作为第一步,我构建了一张Leaflet地图,显示从GeoJSON文件加载的所有位置,效果非常好。
除了地图之外,我想要的是第二页上的评级系统,其中包含表格中GeoJSON的所有位置(我现在只需要名称,评级系统将是一个不同的问题...)。
请注意,我是一个绝对的初学者,需要一个非常详细的“教程”。
我的GeoJSON看起来像这样:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ x,y ]
},
"properties": {
"FID":0,
"Shape *":"Point",
"Name":"XXX",
"Ditrict":"Dist1",
"Str_No":"Street 1",
"ZIP":"Some ZIP",
"Phone":"Some Number",
"Rating":4.5
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ x,y ]
}, and so on
我希望有一个简单的解决方案。
提前谢谢!
答案 0 :(得分:1)
如果您的GeoJSON对象是var geoJSON
,您可以通过执行以下操作获取每个功能的所有名称:
var featureNames = [];
for (var i = 0; i < geoJSON.features.length; i++) {
var currentFeature = geoJSON.features[i];
var featureName = currentFeature.properties.Name;
var featureId = currentFeature.properties.FID;
console.log(featureName);
featureNames.push({ featureId: featureId, featureName : featureName });
}
因此,featureNames
将使每个feature
对象在数组中包含它的名称。
要把它们全部放在桌子上,我将使用jQuery DataTables。如果我有<div id="myTable">
,那么:
$('#myTable').DataTable( {
"columnDefs": [
{ "title": "Feature Names", "targets": 0 }
]
data: featureNames,
scrollY: 300,
paging: false
} );