node.js - 如何创建地理编码服务(查找与给定点相交的多边形)

标签 node.js mongodb redis memcached geocode

情况

我有一个包含 2,000,000 个城市的数据库。所有这些都有市中心的坐标,并且大部分都有 GeoJSON 边界。我正在尝试实现一个地理编码服务,该服务将使用 node.jsmongodbredismemcached (和 golang,如果有必要的话,因为我对它完全陌生)来查找与给定点相交的城市

问题

我知道如何使用点(纬度和经度),因为 MongoDBRedis 都支持地理索引,但我从未见过有关多边形的任何内容。

我猜MongoDB不会因为它的速度而真正有帮助(因为它在磁盘上工作),但是任何内存数据库都应该处理这个问题。问题是我什至想不出任何方法来实现它。

如果有人指出我如何制作它,我会很高兴。谢谢。

最佳答案

您可以自己实现多边形点算法。我在 https://api.3geonames.org 上做了类似的事情

首先创建边界框来识别候选多边形,然后运行 ​​PIP。 https://en.wikipedia.org/wiki/Point_in_polygon

关于node.js - 如何创建地理编码服务(查找与给定点相交的多边形),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230360/

相关文章:

mysql - 我如何使用 sequelize ORM 将列定义为 tinyint(4)

javascript - Node JS 处理同一路由的多个 POST 请求

python - 在 Heroku 上使用 Flask 应用程序运行 RQScheduler

Redis 在大量键上过期

ruby-on-rails - 不使用 Heroku 上的 Resque 进行后台作业

node.js - 将 Firestore 依赖项和类型导入到 node.js

javascript - 未捕获的 promise 拒绝语法错误 : Unexpected token u in JSON at position 0

node.js - 将多组数据添加到 C3 图表会停止显示

arrays - MongoDB:搜索数组值时的单一结果

javascript - meteor /MongoDB : find documents by multiple values of same property