github 地址: https://github.com/xiangyuecn/AreaCity-Query-Geometry
主要用来查询一个坐标对应的城市信息,核心代码全放在一个 Java 文件内,测试程序额外提供了 HTTP API 服务接口
编写这套代码主要是因为数据库查询坐标信息太慢了,mysql 要 100 多 ms 查一个坐标,sql server 也要 50 多 ms ,群里有用户告诉我用未知开源库可达到 1ms 查询一次坐标点,数据库就不香了😂
如果不限制使用内存,单就检测一个坐标是否在一个几何面内,可以做到极高的性能,README 里面有讲到的 RTree 索引+射线法;不过我这个代码严格限制了使用内存大小,内存占用很低,性能相对低了很多。
内存占用低,性能优良,进行随机坐标点的查询单线程可以达到 17318 QPS


源码全部丢在根目录,没有建包名,可以双击那个 bat 文件直接进行编译和测试( mac 自己用 javac 编译运行),测试前需要有一个 geojson 文件,测试在初始化的时候会提醒输入一个 json 文件进行初始化,根据提示操作即可测试。