如何找到存储在mongodb中的两条折线的重叠百分比?

问题描述

我正在使用Google Maps API获取从一个地方到另一个地方的路线。 Google地图返回的折线看起来像这样

greenfoot.World

第一个查询

我想知道是否将此折线存储在mongo数据库中,还是将其转换为点列表并将其存储为o`kpBywaaMQs@y@{Ag@LUJEKUsFyATeE|@i@@{B?w@@iBLkC\}APoBP{BPyAJuBCqAJeAHkAB{@Bs@JcAVyCv@yBlBl@i@JoAPuB?}@@UB]NWRq@^yBdAaB~@IBEr@MpBK~A@RDLLFxBf@hAVb@P`Bz@bErB

将折线转换为点将返回类似的结果

LineString

第二个问题

我将不得不使用多条这样的折线,并且我需要确定两条或多条折线是否相互重叠(如果可能,还要重叠多少百分比)。

这与第一个问题有关,因为我认为执行针对上述要求的查询将需要将折线存储为两种格式中的一种,以便于(或成功地)执行查询。

解决方法

是的,如果要使用mongodb的地理空间查询,则必须存储一个GeoJSON对象。 LineString似乎确实是您的最佳选择

您可以使用$geoIntersects检查两个GeoJSON对象是否相互重叠 或者,您可以使用$geoWithin

检查对象是否在另一个对象内

但是似乎没有百分比。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...