您当前的位置: 首页 >  sql

FPGA硅农

暂无认证

  • 3浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

mysql操作空间数据库

FPGA硅农 发布时间:2020-07-10 14:05:37 ,浏览量:3

最近因项目需要学习了mysql中对geometry的扩展,记录如下。

Geometry数据类型

在mysql中,支持Geometry数据类型。Geometry是所有此扩展中类的基类,其他类型如Point,LineString,Polygon都是Geometry的子类。

1.所谓POINT,就是一个几何上的点,通常由经纬度作为坐标。 2.所谓LineString,就是一串点列,若不闭合,则它是simple的,若闭合,则是closed的。 3.Polygon,一个多边形,可以有内部空洞。 4.MultiPoint, MultiLineString, MultiPolygon, GeometryCollection。这4种类型都是集合类,是多个Point、LineString或Polygon组合在一起而成。 几何对象在MySql中的存储格式

在MySQL中有3种表达几何对象的格式:

1.WKT(文本格式) 2.WKB(二进制格式) 3.MySQL内部存储格式

其中,WKT形式简单易读,作如下介绍。

POINT

POINT(121.213342 31.234532). 经度(longitude)在前,纬度(latitude)在后,用空格分隔。

LINESTRING

LINESTRING(121.342423 31.542423,121.345664 31.246790,121.453178 31.456862) 点与点之间用逗号分隔;一个点中的经纬度用空格分隔,与POINT格式一致。

POLYGON

POLYGON((121.342423 31.542423,121.345664 31.246790,121.453178 31.456862),(121.563633 31.566652,121.233565 31.234565,121.568756 31.454367)) 由一个表示外部边界的LineString和0个或多个表示内部边界的LineString组成,最简单的就是只有一个外边界的情况:POLYGON((0 0,10 0,10 10, 0 10,0 0)) 注:第一个点应该与最后一个点的坐标相同,上面稍有错误。

集合类格式

MULTIPOINT(0 0, 20 20, 60 60)

MULTILINESTRING((10 10, 20 20), (15 15, 30 15))

MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))

GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))

常用函数

ST_POINTFROMTEXT、ST_ASTEXT等等,详细见链接

实践

1.输入create database geo_db; 2.输入use geo_db; 3.输入create table g(id int(11) not null,name varchar(64) not null,shape geometry); 在这里插入图片描述 4.插入数据,输入insert into g(id,name shape) values(1,“beijing”,ST_POINTFROMTEXT(“POINT(120 30)”)); 5.select * from g; 在这里插入图片描述 6.输入select id,name,ST_ASTEXT(shape) from g; 在这里插入图片描述 7.输入INSERT INTO g VALUES (1,‘aaaa’,POINT(116.397389,39.908149)); 注意:这里POINT坐标间有逗号。 在这里插入图片描述 8.ST_GeometryFromText,ST_GeomFromText使用,输入 insert into g(id,name,shape) values(3,“zhejiang”,ST_GeometryFromText(“POINT(1 2)”); 以及insert into g(id,name,shape) values(4,“anhui”,ST_GeomFromText(“LINESTRING (1 1, 2 2)”)); 在这里插入图片描述 9.输入insert into g(id,name,shape) values(5,“jiaxing”,ST_GeometryFromText(“POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))”)); 在这里插入图片描述

关注
打赏
1658642721
查看更多评论
立即登录/注册

微信扫码登录

0.0404s