如何仅获取 H3 中 hexRing() 外边缘的顶点?
How can I get vertices for only the outside edges of a hexRing() in H3?
要点非常简单,即使实现不是...
我想得到 hexRing
的外边,而不是六边形的所有边。几乎从环的外边缘创建一个包含其内部所有内容的多边形。目前我们可以使用 geojson2h3.h3SetToFeature()
,它使用 h3SetToMultiPolygon()
来创建那个多边形。
这看起来像:
六角环多边形:
相反,我只想获得外边,如下所示:
外侧边缘:
我目前正在使用
为了只实现一个外边界,但是,由于该区域中包含的六边形数量,此功能的性能特征在各种情况下无法在移动设备上使用. hexRing()
可以使用最少数量的六边形。
如何实现?
以 H3 为中心的答案是使用 K 环,正如您所建议的,但这肯定是更多的计算(在计算六边形集和计算轮廓时可能都较慢)。
这里的简单答案是使用 h3SetToMultiPolygon
的输出并简单地从 geojson 中删除第二个环。 geojson 格式为
{
"type": "Feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
// list of polygons, there's only one in your case
[
// list of loops: first is outline, the rest are holes
[...],
[...]
]
]
}
}
所以你需要做的就是设置
geojson.geometry.coordinates[0] = [geojson.geometry.coordinates[0][0]]
将多边形设置为仅外环,去掉洞(未经测试,但我认为是正确的)。
要点非常简单,即使实现不是...
我想得到 hexRing
的外边,而不是六边形的所有边。几乎从环的外边缘创建一个包含其内部所有内容的多边形。目前我们可以使用 geojson2h3.h3SetToFeature()
,它使用 h3SetToMultiPolygon()
来创建那个多边形。
这看起来像:
六角环多边形:
相反,我只想获得外边,如下所示:
外侧边缘:
我目前正在使用
为了只实现一个外边界,但是,由于该区域中包含的六边形数量,此功能的性能特征在各种情况下无法在移动设备上使用. hexRing()
可以使用最少数量的六边形。
如何实现?
以 H3 为中心的答案是使用 K 环,正如您所建议的,但这肯定是更多的计算(在计算六边形集和计算轮廓时可能都较慢)。
这里的简单答案是使用 h3SetToMultiPolygon
的输出并简单地从 geojson 中删除第二个环。 geojson 格式为
{
"type": "Feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
// list of polygons, there's only one in your case
[
// list of loops: first is outline, the rest are holes
[...],
[...]
]
]
}
}
所以你需要做的就是设置
geojson.geometry.coordinates[0] = [geojson.geometry.coordinates[0][0]]
将多边形设置为仅外环,去掉洞(未经测试,但我认为是正确的)。