![](/img/trans.png)
[英]Using Python S2/S2sphere library - find all s2 cells of a particular level with in a circle(lat, long and radius is given)
[英]Python S2/S2sphere library - find all s2 cells on earth at a given level
我是python s2sphere
库的s2sphere
。 在给定级别上,我想要所有单元ID的列表。 我尝试使用两极界定的矩形:
region = s2sphere.LatLngRect(LatLng.from_degrees(-90,0),LatLng.from_degrees(90,0))
但是region.area()
0。我可以采用许多较小的矩形的并集,但这看起来很混乱。 有没有一种优雅的方法可以做到这一点?
我发现可以使用横跨两个半球的两个矩形来完成。 对于level = 0,下面是一个示例:
from s2sphere import *
region1=LatLngRect(LatLng.from_degrees(-90,0),LatLng.from_degrees(90,180)) r1=RegionCoverer() r1.min_level,r1.max_level=(0,0) cell_IDs1 = r1.get_covering(region1)
region2=LatLngRect(LatLng.from_degrees(-90,180),LatLng.from_degrees(90,0)) r2=RegionCoverer() r2.min_level,r2.max_level=(0,0) cell_IDs2 = r2.get_covering(region2)
all_cell_IDs = set(cell_IDs1) | set(cell_IDs2)
最后一行粘着半球。 打印单元格纬度
for i in all_cell_IDs: print i.to_lat_lng()
给出:
LatLng: 0.0,0.0 LatLng: 0.0,90.0 LatLng: -0.0,-180.0 LatLng: -0.0,-90.0 LatLng: 90.0,-180.0 LatLng: -90.0,0.0
立方体的六个面。 如预期的那样,级别= 1,将有24个单元。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.