mysql空间数据相关操作

建表语句:

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)

时间: 2024-11-05 17:31:49

mysql空间数据相关操作的相关文章

MySQL密码相关操作

MySQL密码忘记了,操作步骤: 1.service mysqld stop 2.vim /etc/my.cnf  #编辑MySQL配置文件,找到[mysqld],在下面添加一行skip-grant-tables 3.mysql -u root -p直接进入MySQL控制台 4.update mysql.user set password=password('MySQL新密码') where User="root" and Host="localhost";    

MySQL库相关操作

========MySQL库相关操作====== 一.系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象 mysql: 授权库,主要存储系统用户的权限信息test: MySQL数据库系统自动创建的测试数据库 二.创建数据库 - 语法(help c

MFC 对MYSQL数据库相关操作

记得看过有人说,现在的软件基本上都是连着数据库的,如果一个软件没有跟数据库相连,基本没什么作用.虽然这种说法略显片面,但数据库之于软件的重要也是毋庸置疑的. MFC连接数据库应该不算是什么新鲜的命题了,方法是有好几种的,本人试了下,感觉利用MySQL提供的C语言API来进行操作蛮方便的,所以在此记录下相关的操作. 要用MySQL提供的C语言API,首先要包含API的头文件目录,也就是在MFC工程属性中的"包含目录"下添加MySQL安装目录的"include"文件夹.

MySQL 空间数据 简单操作

在做的项目中需要,自己绘制区域图形,并存储起来,后面还有更新的需要,存文件不方面,想到现在数据库都支持空间数据库. 现在用的就是 MySQL ,就继续用 MySQL 来存储.管理空间数据.下面就做一些简单的记录. 创建空间数据 CREATE TABLE `t_pot` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `pot` point DEFAULT NULL, PRIMARY KEY (`i

Mysql 死锁相关操作

该随笔随时记录日常工作中遇到的关于mysql的死锁相关问题 1)查看mysql当前的处理线程(connection) mysql> show processlist; 2)杀掉对应的connection mysql> kill connection_id;    例如 kill 3(杀掉链接3) 4)查看数据库中的锁状态 mysql自带的数据库INFORMATION_SCHEMA 记录了数据库相关的信息.包括锁信息等:我们见到的了解一下. mysql> use information_s

Python:MySQL数据库相关操作

系统环境 Ubuntu 16.04.2 LTS mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper Python 3.5.2 pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5) 查看Python相关模块版本 pip3 pip3 freeze 问题1:安装mysql-connector-python时出现"Unable

Mysql用户相关操作

MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户: CREATE USER username IDENTIFIED BY 'password'; 新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下: GRANT ALL PRIVILEGES ON *.

python中MySQL数据库相关操作

一 安装基本环境: 1 安装MySQL数据库, 本文使用的是mariadb数据库,与MySQL相似 1 挂载镜像文件(本次使用的是本地镜像文件) 2 启动MySQL数据库 3 创建用户名和密码并刷新 grant all(表示所有操作) on .(库.表(所有的,也可以指定)) to [email protected](设置用户名为root,链接为本地链接) identified by 'roiot123';(设置密码)flush privileges;(刷新权限) 4 修改默认字符集: serv

存入MySQL的相关操作与配置

#导入settings文件中的配置from scrapy.utils.project import get_project_settingsclass MyMySqlPipeline(object): def open_spider(self, spider): # 连接数据库,需要在settings.py 文件中配置 settings = get_project_settings() host = settings['DB_HOST'] port = settings['DB_PORT'] u