主要用来查询一个坐标对应的城市信息,核心代码全放在一个 Java 文件内,测试程序额外提供了 HTTP API 服务接口
编写这套代码主要是因为数据库查询坐标信息太慢了,mysql 要 100 多 ms 查一个坐标,sql server 也要 50 多 ms ,群里有用户告诉我用未知开源库可达到 1ms 查询一次坐标点,数据库就不香了😂
如果不限制使用内存,单就检测一个坐标是否在一个几何面内,可以做到极高的性能,README 里面有讲到的 RTree 索引+射线法;不过我这个代码严格限制了使用内存大小,内存占用很低,性能相对低了很多。
内存占用低,性能优良,进行随机坐标点的查询单线程可以达到 17318 QPS
源码全部丢在根目录,没有建包名,可以双击那个 bat 文件直接进行编译和测试( mac 自己用 javac 编译运行),测试前需要有一个 geojson 文件,测试在初始化的时候会提醒输入一个 json 文件进行初始化,根据提示操作即可测试。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.