使用Google Cloud Functions确定点是否在多边形中的简便方法

时间:2018-07-11 01:12:48

标签: node.js google-cloud-firestore google-cloud-functions geojson

我在Google Firestore集合中有一个多边形(GeoJSON)集合。

对于给定的纬度/经度坐标,我如何确定哪些多边形包含该纬度?

我已经使用Leaflet和Mapbox解决了前端解决方案中的类似问题,但从未解决过后端的问题。其他NoSQL数据库可以本地执行此搜索,但我无法确定Firestore是否也可以。

希望有一种相对轻巧的方式来进行此搜索。

感谢您的输入!

1 个答案:

答案 0 :(得分:1)

据我所知,Firestore中对此没有本地支持。例如,Geofire使用Firebase realtmedb对地理空间数据进行了一些实现。但是,据我所知,它也不适用于Firestore。

您最好的选择是在Firebase函数中将此函数运行。您可以将多边形存储在Firestore中,然后使用诸如以下这样的节点模块从函数运行计算: https://www.npmjs.com/package/point-in-polygon

大多数基本实现都将要求您检查每个多边形。但是,如果您可以使用任何其他元数据来减少这种情况,或者使用某些最短路径来减少某些策略,那么如果您要检查许多多边形,将会有所帮助。