问题描述
我正在使用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
检查对象是否在另一个对象内但是似乎没有百分比。