我自己根据Rosreestr的KPT制作了一个geojson,并在“Yandex Map Constructor”中绘制了它,这里是地图的链接。第一个问题是,在创建 geojson 时,如何制作一个具有完全透明填充的多边形,以便您可以在地图上(多边形内部)“戳”它,我读到“fill-opacity”:0就是这样做的,但它不起作用?第二个问题,有些地块有多个轮廓,你可以在地图上找到混乱的线条,我认为你需要基于这些创建一个多多边形,我的想法是否正确(至少在方向上)?这是我用来制作 geojson 的代码:
import geojson
import pandas as pd
excel_file = r'F:\python_1\non-contractual\geo_KPT.xlsx'
df = pd.read_excel(excel_file)
feature_collection = geojson.FeatureCollection([])
coords_dict = {}
for i, row in df.iterrows():
kad_num = row['Кадастровый номер']
x = row['Координаты x']
y = row['Координаты y']
if kad_num in coords_dict:
coords_dict[kad_num].append([y, x])
else:
coords_dict[kad_num] = [[y, x]]
for kad_num, coords_list in coords_dict.items():
feature = geojson.Feature(
geometry=geojson.Polygon([coords_list]),
properties={"description": f"{kad_num}",
"fill":"#ff931e",
"fill-opacity":0,
"stroke":"#e6761b",
"stroke-width":"1",
"stroke-opacity":0.9}
)
feature_collection['features'].append(feature)
with open(r'F:\python_1\non-contractual\geojson\1.geojson', 'w') as f:
geojson.dump(feature_collection, f)
关于第一个问题,最好用直线来制作,而不是用多边形来制作,这样就不会有问题。关于第二个问题,Yandex 的地图设计器不支持 MultiPolygon(据我了解)以及 MultiLineString,对于 MultiPolygon 最好这样做,在地图上构建正多边形并从中构造外部轮廓(这是 MultiPolygon),然后保存并导出到 geojson,在那里您可以看到这些边界是如何制作的。