我可以使用2dsphere索引计算MongoDB中从点到点的距离。
但是,现在我需要计算从给定点到多边形的距离。
我正在使用以下代码:
Document commandNoIntersect = new Document("geoNear", "Location")
.append("near", new com.mongodb.client.model.geojson.Point(new Position(Longitude, Latitude)))
.append("spherical", true)
.append("query", new Document(new Document("location", locationId)))
.append("distanceMultiplier", 0.001);
database.runCommand(commandNoIntersect);
我的2dsphere索引是多边形的坐标。结果与点对点距离不一致。
感谢您的反馈,
答案 0 :(得分:0)
我使用mongo驱动程序解决了该问题:
mongoTemplate.geoNear( NearQuery.near(new Point(new Point(pin.getDinamycPoint()。getPointId()。getY(),pin.getDinamycPoint()。getPointId()。getX())))。spherical(true) .inKilometers()。query(new Query()。addCriteria(Criteria.where(“ locationId”)。is(locationId)))), Location.class);
这为我提供了从一个点到GeoJsonPolygon中最近的点的正确距离。
必须在集合的GeoJsonPolygon字段中创建2dsphere索引。