Window 配置 Uber/h3 库的环境

324 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

引言

这是关于 Uber/h3 空间索引库的第五篇,之前说Uber/H3 Cell Mode 关于 Cell 模式的这篇作为最后一篇,但是 h3-Java 是一个底层 native 的函数,无奈只能通过看 C 语言源码来查看经纬度是如何映射到 Resolution 0 的六边形中的。

但是在调试源码的过程中,遇到了些问题就整理总结了下,方便跟我有同样需求的小伙伴顺利调试。

Uber/h3 项目 Clone

进行项目

git clone https://github.com/uber/h3.git

若存在 Github 访问超时问题,可以通过 GitHub Proxy 代理加速 进行代理 clone

git clone https://ghproxy.com/https://github.com/uber/h3.git

C 语言环境准备

C 语言最好用的还得是 Visual Studio 2022 社区版 ,很多的依赖通过 Visual Studio Installer 安装要简单很多

踩过坑 这两个建议勾选上,单独下载 CMake 编译项目会报错,作为一个 Java 程序猿也没精力去解决。

vs-installer.png

Builing H3 on Windows

正确的打开方式

打开命令行,切到项目目录执行编译命令

mkdir build
cd build
cmake ..

编译完成后可以到 build/CMakeOutput.log 文件中查看执行结果,若文件显示 :

已成功生成。
    0 个警告
    0 个错误

则证明 build 成功。

异常情况

我之前自己安装的 CMake 编译就报如下的错误:

CMake Error at CMakeLists.txt:26 (project): 
  系统找不到指定的文件。

一般就是自己系统的环境有问题,建议按照 环境准备那一章去重新安装下环境。

跑一个单元测试

在 h3 testapps 找一个 单元测试,我的使用场景就是给定经纬度求空间索引,对应的单元测试为 testLatLngToCell

运行本地调试

C调试.png

输入参数

该单元测试比较的输入的空间索引与生成的空间索引是否一致,输入的参数就为 空间索引地址 + 坐标

C命令行.png

进入断点

C断点.png

就可以逐句查看 Uber/h3 根据经纬度如何生成空间索引的 C 语言算法实现了。