Tag: 地理空间

如何在数组子字段中使用$ geoIntersects / 2dsphere执行查找?

我有一个文件集合,每个都有一个多边形字段数组。 我想testing一下,如果我的多边形地理交互任何这些多边形。 如果有帮助,它们都是盒子形状的。 如果添加了我正在testing的数组中的多边形的可能性,我将添加赏金点。 我不希望它与自身相交… 城市: {_id, buildings:[ {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] }, {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] } ] }} 想象一下,我有大约100左右的arrays元素。 我想确定一个给定的形状是否可以包含在数组中,是否与任何其他多边形相交(再次排除它本身)。

Leaflet和MongoDB半径

我想为我的search表单使用传单标记(对于latLng)和滑块(对于半径)。 mongodb部分将会像 location: { $geoWithin: { $centerSphere: [[lon, lat], radius] } } 但是半径似乎永远不是正确的。 我必须划分/乘以多less数字才能正确使用?

MongoDB地理空间查询返回null数组

我正在testing针对我的开发和生产环境的地理空间查询。 生产服务器是数字海洋VPS服务器。 查询在开发机器中工作正常,但是在生产中它返回一个空数组。 但是,当我直接从生产服务器的MONGO shell执行查询时,它确实返回结果。 以下是查询function exports.nearby=function(req,res){ var lat= +req.params.lat, long= +req.params.long, distance = +req.params.radius, cat = req.query.cat || 'auditorium'; Item.find({ "loc": { $near: { $geometry: { type: "Point", coordinates: [long,lat] }, $maxDistance: distance } }, category: cat }, function(err,data){ err ? res.json(err) : res.json(data); }); } 开发环境 本地机器:Ubuntu 14.04,节点:v0.10.29,MongoDB:2.6.4 制作:ubuntu 14.04,节点:v0.10.30,MongoDB:2.6.5 任何帮助非常感谢…谢谢

如何在MongoDB地理空间中select查询中的字段?

我正在使用MongoDB Geospatial和node.js,并且表示查询特定点附近的最近街道。 在我的结果中,我只想select“名称”和“地址”的字段。 我试过下面的代码,但它不工作,我得到这个错误: “未处理的拒绝错误:无法使用$select与数组”。 谢谢。 Street.find({ 'location': { $near: { $geometry: { type: 'Point', coordinates: coords }, $maxDistance: 1000 }, $select: { _id: 0, name: 1, address: 1 } } })

用近$ mongodb $ text

好的,我的目标是对我的collections进行文本search,然后过滤这些结果以确保它们属于我的“甜甜圈”几何graphics。 来自mongo网站的例子: 这是艰难的部分。 Mongo的文档证实,今天你不能把$ text和$ near的精妙结合起来: 您不能将需要特殊地理空间索引的$ near操作符与使用不同types的特殊索引的查询操作符或命令组合在一起。 例如,您不能将$ near与$ text查询结合使用。 Sooo ..这是我今天要做的。 注意我目前的方法没有达到“甜甜圈”几何(它只是一个直径增长的圆圈,当用户在地图上“缩小”时会返回重复的结果)。 var vendorResponse = JSON.parse(body); var vendorPosts = vendorResponse.postings; //Get the location of the user var userLat = req.query.lat; var userLong = req.query.long; //Get the item that furthest away from the user var furthestitem = sortedVendorPosts[sortedVendorPosts.length – 1]; //Calculate the radius of […]

使用MapReduce来处理Cloudant中的地理空间索引结果

我在Cloudant中使用地理空间索引来检索多边形内的所有文档。 现在我想为这些文件计算一些基本的静态值(例如,一个地区的平均年龄和收入总和)。 是否有可能查询地理索引,然后将结果传递给MapReduce函数? 我怎么能实现这一点,最好在数据库内? 我可以避免查询多边形中的文档ID,然后发送执行MapReduce(我正在处理大型数据集)的检索ID? 到目前为止工作的是查询索引以及使用视图(单独)。 我的地理索引 function (doc) { if (doc.geometry && doc.geometry.coordinates) { st_index(doc.geometry); } } 我的看法 function (doc) { var beitrag = doc.properties.beitrag; var schadenaufwand = doc.schadenaufwand; if(beitrag !== null && typeof beitrag === 'number' ) { emit(doc._id, doc.properties.beitrag); } } 示例geoJson文档(原始数据看起来相似) { "_id": "01bff77f642fc4249e787d2ded011504", "_rev": "1-25a9a1a15939d5b21af3fbcc5c2d6ed1", "type": "Feature", "geometry": { "type": […]

MongoDB地理空间索引,如何与数组元素一起使用?

我想让凯文酒吧点附近的特定位置。 这里是userSpots集合: { user:'Kevin', spots:[ { name:'a', type:'pub', location:[x,y] }, { name:'b', type:'gym', location:[v,w] } ] }, { user:'Layla', spots:[ … ] } 这是我试过的: db.userSpots.findOne( { user: 'Kevin', spots: { $elemMatch: { location:{ $nearSphere: [lng,lat], $maxDistance: d}, type: 'pub' } } }, }, function(err){…} ) 我收到一个奇怪的错误。 Mongo告诉我没有索引:2d在位置字段。 但是,当我检查与db.userSpots.getIndexes(),2d索引在那里。 为什么不mongodb看到索引? 有什么我做错了吗? MongoError: can't find special index: […]

节点,js – Mongoose – 无法保存地理多边形 – CastError:强制转换为编号失败

我正在尝试将地理点和地理多边形保存到Mongo。 我的testing通过点,但失败的多边形: CastError:在path“坐标”处投射数值失败,值为“0,0,3,0,3,3,0,3,0,0” 我的模式如下: var GeoSchema = new Schema({ name: String , coordinates: [Number] }); GeoSchema.index({ coordinates: '2dsphere' }); 我成功保存的testing点对象: geoPoint = new Geo({ coordinates: [2,2], type: 'Point' }); 我的testing多边形对象不能保存: geoPolygon = new Geo({ type: 'Polygon', coordinates: [[ [0,0], [3,0], [3,3], [0,3], [0,0] ]] }); 我曾尝试更改为“坐标”的typesdef到一个对象和一个数组,但然后都无法保存。 任何人都可以build议吗? *更新* 我现在可以使用以下方法传递testing: 模式: var GeoSchema = new Schema({ […]

AWS – 在DynamoDB表中放置一个GeoPoing并对其进行查询 – node.js

Amazon现在支持 DynamoDB中的地理空间索引 ,但似乎没有太多关于如何使用node.js SDK来做到这一点的文档。 我试图了解如何: 将GeoPoint(geohash)值放入DynamoDB表中的项目中 和 如何查询半径范围内所有项目的表格(lat,lng) 我看过这篇文章,但不知道它是如何应用在node.js中,找不到任何示例

用于地理空间操作的Node.js库

我正在开发一个应用程序,我有像这样的地理空间多边形: var polygon = [{"lat": -19.939323, "lng": -43.928983}, {"lat": -19.939747, "lng": -43.933103}, {"lat": -19.947291, "lng": -43.93497}, {"lat": -19.948138, "lng": -43.931451}, {"lat": -19.943882, "lng": -43.930292}] 我会收到一个坐标来说明是否在多边形内。 我在Google Maps JavaScript API的几何库中发现了一个完全相同的function: containsLocation(point:LatLng,polygon:Polygon) 但是,这必须是服务器端,使用node.js,有没有办法使用node.js这个function,或者更好的是,有一个很好的图书馆是谁呢?