'list' object has no attribute 'cell_ids'
时间: 2023-07-31 07:09:43 浏览: 179
非常抱歉,我之前的代码中出现了错误。如果您想要获取 `S2CellUnion` 对象中的单元格 ID,可以直接使用 `S2CellUnion` 对象本身进行遍历。
以下是修正后的代码示例:
```python
from s2sphere import CellId, LatLngRect, LatLng, RegionCoverer, S2CellUnion
min_lat = 40.0 # 最小纬度
max_lat = 41.0 # 最大纬度
min_lng = -74.0 # 最小经度
max_lng = -73.0 # 最大经度
min_level = 10 # 最小级别
max_level = 13 # 最大级别
rect = LatLngRect.from_point_pair(
LatLng.from_degrees(min_lat, min_lng),
LatLng.from_degrees(max_lat, max_lng)
)
coverer = RegionCoverer()
coverer.min_level = min_level
coverer.max_level = max_level
for level in range(min_level, max_level + 1):
covering = coverer.get_covering(rect)
filtered_covering = [cell_id for cell_id in covering if cell_id.level() == level]
union = S2CellUnion(filtered_covering)
for cell_id in union:
print(f"Level {level} - Cell ID: {cell_id.id().id()}")
```
在修正后的代码中,我们首先获取整个矩形区域的覆盖单元格列表 `covering`。然后,我们使用列表推导式过滤出指定级别的单元格,并直接使用 `S2CellUnion` 构造函数创建 `union` 对象。
最后,我们遍历 `union` 中的每个单元格,并打印其 ID。
再次对之前的错误表示歉意,并希望以上修复能够解决问题。如果您还有其他问题,请随时提问!
阅读全文