node.js - 使用 Google Cloud Functions 确定点是否在多边形中的简单方法
问题描述
我在 Google Firestore 集合中有一组多边形(GeoJSON)。
对于给定的纬度/经度坐标,我如何确定哪些多边形将包含它?
我已经使用 Leaflet 和 Mapbox 为前端解决方案解决了类似的问题,但从未用于后端。其他 NoSQL 数据库可以本地执行此搜索,但我无法确定 Firestore 是否也可以。
希望有一种相对轻量级的搜索方式。
感谢您的输入!
解决方案
据我所知,Firestore 中没有对此的本机支持。例如,Geofire 使用 firebase realtmedb 对地理空间数据进行了一些实现。但是,据我所知,它也不适用于 Firestore。
最好的办法是在 Firebase 函数中将其作为函数运行。您可以将多边形存储在 Firestore 中,然后使用节点模块从函数运行计算,例如: https ://www.npmjs.com/package/point-in-polygon
大多数基本实现将要求您检查每个多边形。但是,如果您可以使用任何其他元数据或使用最短路径的某些策略来减少这种情况,那么如果您有很多多边形要检查,这将有所帮助。
推荐阅读
- excel - MDX 计算成员不允许多个层次结构元组
- sql - 在 Impala 中将数组列查询为行的解决方法
- java - 如何检测用户何时将一个 wifi 连接转至另一个 wifi?
- excel - 用于打开文件的 Excel VBA 宏崩溃而没有任何错误消息
- ruby-on-rails - Ruby 应用程序部署在和 amazon linux 实例上:从 assets 文件夹创建一个对象
- c# - 通知 UI 实体框架项的更改
- php - 简单文件上传CKEditor
- javascript - 如何从字符串 javascript 构建对象
- java - 错误提示:由于 Maven 依赖性,在 DispatcherServlet 中找不到带有 URI 的 HTTP 请求的映射
- javascript - 使用 Typescript 做出反应:是否应该使用 Typescript 替换 propTypes 定义?