本文介绍了优步h3能以六角形网格覆盖全球吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
优步发布了h3,这是一个高效处理地理空间文件中大数据的框架。使用h3,我尝试获得如图所示的六边形网格位置。 (eng.uber/h3/)
我从以下代码中获得了六边形网格的位置。然后我把它画在一张二维地图上,看看它是否覆盖了整个地球。但是,我在边界(-90°、90°、-180°、180°)上得不到有效的六边形。而且它似乎并没有覆盖整个全球。 (hexagonal grid)
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')我想要覆盖整个地球的六边形的位置。在这种情况下,我使用h3,但我不在乎如何,只要我能得到这个职位。
推荐答案是的,H3覆盖全球。您在该图像中看到的是渲染伪像-根据您在平面投影中渲染全局栅格的方式,您可能会在两极或反偏线上获得类似的伪像。例如,请参见this map以获得H3的投影,该投影可在反偏线上正确呈现,尽管它在两极周围仍有一些问题。
更多推荐
优步h3能以六角形网格覆盖全球吗?
发布评论