将批量Polygon按50个一组合并为MultiPolygon并生成FeatureCollection
批量合并Polygon为MultiPolygon并生成FeatureCollection
我来帮你搞定这个批量合并Polygon的需求!其实思路很直接,咱们可以用Python来实现,完全贴合你的需求:
核心思路
你手里的是一堆纯Polygon对象(没有Feature层级),咱们只需要:
- 把这些Polygon按每50个分成一组
- 每组里的所有Polygon的
coordinates直接拿出来,塞进MultiPolygon的coordinates数组里 - 给每个MultiPolygon套上Feature的外壳,最后把所有Feature组合成FeatureCollection
代码实现
# 假设这是你的原始Polygon列表(替换成你实际的数据源) polygons = [ {"type":"Polygon","coordinates":[[[-3.74761249275648,48.1553321393883],[-3.7487037670057,48.1549328094763],[-3.74881026067484,48.1551269441743],[-3.7489842306003,48.1562730580435],[-3.74891349344581,48.1564591451586],[-3.74808156498281,48.1564431307103],[-3.74508499799638,48.1571063739741],[-3.74469509883265,48.1569830965023],[-3.74442860883604,48.156338388502],[-3.7456218240484,48.1559377887423],[-3.74765763078163,48.1556344996134],[-3.74761249275648,48.1553321393883]]]}, # 这里省略其他数千个Polygon... ] # 按每50个Polygon分组 group_size = 50 polygon_groups = [polygons[i:i+group_size] for i in range(0, len(polygons), group_size)] # 生成Feature列表 features = [] for group in polygon_groups: # 提取每组中所有Polygon的coordinates multi_polygon_coords = [poly["coordinates"] for poly in group] # 构建Feature对象 feature = { "type": "Feature", "properties": {}, "geometry": { "type": "MultiPolygon", "coordinates": multi_polygon_coords } } features.append(feature) # 生成最终的FeatureCollection feature_collection = { "type": "FeatureCollection", "features": features } # 可以把结果转成格式化的JSON字符串输出 import json print(json.dumps(feature_collection, indent=2))
关键说明
- 分组逻辑:用列表切片
polygons[i:i+group_size]就能轻松把大列表分成每50个一组的小列表 - 提取坐标:因为你的每个Polygon对象直接包含
coordinates字段,所以直接通过poly["coordinates"]就能拿到,不需要额外处理层级 - 格式匹配:完全按照你给出的FeatureCollection示例格式生成,每个Feature的
properties是空对象,geometry是标准的MultiPolygon结构
内容的提问来源于stack exchange,提问作者remotesatellite
相关产品推荐
相关产品推荐

