当前位置: 首页 > 知识库问答 >
问题:

如何在世界地图上可靠地生成六边形网格

易俊远
2023-03-14

目标

我试图建立一个应用程序,其中整个世界地图分裂成大量的六边形。这些六边形一旦生成,就会覆盖地图上的相同区域。然后,给定某些地理坐标,如果这些坐标位于地图的边界内,就会在地图上绘制出一个六边形。这些六边形需要非常小,每边大约。5000万--这提出了主要问题。

第一次尝试

// Attempting to cover the whole map in small hexagons
turf.hexGrid([-179.99, -89.99, 179.99, 89.99], 0.2);
// Attempting to cover the whole map in small hexagons only within a given area (mask)
turf.hexGrid([-179.99, -89.90, 178.99, 88.90], 30, {
  mask: polygon([[[20, 60], [21, 60], [22, 62], [22, 63], [20, 60]]]),
});

然而,这将产生非常倾斜的六边形,这导致我相信试图为整个世界生成十六进制网格通常是一个坏主意。

乐观计算

我的最后一次尝试是在地图的左上角生成一个六边形,并使用它的坐标来计算第一个六边形和任何给定坐标之间有多少个六边形。

共有1个答案

单凯捷
2023-03-14

我建议生成一个包含所有六边形的向量层,并使用Geodatabase执行geoquery动态加载它们。插针放置点的交点将返回其下的六边形,如果使用缓冲区,还可以在其周围添加更多的六边形。

WGS84的边界是-180.0000,-90.0000,180.0000,90.0000(我知道这很明显)来源:https://spatialreference.org/ref/epsg/wgs-84/这意味着您需要从那里开始,估计您需要/想要创建的六边形的数量。根据https://planetcalc.com/7721/,以米为单位的炉膛半径为6378137。假设你想要一个由6个等边三角形组成的六边形,这意味着为了得到一个边长约50米的六边形,它将有100m宽(假设平边是水平方向的)。

现在我们可以说,我们在赤道上需要大约63781个六边形,让我们简化为63800,html" target="_blank">360/63800=0.00564...所以我建议从赤道上0.0055度的点的偏移量开始。

需要强调的一点是,WGS84是一个大地水准面,而不是球形(像我们的星球),所以最终的表示可能会有所拉伸。

更新:要自动生成网格,由于Grass的存在,您似乎也可以使用量子GIS

https://github.com/rldhont/quantum-gis/blob/master/python/plugins/processing/algs/grass7/description/v.mkgrid.txt https://grass.osgeo.org/grass76/manuals/v.mkgrid.html

 类似资料:
  • 这更多的是一个方法问题,而不仅仅是技术问题。 我有一个生成的球体,分解成六边形作为一个网格。每一个六边形瓷砖都是一种不同的地形,例如,山,丘陵,海洋,飞机等。我想在3D中把每一种地形类型画成几个网格的集合,代表一种相应的地形类型。 现在最大的问题是如何在运行时将地形网格调整到每个六边形面,这取决于地形类型,在运行时地形类型也会发生变化,例如,地形变形。同时,考虑到六边形并不是完全正则或相等的。 缩

  • 我对类似的http://wiki.openstreetmap.org/wiki/Nominatim 即,为了能够提出请求并获得某种多边形坐标: “geojson:{“类型”:“多边形”,“坐标”:[[[-87.464761,44.600998],-87.459755,44.599569],-87.459745,44.601012],-87.463143,44.601],-87.464761,44.

  • 我想使用GeoJSON数据在Google地图上显示城市边界,我使用以下工具获得这些数据。 我去nominatim.openstreetmap.org寻找一个城市(例如丹佛) 使用检索到的OSM ID(在本例中为:253750),然后我使用在线工具(polygons.openstreetmap.fr)生成了GeoJSON文件-看起来像这样http://polygons.openstreetmap.f

  • 问题内容: 编辑: 我已经重新组织了这个问题,以反映自从可用以来的新信息。 请先阅读此问题及其答案,但基本上得出的结论是,番石榴图不会异步计算和执行驱逐。给出以下地图: 进入条目后经过十分钟后,直到再次“触摸”地图后,该条目仍不会退出。执行此操作的已知方法包括常用的访问器- 和和 。 我的问题的第一部分[已解决]: 还有哪些其他调用导致地图被“触摸”?具体来说,有谁知道是否属于这一类? 对此感到疑

  • 我一直在努力寻找解决这个问题--所以我真的必须寻求帮助。 我创建了一个基于CSS的游戏地图,它以六边形瓷砖的形状覆盖了div(就像桌面游戏一样)。我正在尝试查找哪些瓷砖与当前活动瓷砖相邻。 有什么建议吗?

  • 我如何在上根据搜索的城市绘制边界线,如图中显示搜索的城市地图的红线所示? 我看到了各种链接,但找不到解决办法。 谢啦