我目前有一个自定义的.geo.json文件,我使用ogr2ogr从一个县shapefile创建。我想为每个县手动添加值,我已经研究了this jsfiddle,但是,我不太确定如何将两者放在一起。我对jsfiddle的以下代码行特别感兴趣:
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=germany.geo.json&callback=?', function (geojson) {
这是我应该集中精力的地方吗?
我的自定义.geojson文件位于here。
答案 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/