跳到内容

uber/h3型

H3标志

H3:一个六边形层次地理空间索引系统

测试-线性 测试macos 测试窗口 测试网站 覆盖范围状态 许可证

H3是一个使用六边形网格的地理空间索引系统,六边形栅格可以(近似)细分为越来越细的六边形格栅,结合了六边形格网的优点和S2系列的层次划分。

文档可从以下网址获得:https://h3geo.org/。可在开发文档目录。

正在安装

如果您的编程语言可用,我们建议使用预构建绑定。的绑定Java语言JavaScript脚本蟒蛇、和其他可用。

在macOS上,可以使用安装H3酿造:

brew安装h3

否则,要从源代码构建H3,请参阅以下说明。

从源头构建

还在这里吗?要构建H3C库,您需要一个C编译器(用测试海湾合作委员会叮当作响),C制动器、和制造商。如果您打算为H3捐款,您必须铿锵格式已安装,建议安装ccmake公司LCOV公司配置cmake公司参数来构建和运行测试并生成代码覆盖率报告。我们还建议使用海湾合作委员会作为的某些版本的代码覆盖率叮当作响生成与不兼容的注释lcov公司.编程辅助工具需要创建API文档。

安装构建时依赖项

  • 阿尔卑斯山
#安装裸构建需求apk add cmake生成gcc libtool musl-dev
  • Debian/Ubuntu
#安装裸构建需求sudo apt安装cmake生成gcc libtool#安装有用的开发工具sudo apt安装clang-format cmake-curses-gui-lcov doxygen
  • macOS(使用酿造)

首先确保你安装开发人员工具然后

#安装裸构建需求brew安装cmake#安装有用的开发工具brew安装clang格式lcov doxygen
  • Windows(Visual Studio)

您需要安装CMake和Visual Studio,包括Visual C++编译器。要在Windows上构建,请按照Windows构建说明.

  • 免费BSD
#安装构建需求sudo pkg安装bash cmake gmake doxygen lcov

汇编

签出H3 Git存储库时,默认情况下您将签出最新的H3的开发版本。在应用程序中使用H3时,您需要检查最新发布的版本:

git结帐与$(<版本)

从存储库根目录,可以使用以下命令编译H3:

mkdir构建cd内部版本cmake-DCMAKE_BUILD_TYPE=发布。。制作

所有后续制作命令应该从建造目录。

注释:有几种方法可以使用CMake构建H3;上面的方法只是将所有构建工件限制为建造目录。

您可以使用以下工具在系统范围内安装:

sudo make安装

如果使用上述方法,您可以从存储库根清理所有构建工件:

rm-rf构建

测试

完成项目后,可以使用进行测试进行测试.您可以运行一个更快的测试套件,该套件排除了使用快速进行测试.

新闻报道

如果满足以下条件,则可以生成代码覆盖率报告lcov公司已安装,并且如果项目是使用CMAKE_BUILD_TYPE=调试ENABLE_COVERAGE=开选项。例如,从干净的存储库中,您可以运行:

mkdir构建cd构建cmake-DCMAKE_BUILD_TYPE=调试-DENABLE_COVERAGE=开。。制作覆盖范围

然后,您可以通过打开来查看详细的HTML覆盖率报告coverage/index.html在您的浏览器中。

基准

您可以使用CMAKE_BUILD_TYPE=发布、和正在运行制定基准:

mkdir构建cd内部版本cmake-DCMAKE_BUILD_TYPE=发布。。制作制定基准

文档

您可以使用构建开发人员文档制作文档如果在运行CMake时安装了Doxygen。文件索引将为dev-docs/_build/html/index.html.

创建项目后,可以构建KML文件以可视化六边形网格制造kml。文件将放置在KML公司.

要构建文档网站,请参阅网站/目录。

用法

从命令行

要获得某个位置的H3指数:

./bin/latLngToCell--分辨率10--纬度40.689167--经度-74.044444

10是H3分辨率,介于0(最粗)和15(最细)之间。输入的坐标是纬度和经度,以度为单位,是您想要的索引(这些坐标是自由女神像)。你应该得到一个H3指数作为输出,比如8a2a1072b59ffff号.

然后,您可以获取此索引并获取有关它的一些信息,例如:

./bin/cellToBoundary--索引8a2a1072b59ffff

这将在该位置生成六边形的顶点:

8a2a1072b59ffff公司{40.690058601 -74.04415176240.689907695 -74.04506179240.689270936 -74.04534141840.688785091 -74.04471103140.688935993-74.04380102140.689572744 -74.043521377}

你可以得到六边形的中心坐标,如下所示:

./bin/cellToLatLng--索引8a2a1072b59ffff

这将产生一些坐标:

40.6894218437 -74.0444313999

来自C

H3的上述特性也可以从C中使用。例如,您可以编译和运行示例/索引。c(c)如此:

cc-lh3示例/index.c-o示例./示例

您应该得到如下输出:

索引为:8a2a1072b59ffff边界顶点#0:40.690059,-74.044152边界顶点#1:40.689908,-74.045062边界顶点#2:40.689271,-74.045341边界顶点#3:40.688785,-74.044711边界顶点#4:40.688936,-74.043801边界顶点#5:40.689573,-74.043521中心坐标:40.689422,-74.044431

贡献

欢迎Pull请求和Github问题。请参阅我们的贡献指南了解更多信息。

在合并您的更改之前,您必须同意优步贡献者许可协议.

法律和许可

H3根据Apache 2.0许可证.

DGGRID公司版权所有(c)2015南俄勒冈州大学