问题标签 [h3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用 H3 获取离地理位置最近的车辆
我正在开发一个系统,其中我有一个包含 100000 个地理位置和 10000 个正在移动的汽车的地理位置的列表,并且每 X 秒发生一次车辆的位置更新,即同时我可以接收到 N 个车辆位置更新。
我的问题是,每隔 X 秒,系统需要搜索靠近位置 L 的所有车辆,目前,系统通过地理位置列表查找特定半径内的所有车辆,并应用一些搜索在这个过程中过滤。
但是,我注意到的是,计算直线距离的距离计算系统是这个过滤过程中消耗时间最多的部分,并且由于系统中有几种方法可以执行这些搜索,涉及到距离L 点和 N 点车辆,在一个半径内,这个过程越来越慢,因为对于每个 L 点,我需要遍历整个车辆列表。
因此,我开始寻找索引地理位置的系统,并且我还可以搜索这些索引,例如,使用规则获取距离地理位置 X 半径 N 公里内的所有车辆
H3 对我来说似乎很有趣,但是,我在他们的文档中找不到它,我该怎么做,或者如何在地图上添加 N 车辆。
indexing - H3 入门
我是地理空间索引的新手,发现 H3 非常有趣。目前正在处理 API 上的几个不同功能,但我的问题是如何将 H3 单元格渲染到地图上?
你建议什么地图,我该怎么做?
亲切的问候,
莫
javascript - 将 Uber 的 H3 Hexagonal 分层地理空间索引系统中的基本六边形映射到全球的原点在哪里?
我刚刚了解了H3,并希望基本上获得“标准参考”点,在每个分辨率下参考每个六边形(和 12 个五边形),然后确定每个六边形的 lat/lng 坐标。这是如何运作的?
H3 网格是在二十面体上通过递归创建精度越来越高的六边形网格构建的,直到达到所需的分辨率。请注意,用六边形完全平铺球体/二十面体是不可能的;二十面体六边形网格的每个分辨率必须在每个分辨率下恰好包含 12 个五边形,其中一个五边形以每个二十面体顶点为中心。
第一个 H3 分辨率(分辨率 0)由 122 个单元(110 个六边形和 12 个二十面体顶点中心五边形)组成,称为基本单元。选择这些是为了尽可能多地捕捉球形二十面体的对称性。这些基本单元根据其中心点的纬度被分配从 0 到 121 的编号;基本单元 0 具有最北端的中心点,而基本单元 121 具有最南端的中心点。
超过分辨率 0 的每个后续分辨率都是使用孔径 7 分辨率间距创建的(孔径是指每个单元的下一个更精细分辨率网格中的单元数);随着分辨率的增加,单位长度按 sqrt(7) 缩放,并且每个六边形在下一个较粗的分辨率下(在二十面体上测量)具有六边形面积的 1/7。除了分辨率为 0 的基本单元之外,H3 还提供了 15 种更精细的网格分辨率。最好的分辨率,即 15 分辨率,其单元格的面积小于 1 平方米。
我想降低分辨率 10,大约是 15m^2 区域。我想以这个分辨率为每个六边形存储一个自定义生成的密钥,将密钥与六边形的索引或散列相关联,我假设它以某种方式与系统的起源相关联,并且以某种方式将起源硬编码为特定的放在地球上。
所以看起来这h3.getRes0Indexes
会给我们以 0 为底的 122 个原始单元格。并且层次结构文档在 JavaScript 库中显示了如何至少遍历分辨率。
因此,鉴于我已经弄清楚原始哈希是什么,这将使我以分辨率 10 为中心。在遍历代码中,我没有看到遍历每个节点一次的简单方法。那应该怎么做?
啊,没关系,难道只是,不是在分辨率 10 处跳转到中心子节点,而是要求基节点内的所有子节点?
也许我可以尝试直接从 0 跳到分辨率 10 并获得所有数百个孩子?我会试试的。
也可以使用这个:
所以我想我已经回答了我所有的问题,除了起源在哪里?它将这些东西映射到实际地球的部分在哪里?这是否以某种方式在代码库中的某个地方进行了硬编码?我怎么知道当我今天使用这个库时,我从 API 获得的 122 个基本六边形将具有与我上次使用它时相同的哈希值?
javascript - 如何使用 h3-js 在多边形内找到点(lat,lng)?
我有一个用 创建的多边形polyfill
,是否可以知道它point = [lat, lng]
是否在该多边形中(仅使用 h3-js)?
javascript - 用 h3 将世界地图分割成网格
我找到了我正在尝试做的 node.js 示例,但我不知道 node.js。我需要用 js 在 html 中运行这里所做的事情。
我想在 map.on click 中创建一个指向 h3index 代码的新点。我怎样才能使这些点成为六边形而不是圆形?
我已经尝试了很长时间,但我做不到。示例:https ://www.marketplace.ovr.ai
geojson - 如何在 H3 中填充多多边形?
我有一组 GeoJSON 格式的多面体,例如:
我正在尝试使用polyfill_geojson
H3 库中的方法来获取其中的六边形。但似乎这种方法只支持多边形而不支持多多边形:
如何从 Multipolygon GeoJSON 中获取 H3 六边形?
uber-api - h3Line function throws LineUndefinedException
I want to calculate index of the h3 cells between (-39.08, -57.01) and (-38.05, -58.16) but it throws LineUndefinedException.
In the documentation it says
This function may fail to find the line between two indexes, for example if they are very far apart. It may also fail when finding distances for indexes on opposite sides of a pentagon.
I think that it throws the exception because of the latter case. Is there workaround to calculate those cell indexes?
Code:
Exception:
python - 构建失败 - h3
安装 h3 会引发错误
尝试安装 h3 (uber-api) 时出现错误日志。构建失败是我多次尝试的结果。尝试帮助我解决一些问题
帮助找到解决方案✌️