2017-08-08 6 views
0

私はpython s2sphereライブラリを初めて使いました。特定のレベルでは、のすべてのセルIDのリストが必要です。私はポールで囲まれた四角形を使用してみました:Python S2/S2sphereライブラリ - 指定されたレベルで地球上のすべてのs2セルを見つける

region = s2sphere.LatLngRect(LatLng.from_degrees(-90,0),LatLng.from_degrees(90,0))

けどregion.area()は、私は多くの小さな長方形の和集合を取ることができる0になりますが、それは厄介なようです。これを行うエレガントな方法はありますか?

答えて

0

これは、2つの半球にまたがる2つの長方形で行うことができます。レベル= 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)

最後の行は、半球を接着します。セルの印刷LAT-long型

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

立方体の6つの側面です。予想どおり、レベル= 1の場合、24個のセルが存在します。

関連する問題