获取自定义GeoJSON文件以在HighMaps中工作

时间:2015-01-29 06:21:32

标签: json highcharts geojson highmaps

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

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

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

我的自定义.geojson文件位于here

1 个答案:

答案 0 :(得分:1)

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

如果您想要这么做,您还可以在您喜欢的短信中打开GeoJSON文件并编辑JSON结构。通常,featurecollection看起来像这样:

{
  "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文件从本地或外部位置加载到当前脚本中。要使用它,请给它两个参数。第一个是从//example.org/data.geo.json/my/local/folder/data.geo.json加载数据的URL,第二个是在加载数据后执行的函数,因此您可以处理数据,将其分配给某个左右。例如:

$.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/