文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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. python_选择结构

    >>> if 3>2:print('ok') ok>>> if True:print(3);print(5) >>> chTesst=['1 ...

  2. Python中’__main__’模块的作用

    Python不同于C/C++,程序执行并不需要主程序,如main(),而是文件自上而下的执行.但很多Python程序中都有 if __name__ == '__main__': statements ...

  3. Js的String对象

    Js的String对象常用方法: 方法一.得到某字符在字符串中的索引位置. str.indexOf(findStr,[index])--返回的是要查找字符在字符串中的位置索引   ,index开始查找 ...

  4. 注解@PostConstruct与@PreDestroy 特性说明

    简介 Java EE5 引入了@PostConstruct和@PreDestroy这两个作用于Servlet生命周期的注解,实现Bean初始化之前和销毁之前的自定义操作.此文主要说明@PostCons ...

  5. SqlSugar 盲点

    1.读取数据库连接 private SqlSugarClient GetInstance() { string conmstring = System.Web.Configuration.WebCon ...

  6. django从0到1搭建网站

    曾经有人说我前端很水,那么在这一系列文章中我打算把前后端融合在一起来做一次网站的全面重构,希望可以把刚刚入行的同学带上正途   请尊重原创,转载请注明来源网站www.shareditor.com以及原 ...

  7. python自定义库文件路径

    各有各的小烦恼,各有的小期待 这是人家私事,不要大嘴巴 在Pycharm中import whois时,总是失败 原因是安装了python3.x相关操作过程,将环境变量path中关于Python的配置c ...

  8. Enabling Chrome Developer Tools inside Postman

    Chrome's Developer Tools are an indispensable part of the modern web development workflow. However, ...

  9. 基于Nginx和Zookeeper实现Dubbo的分布式服务

    一.前言 公司的项目基于阿里的Dubbo 微服务框架开发.为了符合相关监管部门的安全要求,公司购买了华东1.华东2两套异地服务器,一套是业务服务器,一套是灾备服务器.准备在这两套服务器上实现 Dubb ...

  10. plugin.go 源码阅读

    , nil)             }             if c.client != nil {                 c.client.Close()             } ...