问题标签 [2dsphere]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
547 浏览

node.js - MongoDB地理空间查询不返回任何内容

我有一个带有2dsphere索引的集合,并希望使用$geoWithinand$centerSphere函数来查询它。

模型摘录:

我成功地将一堆文档插入到数据库中,现在尝试通过以下方式查询它:

我面临的问题是,该调用不返回任何内容,既不返回错误,也不返回数据。mongo shell我在我的应用程序以及我的应用程序中尝试了它,node.js我可以确认对象的经度和纬度已插入数据库。我也尝试$near与 a$maxDistance一起使用,结果相同。我还切换了纬度和经度只是为了检查……我确实r通过除以地球半径来转换为弧度。

我对此时出了什么问题一无所知,并感谢您提出任何建议!

0 投票
0 回答
1329 浏览

mongodb - 无法在 mongoDB 中创建 2dsphere 索引

当我尝试在 mongoDB 中创建 2dsphere 索引时,我收到此错误消息:

收集数据如下所示:

我必须创建 2dsphere 索引才能在多边形区域中搜索坐标。我怎样才能解决这个问题?谢谢

0 投票
1 回答
752 浏览

mongodb - mongodb geoWithin 查询非常慢

我正在使用大约 500 平方公里的多边形运行 geoWithin 查询,执行时间很长,大约在 30 秒到 5 分钟之间。集合只有 180k 行,多边形可以从 2km² 到 10,000km² 不等。服务器有大约 4GB 的 RAM。在本地运行(以消除网络延迟)没有明显效果。

我在集合上设置了一个 2dsphere 索引,并将字段数限制为仅返回 _id(目前)。

这是我的文件的样子:

这是我的索引:

这是我的查询:

这是运行的输出explain()

这表明正在使用索引。如果我尝试使用较小的区域,则查询确实会变得更快,而使用更大的区域则更慢。

这是我的收藏统计:

我运行了db.setProfilingLevel(2)命令,重新运行了查询,然后检查了db.system.profile集合。

第一条记录是实际查询 ( "op": "query")

然后还有 7 个带有 ( "op": "getmore") 的查询,我假设它们正在获取其余数据。

每个查询产生 1000 行 ( "nreturned": 1000),每个查询平均有 4000行millis

我读过很多问题,人们抱怨 geojson 查询占用 > 2s 和 > 1m 行,所以我显然遗漏了一些简单的东西。

0 投票
1 回答
1027 浏览

node.js - Mongoose - 如何在自定义类型上添加 2dsphere 索引?

我正在使用 Mongoose 和Mongoose-geojson-schema但是我无法2dsphere在我的字段上添加索引:

得到这样的错误:

0 投票
0 回答
103 浏览

mongodb - 平均堆栈 2dsphere 半径搜索

我是新来的意思是堆栈(和一般的编程),但有一个简单的应用程序启动并运行。

我的模型如下所示:

我为我的数据库播种:

我的控制器通过以下方式提取用户位置并列出餐馆:

我的视图通过以下方式显示用户位置,获取最大输入并列出餐厅:

我使用了 yeoman angular-fullstack 生成器。在我的 html 视图中,我提取了用户的当前位置“lat”和“lng”,然后想搜索距用户最大距离内的餐馆数据库。

我如何在这个脚手架中做到这一点?我试图让这些示例/教程起作用,但无济于事:(

0 投票
1 回答
2168 浏览

mongodb - Mongoose Mongo 2dsphere geoWithin

在阅读了许多与我非常接近的问题并阅读了 MongoDB 文档和 Mongoose 文档之后,我仍然无法回答我的问题。

在节点 4.4.0 上使用 express 4.13.4、mongoose 4.4.10、mongodb 2.1.14

我的猫鼬位置架构:

我的CatalogModel架构(我写给 Mongo 的内容):

我创建了一个具体的示例并写入 MongoDB(这很好......因为我可以在 Mongo 中查询它)

在 Mongo 中,我向集合询问了索引:

这就是它所说的(不完全确定这意味着什么)

我可以做一个db.catalogmodels.find()并取回我的文件。

我什至可以在 Mongo 中调用 $geoWithin:

但这是实际的问题

Mongoose 一直告诉我[错误:无法使用 $geoWithin]

我还将 .find().where().within() 调用替换为:

Mongoose 不喜欢 $geoWithin 调用是否有原因?最新的 API 说这应该可以。

0 投票
1 回答
963 浏览

mongodb - mongodb 2dsphere 索引的内部原理是什么?

Mongodb 站点显示 2d 索引的内部结构是GeoHash.

我想知道 2dsphere 索引的内部结构。

是它GeoHashCartesian Tiers还是其他技术?

刚找了mongodb网站new-geo-features的博客介绍2dsphere索引。

但没有细节。

0 投票
2 回答
6349 浏览

mongodb - MongoDB 错误代码 16755 - 无法提取地理键和重复顶点

当我尝试在 geometry 上创建索引时db.polygons.createIndex({"geometry":"2dsphere"}),它停在某个多边形上,错误代码为 16755。它说它Can't extract geo keysDuplicate vertices: 18 and 20

因此,经过进一步检查,当多边形中的 2 个节点靠近甚至重复时,似乎会发生这种情况。

然后我在 QGIS 中手动删除此节点并重试该过程,却发现另一个多边形存在相同问题。

我怎样才能解决这个问题而不必重复修复多边形>上传到MongoDB>创建索引的整个过程?有没有办法找出有多少多边形有这个问题?

0 投票
1 回答
203 浏览

node.js - 从同一 Mongodb 集合中的坐标数组创建 GeoJson

我想将我的 mongodb 集合从 2d 修改为 2dsphere。 我的 db.users 中有这个结构:

我想要这样的东西:

我试过这个:

显然,它在字面上插入“'interests.$.coordinates'

并在节点中尝试了这个:

但是坐标被插入了混合值。

想法?

谢谢!!

0 投票
1 回答
41 浏览

excel - 从 Excel 文档导入数据后,在数据上创建地理空间索引时出错

我已经从 excel 文档中导入了这些数据。

这是我的示例文档。我无法在 loc 上创建地理空间索引。如何创作?