我已经找了大约一个小时了,似乎找不到解决这个问题的方法。
我的node.js应用程序中定义的多边形存储为:
[[-0.4449,51.4532],[-0.4586,51.4562],[-0.4591,51.4572],...
其中每一点的计算公式如下:
[lng,lat]
.
在MongoDB集合中,我有具有以下结构的对象:
_id: ...
givenID: ...
location: [lng, lat]
...
我代表
location
性质如下:
location: {
type: [Number]
},
在我的
mongoose
图式。
我可以查询所有记录
schema
绘制地图
位置
没错,我明白了
[lng, lat]
回到预期中,但我似乎不能执行
intersects
在我收集的任何文件上。
我的查询如下:
let geoJson ={
"type": "Polygon",
"coordinates": geozone
};
try {
const test = await GpsLog.where('location').intersects().geometry({
type: "Polygon",
coordinates: geozone
});
在哪里?
geozone
是上面列出的多边形。
我有一个
2dsphere
指数
位置
在每一份文件中也可供参考。
如果我通过
geospatial type
作为一个
LineString
我得到了0个记录,但作为一个
Polygon
给我
geojson coordinates must be an array
但据我所知,它们是一个数组(显然)。
有什么我错过的吗?我敢肯定这个虫子很小,我还没发现。