Articles of 地理空间

将variables传递到node.js mongoose查找查询

我希望你们能帮忙 我对node.js / mongodb相当陌生,而且在将variables传递给mongoose模型查询时遇到了问题。 如果我运行这个,作为string手动传递经度/纬度(-0.18,51.24),那么它完美的工作,并从数据库中返回大量的对象。 Venue.find( { location : { $nearSphere : [-0.18, 51.24], $maxDistance : 25/3959 } }, null, {limit: 50}, function(err, results){ results.forEach(function(result){ console.log('Found a record'); }); }); 但是,如果我尝试并将这些坐标作为variables传入此函数运行它不会返回任何结果: function generateWorld(get) { console.log('Generating for x:' + get.longitude + ' y:' + get.latitude); // Console logs correct coords Venue.find( { location : { $nearSphere […]

最好的方式查询附近经纬度的数据库?

我有一个集或lat / longs存储在一个数据库。 我想查询数据库,并返回在另一个经纬度范围内的文件。 我知道如何确定两组之间的距离,但是我不想为db中的每个条目都做这个。 达到这个目标的最好方法是什么? 非常感谢。

与geonear的mongoose聚合

我试图用Mongoose geoNear命令实现分页。 它似乎跳过不支持与geoNear,我明白聚合将工作(与分页与性能成本)。 我怎样才能转换为聚合查询跳过一些文件? exports.near = function(req, res) { if(req.query.lat && req.query.lng) { var point = { type: "Point", coordinates : [Number(req.query.lng), Number(req.query.lat)] }; var queryParams = { spherical: true, skip: 0, limit: 10, distanceMultiplier: 6371 // radians to kilometers. (The radius of the Earth is approximately 3,959 miles or 6,371 kilometers.) }; if(req.query.q) { […]

地理空间应用:mySql vs CouchDB vs其他

我正在谷歌地图上开发一个应用程序,并检出各种选项来存储和检索边界框中的空间信息。 最初我以为MySql不是一个好的select,但在检查http://dev.mysql.com/doc/refman/5.6/en/spatial-analysis-functions.html和http://code.google.com/apis /maps/articles/phpsqlsearch.html ,看起来像我可以使用MySql,它支持我的用例。 我也用geocouch来评估node.js和couchdb。对于像socket.io这样的模块,geo等看起来也是一个不错的select。 请查阅“GEO,CouchDB和Node.js入门”一书。 我的应用程序将是1页的应用程序,我不会预见,如果我将来需要任何时候rdbms。 我也看到了这个 – http://nodeguide.com/convincing_the_boss.html ,这让我有点担心是否去node.js-geocouch …. 如果您的下一个应用程序的体系结构像NoSQL成分的食谱一样,请暂停一下并阅读此内容。 是的,Redis,CouchDB,MongoDB,Riak,Casandra等都看起来很诱人,但是红苹果Eve也忍不住。 如果您已经在使用node.js来承担技术风险,那么您不应该使用更多可能还不完全了解的技术。 当然,select一个面向文档的数据库有合法的用例。 但是如果你试图在你的软件之上build立一个业务,坚持保守的数据库技术(比如postgres或者mysql)可能会超过满足你内心的书呆子和给你的朋友留下印象的好处。 你有什么意见 ?

如何在数组子字段中使用$ 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": […]