文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.环境部署

Geoserver中并不自带mysql数据发布功能,需要下载对应插件。

将其放入geoserver的lib中,发布,查看添加数据源会出现mysql数据源:

2.Mysql数据发布

2.1配置数据源

2.2发布图层

2.2.1原始表发布

需要有geometry类型的字段。

点击发布即可:

2.2.2视图发布

有些情况下,我们可能没有the_geom字段,或者表中的数据并不是我们需要全部发布,此时mysql数据源支持视图发布。

点击创建视图:

SQL后可增加过滤条件,如下所示:

select t.*,POINTFROMTEXT(CONCAT('POINT(',revised_coord_x,' ',revised_coord_y,')')) as  the_geom from  tc_test t where flag=1

3.功能测试汇总

a.点、线、面类型的geometry均可以支持。

b.WFS中数据编辑和空间查询均可以,精度无误。

c.WMS出图可以支持。

4.mysql中Geometry类型总结

4.1 WKT介绍

Geometry中几何要素的描述与PG一样,均为WKT(Well-known text)标记语言。WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。以下为字串样例:

POINT(6 10) 
LINESTRING(3 4,10
50,20 25) 
POLYGON((1 1,5 1,5
5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)) 
MULTIPOINT(3.5 5.6,
4.8 10.5) 
MULTILINESTRING((3
4,10 50,20 25),(-5 -8,-10 -8,-15 -4)) 
MULTIPOLYGON(((1
1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3))) 
GEOMETRYCOLLECTION(POINT(4
6),LINESTRING(4 6,7 10)) 
POINT ZM (1 1 5 60) 
POINT M (1 1 80) 
POINT EMPTY 
MULTIPOLYGON EMPTY

但是mysql中geometry类型的最终存储却需要是WKB(well-known-binary),二进制格式占用空间更小。

总结,MySQL遵守OGC的OpenGIS Geometry Model,支持以下空间数据对象
Geometry (non-instantiable) 
         Point (instantiable)

Curve
(non-instantiable)

LineString (instantiable)

Line

LinearRing

Surface
(non-instantiable)

Polygon (instantiable)

GeometryCollection
(instantiable)

MultiPoint
(instantiable)

MultiCurve
(non-instantiable)

MultiLineString
(instantiable)

MultiSurface
(non-instantiable)

MultiPolygon
(instantiable)

4.2空间函数

目前mysql5中还有部分空间关系函数未实现,具体罗列为:

CONTAINS、CROSSES、DISJOINT、DISTANCE、EQUALS、INTERSECTS、OVERLAPS、RELATED、TOUCHES、WITHIN以及空间分析操作函数,包括作缓冲区、联合、切割等操作。

但是大部分函数均以实现,包含格式类函数WKT与WKB互转,空间拓扑类、空间计算类。总结如下:

4.2.1转换WTK函数

的GEOMFROMTEXT和ASTEXT函数。

4.2.2几何类的函数

DIMENSION,返回对象的尺寸,-1为空,0为点(没有长度没有面积),1为线(有长度而没有面积),2为多边形(有面积)
ENVELOPE,返回最小边界矩形
GEOMERYTYPE,返回几何类型(字符串)
SRID,所谓SRID是空间基准坐标指示符,表示一个几何类型的坐标系统

4.2.3点对象的函数

X,Y两个函数用于返回点的X坐标和Y坐标

4.2.4线对象的函数

GLENGTH,返回线长
ISCLOSED,是否为封闭线段
NUMPOINTS,线段包含点的数目
STARTPOINT,ENDPOINT,POINTN,分别返回起点,终点和指定位置的点

4.2.5多边形对象的函数

AREA,返回多边形面积
EXTERIORRING,返回线型的外环
INTERIORRINGN,返回指定的内环(对于包含空洞的多边形)
NUMINTERIORRINGS,返回空洞数目

4.2.6几何集合对象的函数

GEOMETRYN,返回指定位置的几何类型
NUMGEOMETRIES,返回对象数目

4.2.7最小边界矩形空间关系函数

MySQL提供了一组函数来判断几个对象和最小边界矩形的位置关系
MBRCONTAINS
MBRDISJOINT
MBREQUAL
MBRINTERSECTS
MBROVERLAPS
MBRTOUCHES
MBRWITHIN

4.3其他函数参考

具体请查看:

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

      

                     -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                      

geoserver发布mysql表数据的更多相关文章

  1. 利用Flume将MySQL表数据准实时抽取到HDFS

    转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...

  2. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  3. MySQL 表数据多久刷一次盘?

    前言 事情是这样的,在某乎的邀请回答中看到了这个问题: - 然后当时我没多想就啪一下写下来这样的答案: 这个其实要通过 MySQL 后台线程来刷的,在 Buffer Pool 中被修改的过的 Page ...

  4. ElasticSearch+ElasticGeo+Geoserver发布ES地理数据

    依赖GeoserverElasticSearchElasticGeo部署部署ElasticGeo使用创建ES数据源并发布发布 依赖 Geoserver 环境搭建参考: ElasticSearch 环境 ...

  5. Python将MySQL表数据写入excel

    背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...

  6. linux下用命令导出mysql表数据

    由于数据库服务器是内网环境,只能通过linux跳板机连接,所以navicat工具暂时用不上. 1.用Xshell工具连接跳板机 2.再通过跳板机连接数据库服务器 >ssh -p port ip ...

  7. Selenium应用代码(读取mysql表数据登录)

    1. 封装链接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...

  8. Python mysql表数据和json格式的相互转换

    功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...

  9. MySQL 表数据的导入导出

    数据导出 1.  使用 SELECT ...INTO OUTFILE ...命令来导出数据,具体语法如下. mysql> SELECT * FROM tablename INTO OUTFILE ...

随机推荐

  1. C语言 > 构造素数表

    #include <stdio.h> #define NUMBER 1000 int main(){ int isPrime[NUMBER]; ; i < NUMBER; i++){ ...

  2. mysqldump+系统计划任务定时备份MySql数据

    MYSQL 数据库备份有很多种(cp.tar.lvm2.mysqldump.xtarbackup)等等,具体使用哪一个还要看你的数据规模.下面给出一个表 #摘自<学会用各种姿态备份Mysql数据 ...

  3. java里的堆内存于栈内存的区别

    这个区别对于我们来说并不大,这是内存分配的两种方法.一般代码逻辑,简单变量,结构体都是放入栈中,而对象,以及被装箱的数据是放入堆中的.简单来说,栈就是一个很长的栈(数据结构中的栈,如果不理解可以当做是 ...

  4. activemq+Zookeper高可用集群方案配置

    在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式 ...

  5. D. Kuro and GCD and XOR and SUM

    Kuro is currently playing an educational game about numbers. The game focuses on the greatest common ...

  6. Debian9桌面设置

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=665 新安装的Debian9桌面上啥都没有,就像这样: 图 1 虽然很简洁,但是用着不是很方便,下面我们就通过一些设 ...

  7. JavaWeb(一)JavaWeb应用的概念

    JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:"Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构 ...

  8. bootstrap学习地址2017.6.1

    http://www.runoob.com/bootstrap/bootstrap-tutorial.html

  9. thinter中lable标签控件(二)

    lable控件 对于tkinter来说,学起来很简单,只要设置好相应的参数即可出结果,所以不用刻意去记住这些参数.学习一遍后理解每个参数的作用是什么即可. 当下次用到的时候来笔记上看一下就行. 内容很 ...

  10. poj-3522 最小生成树

    Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...