我的模型包含geojson点。找到最接近弹簧数据的方法很简单,但如何找到最近的位置以获得给定路线?
我从谷歌获取路线信息:
答案 0 :(得分:3)
来自地图googleapi的路线信息被分解为具有纬度/经度坐标的起始位置和结束位置的步骤。
计算模型中点的距离与路线中的所有起点/终点位置,可以衡量点与路线的距离。路线起点/终点的最小“距离”将是该路线的最近位置。
当计算的距离大于先前的最小累积距离时,您可以通过丢弃任何点来优化计算。
答案 1 :(得分:2)
Google maps api返回路线的“步数”,其中包含该路段边缘的坐标。 您可以使用这些边缘在该直线拉伸上创建外推点。让我们称它们为p1,p2,p3,p4 ...... pN。 然后你在数据库中运行$ near查询这些点,你会的 到达该路线附近的最近位置。
打开街道地图数据库提供路线坐标信息, 您可以使用它来补充您的数据。 详细答案如下:Get exact geo coordinates along an entire route, Google Maps or OpenStreetMap
答案 2 :(得分:1)
首先,你需要得到这个结果然后把它放在一个包含Lat + Lng的数组中。
其次,在您的资源库中创建一个方法,其中包含您希望使用术语"在"内搜索的参数。
示例:
List<MyObject> findByLocationWithin(Box box);
此方法代表相应的条件:
{"location" : {"$geoWithin" : {"$box" : [ [x1, y1], [x2, y2]}}}
如果您需要更多信息,请访问以下链接:
http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb.repositories.queries
https://docs.mongodb.org/manual/reference/operator/query/box/