0

我目前有一个使用 ogr2ogr 从县 shapefile 创建的自定义 .geo.json 文件。我想为每个县手动添加值,并且我研究了这个jsfiddle,但是我不太确定如何将两者放在一起。我对 jsfiddle 中的以下代码行特别感兴趣:

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=germany.geo.json&callback=?', function (geojson) {

这是我应该集中精力的地方吗?

我的自定义 .geojson 文件位于此处

4

1 回答 1

1

添加属性的最简单方法是,当您仍然拥有 shapefile 时,将其导入 QGIS ( http://www.qgis.org/en/site/ ) 通过属性/属性编辑属性表。在那里您可以添加/删除列并更改值等。准备好后,只需将图层保存为 GeoJSON。

如果你想用困难的方式来做,你也可以在你最喜欢的文本编辑器中打开 GeoJSON 文件并编辑 JSON 结构。通常一个特征集合看起来像这样:

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "name": "My Point"
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-45, -45]
    }
  },{
    "type": "Feature",
    "properties": {
      "name": "My LineString"
    },
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [45, -45],
        [45,45]
      ]
    }
  }
}

在那里,您会看到两个特征,一个点和一个线串特征。这些功能包含一个属性对象,您可以在其中添加所需的属性。因此,例如更改:

"properties": {
    "name": "My Point"
},

至:

"properties": {
    "name": "My Point",
    "description": "Awesome feature", 
    "number": 1,
    "array":, ["a", "b"]
},

然后在完成后保存文件,如果您不确定,您甚至可以使用 GeoJSON lint 之类的东西来验证整个集合或单个功能:http: //geojsonlint.com/

对于您感兴趣的那一行是jQuery中的一个方法,该方法$.getJSON将 JSON 文件从本地或外部位置加载到您的当前脚本中。要使用它,请给它两个参数。第一个是加载数据的 url,//example.org/data.geo.json或者/my/local/folder/data.geo.json第二个是加载数据后执行的函数,因此您可以处理数据,将其分配给某些东西。例如:

$.getJSON('//example.org/data.geo.json', function (data) {
    // here 'data' contains the geojson object for you to use
});

可以在此处找到有关 getJSON 方法的更多信息:http: //api.jquery.com/jquery.getjson/

于 2015-01-29T11:02:41.880 回答