GeoJSON - 显示表格中的所有功能

时间:2016-08-07 12:59:59

标签: javascript jquery html leaflet geojson

我正在尝试在网站上的表格中列出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

我希望有一个简单的解决方案。

提前谢谢!

1 个答案:

答案 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
} );