在做的项目中需要,自己绘制区域图形,并存储起来,后面还有更新的需要,存文件不方面,想到现在数据库都支持空间数据库。

现在用的就是 MySQL ,就继续用 MySQL 来存储、管理空间数据。下面就做一些简单的记录。

创建空间数据

CREATE TABLE `t_pot` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`pot` point DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

上面是建的一个包含点数据的表

CREATE TABLE `t_polygon` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`pgn` polygon DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

上面是建的一个包含面数据的表

MySQL 中的空间数据类型:point、linestring、polygon、geometry、multipoint、multilinestring、multipolygon、geometrycollection

空间数据操作

下面是对数据的一些查询、分析等操作语句

先插入一些示例数据

INSERT INTO `t_polygon` VALUES ('', 'ABCD', GeomFromText('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'));

INSERT INTO `t_polygon` VALUES ('', 'AEGF', GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))'));

INSERT INTO `t_polygon` VALUES ('', 'CEGFBD', GeomFromText('POLYGON((0 2, 0 4, 4 4, 4 0, 2 0, 2 2, 0 2))'));

INSERT INTO `t_polygon` VALUES ('', 'AHJIK', GeomFromText('POLYGON((0 0, 0 6, 6 6, 6 0, 0 0), (2 2, 4 4, 4 2, 2 2))'));

INSERT INTO `t_polygon` VALUES ('', 'DGK', GeomFromText('POLYGON((2 2, 4 4, 4 2, 2 2))'));

INSERT INTO `t_polygon` VALUES ('', 'GKJ', GeomFromText('POLYGON((4 4, 4 2, 6 6, 4 4))'));

INSERT INTO `t_polygon` VALUES ('', 'ADF', GeomFromText('POLYGON((0 0, 2 2, 4 0, 0 0))'));

INSERT INTO `t_polygon` VALUES ('', 'LDK', GeomFromText('POLYGON((1 1, 2 2, 4 2, 1 1))'));

INSERT INTO `t_pot` VALUES ('', 'A', GeomFromText('POINT(0 0)'));

INSERT INTO `t_pot` VALUES ('', 'B', GeomFromText('POINT(0 2)'));

INSERT INTO `t_pot` VALUES ('', 'C', GeomFromText('POINT(2 0)'));

INSERT INTO `t_pot` VALUES ('', 'D', GeomFromText('POINT(2 2)'));

--多面的更新

UPDATE street s SET s.spatial_data = GEOMETRYFROMTEXT('MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)),((0 0, 4 0, 4 4, 0 4, 0 0)))') WHERE s.id = 4;

--根据字段更新

UPDATE street s SET s.coord_point = GeomFromText(CONCAT('POINT(',s.longitude,' ',s.latitude,')')) WHERE s.id = 1

--根据空间数据查询

SELECT * FROM street s WHERE s.coord_point = GeomFromText('POINT(116.7551422 27.9147577)')

一些空间对象方法

-- 包含,MBRCONTAINS,第一个参数是包含的要素,第二个是被包含的要素,第一个包含第二个返回1,否则返回0

SELECT py.`name`,p.`name`,MBRCONTAINS(py.pgn,p.pot) FROM t_polygon py,t_pot p;

-- 被包含,MBRWITHIN,和上面一个参数相反,返回结果一样

SELECT py.`name`,p.`name`,MBRWITHIN(p.pot,py.pgn) FROM t_polygon py,t_pot p;

-- 不相交,MBRDISJOINT,参数没有先后分,不相交返回1,否则返回1

SELECT py.`name`,p.`name`,MBRDISJOINT(p.pot,py.pgn) FROM t_polygon py,t_pot p;

-- 相等,MBREQUAL,两个要素是否相等,相等返回1,否则返回0

SELECT py.`name`,p.`name`,MBREQUAL(p.pot,py.pgn) FROM t_polygon py,t_pot p;

-- 相交,MBREQUAL,两个要素是否相交,相交返回1,否则返回0

SELECT py.`name`,p.`name`,MBRINTERSECTS(p.pot,py.pgn) FROM t_polygon py,t_pot p;

-- 重叠,MBROVERLAPS,两个要素是否重叠,重叠返回1,否则返回0

SELECT py.`name`,p.`name`,MBROVERLAPS(p.pot,py.pgn) FROM t_polygon py,t_pot p;

-- 相切,MBREQUAL,两个要素是否相切,相切返回1,否则返回0

SELECT py.`name`,p.`name`,MBREQUAL(p.pot,py.pgn) FROM t_polygon py,t_pot p;

对于上面的几个方法,其空间关系是用的:最小边界矩形做的分析。

所以需要进行的时候比较准确的时候,用的应该是:对象形状做分析。

上面的几个函数的“MBR” 替换为 “ST_” 就可以了

Linux下MySQL的简单操作

Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...

MySQL基本简单操作03

MySQL基本简单操作 现在我创建了一个数据表,表的内容如下: mysql> select * from gubeiqing_table; +----------+-----+ | name | ...

MySQL基本简单操作02

MySQL基本简单操作 先进入Mysql容器. [root@promote ~]# docker exec -it mysql /bin/bash root@30d60b852cf5:/# mysql ...

MySQL基本简单操作01

MySQL基本简单操作 学会了安装Docker,那么就将它利用起来.(/滑稽脸) 之前想学习Mysql(Windows下配置真麻烦),学会了Docker就方便了,直接使用Docker创建一个Mysql ...

Ubuntu 安装mysql和简单操作

http://www.cnblogs.com/zhuyp1015/p/3561470.html ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get inst ...

python对mysql进行简单操作

python 连接MySQL数据库,进行简单操作 一.连接MySQL数据库,关闭连接 import pymysql db = pymysql.connect(host="xxx.xxx.x. ...

Ubuntu下安装MySQL及简单操作

Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...

MySQL数据库简单操作

title date tags layout MySQL简单操作 2018-07-16 Linux post 登录mysql mysql -h 主机名 -u 用户名 -p 查看所有数据库 show d ...

MySQL 基础 简单操作

一.数据库基础 什么是数据库 数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 表:是一种结构化的文件,可以用来存储数据(类似Excel表).数据库就是由成千上万个表组成. 什么事SQL ...

随机推荐

给swift程序猿留下深刻印象的10个Swift代码

通过使用单行代码完成同样的 10 个练习,我们来看看 Swift 和其他语言之间的较量. 将数组中每个元素的值乘以 2 使用map来实现 var arr = [1,2,3,4]; var newArr ...

框架Spring笔记系列 一 基础

主题:Spring 1.什么样的问题,使得Spring框架应用而生?使用Spring解决了那些问题? 2.

Knockout.Js案例三单页面应用程序

  • & ...

    话说C语言const用法

    const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰 的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量. 例: void ...

    android浪漫樱花凋零动态壁纸应用源码

    android浪漫樱花凋零动态壁纸应用源码,是从那个安卓教程网拿过来的,本项目是一套基于安卓的樱花动态壁纸项目源码,安装以后桌面没有图标,但是可以在修改壁纸-动态壁纸中找到.我的分辨率是480×854 ...

    C# 高精度减法 支持小数(待优化)

    是现实思路 1,先小数点补位,8913758923475893274958738945793845-4893127498372459823745324532453245.284929384729837 ...

    C# 如何添加Word文本和图片超链接

    超链接简单来讲就是内容链接,通过设置超链接可以实现对象与网页.站点之间的连接.链接目标可以是网页.图片.邮件地址.文件夹或者是应用程序.设置链接的对象可以是文本或者图片. 在以下内容中,我将介绍如何用 ...

    html学习中

    Html常用标签一

    Body 标签 Style 属性 background-color:red ...

    Swashbuckle.AspNetCore3.0的二次封装与使用

    关于 Swashbuckle.AspNetCore3.0 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...

    洛谷 P1112 波浪数

    题目描述 波浪数是在一对数字之间交替转换的数,如 121212112121211212121 ,双重波浪数则是指在两种进制下都是波浪数的数,如十进制数 191919191919191919 是一个十进 ...

mysql 空间数据操作,MySQL 空间数据 简单操作相关推荐

  1. ubuntu安装mysql可视化工具MySQL-workbench及简单操作

    一.使用命令行在ubuntu下安装mysql可视化工具MySQL-workbench Step1:安装MySQL-workbench 方案一:如果你已经装好mysql的相关服务,那么直接使用如下命令即 ...

  2. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  3. 已管理员身份从cmd框进入mysql,及常用的简单操作!

    在命令框中操作mysql已管理员的身份进入操作权限较高,已普通用户进入cmd框也可对mysql进行操作,不过一般建议用管理员身份进入. 1.启动MYSQL Notifier 2.已管理员身份进入cmd ...

  4. java操作derby_javaDB—— derby简单操作

    Derby并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版本是10.2.1.7,支持存储过程和触发器;有两种运行模式,一 ...

  5. MAC OS 路由简单操作 (MACOS路由简单操作)

    MAC OS 路由简单操作 目的: 有2个路由,自由切换,每次切换时,所有的网络都通过指定的路由出去. 192.168.1.1 192.168.1.2 查看现在用的Default设定 打开 '终端', ...

  6. 玩转MySQL之Linux下的简单操作(服务启动与关闭、启动与关闭、查看版本)

    小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下: 服务启动与关闭 启动与关闭 查看版本 环境 Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章 ...

  7. mysql 密码长度约束_MySQL简单操作【1、在cmd下MySQL的运行及简单增删改查】

    上篇文章介绍了在Windows10下安装MySQL,本篇文章介绍cmd下简单的操作. 1.登录 MySQL 当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQ ...

  8. 【MySQL】 # MySQL对用户权限的简单操作:(1)创建新用户(2)赋权限

    MySQL对用户权限操作的详细内容:MySQL权限操作 1. 创建新用户 一般使用 Navicat 直接登录 MySQL,也可以使用命令行 mysql -u root -p,然后输入密码即可. 1.1 ...

  9. Ubuntu 安装mysql和简单操作

    2019独角兽企业重金招聘Python工程师标准>>> ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-s ...

最新文章

  1. 机器学习中的三对性能度量参数
  2. MPEG简介 + 如何计算CBR 和VBR的MP3的播放时间
  3. 【BZOJ3262】 陌上花开
  4. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)...
  5. matlab 不同长度的向量放入一个矩阵,Matlab:将不同长度的行叠加到矩阵上
  6. Jackson序列化和反序列化
  7. java cas volatile_每日一个知识点:Volatile 和 CAS 的弊端之总线风暴
  8. Java与本机代理–他们所做的强大功能
  9. php中newself(),在php代码中新建对象用到的new self与new static有什么不同
  10. s:property=a value=/取的s:debug/s:debug中的value stack中的属性值
  11. js define函数_不夸张,这真的是前端圈宝藏书!360前端工程师Vue.js源码解析
  12. bzoj3007 解救小云公主
  13. 线索二叉树 - 数据结构和算法48
  14. 小D课堂 - 新版本微服务springcloud+Docker教程_6-04 自定义Zuul过滤器实现登录
  15. Oracle不常用函数
  16. 关于机械革命电脑关机后自动重启的解决方案
  17. caj文件打不开显示内存不足_CAJ文件打不开怎么办?
  18. c+primer 学习笔记 3
  19. 蓬莱小课:零基础应届生如何转行学数据分析师?
  20. 怎样申请微信公众平台接口测试帐号

热门文章

  1. Gateway网关限流
  2. 金仓数据库KingbaseES数据库开发指南(4. 面向应用程序的PL/SQL开发)
  3. 一个序列的子序列个数
  4. 2018ACM杰出科学家名单公布,12 位华人学者上榜
  5. FZU 2214 Knapsack problem
  6. 理论力学中的 动量定理、动量矩定理、动能定理
  7. 2.6 修饰符的位置
  8. UTC LocalDateTime 根据时区转换
  9. HTML:相对定位和绝对定位
  10. 自动化测试实战笔记--网易云实现QQ登录