关于mongo的GEO相关笔记

标签: DataBase | 发表时间:2013-03-25 09:18 | 作者:gouki
分享到:
出处:http://www.neatstudio.com/

很乱。我自己明白即可,三种查询条件。

{loc:{"$near":[121.417397,31.204075]} }
{loc : {"$within" : {"$center" : [ [121.417397,31.204075], 5]}} }
db.places.find({loc:{ $near:[ 30.28009,120.12857],$maxDistance:5}}).limit(20)

上述的内容参考与某个网站,它的基本内容如下:

最近一直在做基于LBS的项目,地标的坐标索引和基于坐标查询,一直没找到一种简单方便的方法,在做mongo索引优化的时发现竟然有Geo的索引
创建字段
建议使用方式:{ loc : [ longitude , latitude] }
也可以:{ loc : { lon :longitude, lat:latitude } }
Loc自己决定,我用poi的
建立索引
注意:每个Collection只能建立一个geospatial索引
db.places.ensureIndex( { loc : “2d” } , { min : -500 , max : 500 } )
如果db.places.ensureIndex( { loc : “2d” }),
默认值的范围是:-180到180,也就是经纬度的范围
查询
注:1.默认会按距离排序;
    2.转换 111.12 距离(一度是大约 111.12 公里)使用公里,或由 69 (对于英里)
默认取100条距离最近的点,注:默认是limit(100)
db.collection.find({loc:{$near :[ 30.28009,120.12857]}})
取正方形范围的坐标点,注意:5是坐标系的5,也就是经纬度的5,按111.12换算成公里
db.places.find({loc:{ $near:[ 30.28009,120.12857],$maxDistance:5}}).limit(20)
取指定半径的点,注意:半径5是坐标系的5,也就是经纬度的5,按111.12换算成公里
以5为半径的圆:{“Coordinate” : {“$within” : {“$center” : [ [30.28009,120.12857], 5]}} }
---------

纯笔记,别多想,测试了一下。比现在使用的好多了,我现在是:
        $criteria->order = new \CDbExpression("ACOS(SIN(({$lat} * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS(({$lat} * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS(({$lng} * 3.1415) / 180 - (lng * 3.1415) / 180 ) ) * 6380  asc,last_activity_time DESC");

不要多想,我是用的Yii的玩意,也是一个笔记。

相关 [mongo geo 相关] 推荐:

关于mongo的GEO相关笔记

- - 膘叔
上述的内容参考与某个网站,它的基本内容如下:. 最近一直在做基于LBS的项目,地标的坐标索引和基于坐标查询,一直没找到一种简单方便的方法,在做mongo索引优化的时发现竟然有Geo的索引. 建议使用方式:{ loc : [ longitude , latitude] }. 也可以:{ loc : { lon :longitude, lat:latitude } }.

mongo 学习

- - CSDN博客系统运维推荐文章
mongod 启动参数详解:. master 启动: ./mongod --dbpath /data/db/master --logpath /data/db/master.log --logappend  --fork --port 2717 --master --oplogSize 64 . slave 启动: ./mongod  --dbpath /data/db/slave  --logpath  /data/db/slaver.log --logappend  --fork  -port 27018  --slave --slavedelay 5 --autoresync --source localhost:27017  .

mongo简介——查询

- - ITeye博客
查询符合条件的第一个文档(对于mongo来说不能叫记录了 ). 查询符合条件的文档,并按照指定条件排序,跳过前面N1个文档,返回最多数量为N2的文档列表. sort skip limit三个函数可选. 上面三行代码就是mongo的世界里查询语句的全部. findOne find count sort的参数都包含在花括号里.

SQL 和Mongo 对比图表

- - 行业应用 - ITeye博客
SQL 和Mongo 对比图表. "find") is done in one's regular programming language; thus the exact forms of these verbs vary by language.  The examples below are Javascript and can be executed from the .

Geo-fence:苹果借“位置服务”狩猎新机会

- - 爱范儿 · Beats of Bits
苹果推出自家地图应用,是今年 WWDC 上更新的 iOS6 系统的亮点. 相较于功能性的改进,苹果带来的不只是谷歌地图的替代品,更是苹果自身对地图,对地理位置服务的新认知. 这其中,扮演重要角色,是 Geo-fence(地理围栏)技术——当用户进入指定(或事先设定好)区域时,会触发特定功能,从而完成智能设备预设的自动化应用.

REDIS GEO: REDIS新增位置查询功能

- - 编程语言 - ITeye博客
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/144.html. 移动互联网增进了人与人之间的联系,其中基于位置信息的服务(Location Based Service,LBS)起到很重要的促进作用. 在移动互联网的大环境下,每个手机都变成了一个位置追踪设备,为人们提供了非常丰富的位置服务.

大数据服务提供商GEO发布双十二电商大战战果

- - DamnDigital
随着双十二大战落下帷幕,2013年的电商大战也迎来了最终盘点. 大数据广告服务提供商GEO综合了淘宝、京东、易迅、苏宁等在双十二的当天数据,发布了今年的电商大战的结果. 淘宝、京东、易迅不约而同地以发放现金红包、推出客户端专享优惠等方式,激励消费者下载并使用客户端,发力移动端购物,那么双十二当天,谁在移动端的表现最佳.

CMDB相关

- Fenng - 瞄的技术
最近一直在进行CMDB相关的工作,整理一下. 我们公司使用Puppet做配置管理工具,大部分的配置信息变更和管理,包括Iptables的配置都由Puppet最终落实. 所有硬件服务器的资产管理通过CMDB来维护,我们的CMDB除了了解服务器的硬件信息和数量的资产管理功能外,还集成了应用部署功能,CMDB与Puppet配合,尽量实现自动化和保持数据源单一,避免CMDB数据与服务器本身数据脱离的情况.

kindle 相关

- - A Geek's Page
上周末在淘宝上拍了一个 Kindle DXG,今天终于拿到手了. 买之前做了大量的功课,经过了N次纠结之后最终敲定买 DXG. 一是因为,我个人认为看书嘛,屏幕好一点儿很重要,DX 系列是大屏幕;二是,我感觉 WIFI 可有可无,我又没打算拿它当 fire 用,而且自带的 3G 是免费的. 所以最后选择了 Kindle DXG.

pagerank 与 相关度

- - 张沈鹏
我总是能搜索到我以前整理的文章. 我一直很困惑 pagerank 和 相关度怎么做整合. 晚上开始蒸腾搜索 研究了一下 摘录一点. 虽然每个搜索引擎都严格保密各自的明确的搜索算法,但是搜索引擎分析人士相信搜索引擎结果(排名列表)是“Page Relevance”与“PageRank”. 如果在Google上进行广泛搜索,看起来好象有几千个结果,但实际显示最多前1,000项结果.