gpt4 book ai didi

shapefile - 如何在特定区域为 H3 六边形生成 shapefile

转载 作者:行者123 更新时间:2023-12-04 13:56:40 28 4
gpt4 key购买 nike

我想为 H3 生成 shapefile特定地理区域的六边形。特别是,我对分辨率为 6、7 和 9 的湾区感兴趣。如何为覆盖该区域的六边形创建 shapefile?

我是 shapefile 或任何其他地理数据结构的新手。我对 python 和 R 最满意。

最佳答案

这里的基本步骤是:

  • 取所需区域的多边形。边界框应该可以正常工作。
  • 使用 polyfill方法以所需的分辨率用六边形填充多边形。
  • 循环遍历每个六边形并获得 h3ToGeoBoundary 的边界功能。
  • 将这些边界放入 GeoJSON 文件
  • 使用像 ogr2ogr 这样的转换器转换为 shapefile。

  • Python 绑定(bind)尚未发布,我对 R 绑定(bind)不熟悉,但 JavaScript 版本可能如下所示:
    var h3 = require('h3-js');

    var bbox = [
    [-123.308821530582, 38.28055644998254],
    [-121.30037257250085, 38.28055644998254],
    [-121.30037257250085, 37.242722073589164],
    [-123.308821530582, 37.242722073589164]
    ];

    var hexagons = h3.polyfill(bbox, 6, true);

    var geojson = {
    type: 'Feature',
    geometry: {
    type: 'MultiPolygon',
    coordinates: hexagons.map(function toBoundary(hex) {
    return [h3.h3ToGeoBoundary(hex, true)];
    })
    }
    };

    console.log(JSON.stringify(geojson));

    你会像这样使用脚本:
    node bbox-geojson.js | ogr2ogr -f "ESRI Shapefile" bbox-hexagons.shp /vsistdin/

    关于shapefile - 如何在特定区域为 H3 六边形生成 shapefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51159241/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com