mysql空间数据相关操作
2016-02-24 12:21
387 查看
建表语句:
添加记录如下:
查询操作如下:
查询所有记录离指定点的距离
注:指定点信息(10,20),ps:10为X(经度),20为Y(纬度)
查询附近100公里数据:
目标点坐标为(10,20)
CREATE TABLE ts.points ( name VARCHAR (20) NOT NULL, location POINT NOT NULL, description VARCHAR (200) );
添加记录如下:
INSERT INTO Points (name, location) VALUES ( 'p1' , GeomFromText( ' POINT(10 20) ' ) ) INSERT INTO Points (name, location) VALUES ( 'p2' , GeomFromText( ' POINT(11 30) ' ) ) INSERT INTO Points (name, location) VALUES ( 'p3' , GeomFromText( ' POINT(10 21) ' ) )
查询操作如下:
SELECT NAME, ASTEXT(LOCATION),X(LOCATION),Y(LOCATION) FROM POINTS
查询所有记录离指定点的距离
SELECT *,ROUND(6378.138*2*ASIN(SQRT(POW(SIN( (X(LOCATION)*PI()/180-10*PI()/180)/2),2)+COS(X(LOCATION)*PI()/180)*COS(10*PI()/180)* POW(SIN( (Y(LOCATION)*PI()/180-20*PI()/180)/2),2)))*1000) AS DISTANCE FROM POINTS ORDER BY DISTANCE ASC
注:指定点信息(10,20),ps:10为X(经度),20为Y(纬度)
查询附近100公里数据:
SELECT name ,X(LOCATION),Y(LOCATION) FROM points WHERE MBRContains ( LineString ( Point ( 10 + 100 / ( 111.1 / COS(RADIANS(104.067221))), 20 + 100 / 111.1 ), Point ( 10 - 100 / ( 111.1 / COS(RADIANS(104.067221))), 20 - 100 / 111.1 ) ), location )
目标点坐标为(10,20)
相关文章推荐
- mysql 一些实用的mysql语句
- MySQL 存储过程 游标例子
- mysql系列之一数据表基本操作
- MySQL之——数据表分区技术PARTITION浅析
- Mysql命令大全
- mysql转义字符
- mysql存储过程语法大全
- 在sqlserver下增加MYSQL的链接服务…
- Mysql中文乱码解决方案(转)
- Mysql字段添加和修改
- mysql5.6新特性总结
- MySQL数据库事务隔离级别(Transaction Isolation Level)(顶)
- MySQL zabbix 流量统计分析脚本(内部业务需求)
- 如何修改mysql 并发数
- mySql ERROR 1046(3D000): No Datab
- MySQL 清除表空间碎片
- MySQL大量数据插入各种方法性能分析与比较
- mysqldump导入导出数据库基本方法
- Mysql 导入数据库方法 及失败解决
- MySQL新建用户,授权,删除用户,修改密码