我在geojsonfile中有以下结构:
{"crs":
{"type": "name",
"properties":
{"name": "urn:ogc:def:crs:EPSG::4326"}
},
"type": "FeatureCollection",
"features": [
{"geometry":
{"type": "Polygon",
"coordinates": [[[10.914622377957983, 45.682007076150505],
[10.927456267537572, 45.68179119797432],
[10.927147329501077, 45.672795442796335],
[10.914315493899755, 45.67301125363092],
[10.914622377957983, 45.682007076150505]]]},
"type": "Feature",
"id": 0,
"properties": {"cellId": 38}
},
{"geometry":
{"type": "Polygon",
"coordinates":
... etc. ...
我想将这个geoJSON读入Google Maps,并根据我在Python中为每个单元格单独计算的属性对每个单元格进行着色。所以我最大的问题是:如何用Python读取geoJSON并为这些多边形添加另一个属性(有12 000个多边形,所以逐个添加它们不是一个选项),然后写新文件? / p>
我认为我正在寻找的是一个可以处理geoJSON的Python库,所以我不必通过srting操作来添加这些功能。
答案 0 :(得分:2)
Python geojson package有一种方式。
就像那样,你可以阅读geojson有一个对象:
import geojson
loaded = geojson.loads("Any geojson file or geojson string")
for feature in loaded.features[0:50]: #[0:50] for the only first 50th.
print feature
有Feature,FeatureCollection和Custom类可帮助您添加属性。
答案 1 :(得分:1)
geoJSON只是一个JSON
doc(简化,但是你只需要这个目的)。 Python将其读作dict
个对象。
由于dict
已就地更新,我们不需要为地理对象存储新变量。
import json
# read in json
geo_objects = json.load(open("/path/to/files"))
# code ...
for d in geo_objects:
d["path"]["to"]["field"] = calculated_value
json.dump(geofiles, open("/path/to/output/file"))
无需字符串操作,无需加载新库!