Mysql中空间扩展 - 查询你附近的餐厅或酒店
来源:互联网 发布:windows loader v2.5 编辑:程序博客网 时间:2024/04/27 20:30
公司最近做一个餐饮网站,需要根据访问者位置信息(经纬度坐标),搜索其附近餐厅
基本思路如下:
1、将餐厅位置(经纬度)存入数据库
2、获取访问者位置信息(经纬度坐标)
3、查询数据库得到距离访问者1000米范围内的餐厅
具体解决方案如下:
1、将餐厅位置(经纬度)存入数据库
Mysql支持一种空间数据类型 Geometry,其可以存储几何空间数据
Geometry是一种基本类。它是一种抽象类。Geometry的可实例化子类限制为可在2维坐标空间中存在的0、1、2维几何对象。所有的可实例化几何类是这样定义的,从而使得几何类的实例从拓扑意义上讲是闭合的(也就是说,所有定义的几何类包含其边界)。
基本Geometry类具有关于Point、Curve、Surface和GeometryCollection的子类:
· Point表示0维对象。
· Curve表示1维对象,具有子类LineString,以及次级子类Line和LinearRing。
· Surface是为2维对象设计的,具有子类Polygon。
· GeometryCollection具有特殊的0维、1维和2维类集合,名为MultiPoint、MultiLineString和MultiPolygon,分别用于为对应的Points、LineStrings和Polygons集合进行几何建模。MultiCurve和MultiSurface是作为抽象超类引入的,它们归纳了用于处理Curves和Surfaces的集合接口。
Geometry、Curve、Surface、MultiCurve和MultiSurface定义为非实例化类。它们为其子类定义了公用方法集合,而且是为扩展而包含在内的。
Point、LineString、Polygon、GeometryCollection、MultiPoint、MultiLineString和MultiPolygon定义为可实例化类。
存储的数据格式:
文本(WTK)格式
如:POINT(15 20)
二进制(WKB)格式
例如,与POINT(1 1)对应的WKB值由下述21字节序列构成(在此,每个字节由2个十六进制数值表示):
0101000000000000000000F03F000000000000F03F
首先我们创建一张shop表
mysql> CREATE TABLE `shop`( `shopid` int(11) NOT NULL AUTO_INCREMENT, `latlng` geometry DEFAULT NULL, PRIMARY KEY (`shopid`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
然后将餐厅的维度和经度信息存入数据库,存成POINT类数据
mysql> insert into shop(latlng) values(GeomFromText('POINT(31.2689 120.275)'));
参考地址:http://dev.mysql.com/doc/refman/5.1/zh/spatial-extensions-in-mysql.html
- Mysql中空间扩展 - 查询你附近的餐厅或酒店
- solr空间搜索实现附近酒店的搜索
- solr空间搜索实现附近酒店的搜索
- solr空间搜索实现附近酒店的搜索
- 数据库统计附近餐厅,或附近人
- 武汉江汉路附近的酒店,武汉江汉路附近的酒店
- mysql php 数据库查询附近的好友
- MySQL的空间扩展
- MYSQL的空间查询
- MYSQL的空间查询
- MYSQL的空间查询
- mysql的空间查询
- mysql利用st_distance函数查询附近的点的功能
- mysql 通过经纬度查询附近的地点位置
- 但但是股市大幅结婚的附近的酒店
- 东方东方酒店附近的防静电服减肥
- 经纬度 附近的点 在数据库中查询
- 东方酒店附近的公交到附近的防静电服
- Ibatis parameterClass与resultClass支持的Type
- LA 3942 - Remember the Word 字典树+DP
- VC++中Debug调试版本和Release发行版本的区别
- 检测API
- 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)
- Mysql中空间扩展 - 查询你附近的餐厅或酒店
- 网上SEO的注意方法
- 类函数指针和普通函数指针
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- Java程序
- uva 1386 - Cellular Automaton(循环矩阵乘)
- juniper防火墙端口映射
- 刚刚安装好,Afaria Administrator 管理界面出错
- Java关键字: