回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>Uber发布了h3,一个有效处理地理空间文件中大数据的框架。使用h3,我试图获得六边形网格位置的位置,如图所示。
<a href="https://i.stack.imgur.com/BYzIh.png" rel="nofollow noreferrer">(https://eng.uber.com/h3/)</a></p>
<p>我从下面的代码中得到了六边形网格的位置。然后我把它画在一张二维地图上,看看它是否覆盖了整个地球。但是,在边界上没有得到有效的六边形(-90°、90°、-180°、180°)。而且它似乎没有覆盖整个地球。
<a href="https://i.stack.imgur.com/gy0EP.png" rel="nofollow noreferrer">(hexagonal grid)</a></p>
<pre><code> from h3 import h3
import folium
# Polyfill a Geo Json with hexagons
geoJson1 = {'type': 'Polygon', 'coordinates': [[[90,-180],[90,0],[-90,0],[-90,-180]]]}
geoJson2 = {'type': 'Polygon', 'coordinates': [[[90,0],[90,180],[-90,180],[-90,0]]]}
hexagons = list(h3.polyfill(geoJson1, 1)) + list(h3.polyfill(geoJson2, 1))
# Plot hexagons
polylines = []
for hex in hexagons:
polygons = h3.h3_set_to_multi_polygon([hex], geo_json=False)
outlines = [loop for polygon in polygons for loop in polygon]
polyline = [outline + [outline[0]] for outline in outlines][0]
polylines.append(polyline)
base = folium.Map([0,0], zoom_start=2, tiles='cartodbpositron')
for polyline in polylines:
m = folium.PolyLine(locations=polyline, weight=1, color='black')
base.add_child(m)
m.save('test.html')
</code></pre>
<p>我想要覆盖整个地球的六边形的位置。在这种情况下,我使用h3,但我不在乎多久,只要我能得到这个职位</p>