gpt4 book ai didi

python - 在 QGIS 或 Python 中向 GeoJSON 添加唯一的功能 ID

转载 作者:行者123 更新时间:2023-11-28 16:28:42 25 4
gpt4 key购买 nike

根据GeoJSON格式规范

“如果一个特征有一个常用的标识符,该标识符应该作为一个名为“id”的特征对象的成员。”

我的问题是如何将其添加到我的 GeoJSON 中?

如果我将它创建为属性,然后在 QGIS 中将其保存为 GeoJSON,它最终会出现在属性中而不是功能中。

这就是我想要做的:

{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name":"urn:ogc:def:crs:OGC:1.3:CRS84" } },

"features": [
{ "type": "Feature", "id":"1", "properties": { "Namn":.................

这是 QGIS 产生的:

{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },

"features": [
{ "type": "Feature", "properties": { "id": 1, "Name"..................

我也尝试过 PyGeoj https://github.com/karimbahgat/PyGeoj .这具有添加唯一 ID 的功能,但它也会在属性下添加它。

如果我打开 GeoJSON 并手动写入它,那么它就可以工作,但我不想对我的所有图层都这样做,其中一些图层包含许多功能。

最佳答案

我想我会在这里写下我是如何解决它的,以防其他人遇到同样的问题。

一个简单的 python 脚本:

#create empty file to be writen to
file = open("kommun_id.geojson", "w")
count = 0

#read original file
with open('kommun.geojson', 'r')as myfile:
for line in myfile:

#lines that don't need to be edited with an 'id'
if not line.startswith('{ "type": '):
file.write(line)
else:
#lines that need to be edited
count = count +1
idNr = str(count)
file.write(line[0:20] + '"id":'+ '"'+ idNr + '",' +line[21:])

file.close()

它可能不适用于所有 geoGJSON,但它适用于我用 QGIS 创建的 geoGJSON

关于python - 在 QGIS 或 Python 中向 GeoJSON 添加唯一的功能 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com