geoserver发布mysql表数据
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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表数据的更多相关文章
- 利用Flume将MySQL表数据准实时抽取到HDFS
转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...
- MySQL 表数据多久刷一次盘?
前言 事情是这样的,在某乎的邀请回答中看到了这个问题: - 然后当时我没多想就啪一下写下来这样的答案: 这个其实要通过 MySQL 后台线程来刷的,在 Buffer Pool 中被修改的过的 Page ...
- ElasticSearch+ElasticGeo+Geoserver发布ES地理数据
依赖GeoserverElasticSearchElasticGeo部署部署ElasticGeo使用创建ES数据源并发布发布 依赖 Geoserver 环境搭建参考: ElasticSearch 环境 ...
- Python将MySQL表数据写入excel
背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...
- linux下用命令导出mysql表数据
由于数据库服务器是内网环境,只能通过linux跳板机连接,所以navicat工具暂时用不上. 1.用Xshell工具连接跳板机 2.再通过跳板机连接数据库服务器 >ssh -p port ip ...
- Selenium应用代码(读取mysql表数据登录)
1. 封装链接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...
- Python mysql表数据和json格式的相互转换
功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...
- MySQL 表数据的导入导出
数据导出 1. 使用 SELECT ...INTO OUTFILE ...命令来导出数据,具体语法如下. mysql> SELECT * FROM tablename INTO OUTFILE ...
随机推荐
- CF#483(div2 C)
http://codeforces.com/contest/984/problem/C C. Finite or not time limit per test 1 second memory lim ...
- Net Core动态加载webservice/WCF
1.动态加载的目的 前端时间和顺丰对接了个项目(PS:顺丰的开发对外能力真的是掉粉),用的webservice 测试时用的无固定IP访问,正式版需要固定IP访问,我的理解是web服务都是全网络可以访问 ...
- linux下c编程 基础
1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理 ...
- 线程池ThreadPoolExecutor类的使用
1.使用线程池的好处? 第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行. 第三:提高线程的可管理性 ...
- Spring通过构造方法注入的四种方式
通过构造方法注入,就相当于给构造方法的参数传值 set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选 的,构造注入的优势是通过构造强制依赖关系,不可能实例化不 完全的或无法使用的bean. Me ...
- 二十一、Hadoop学记笔记————kafka的初识
这些场景的共同点就是数据由上层框架产生,需要由下层框架计算,其中间层就需要有一个消息队列传输系统 Apache flume系统,用于日志收集 Apache storm系统,用于实时数据处理 Spark ...
- YII框架CGridView分页实现
C控制器层 $model = new User('search'); $model->unsetAttributes(); $dataProvider = $model->search() ...
- Django 的数据库查询
class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def _ ...
- 玩转spring mvc(四)---在spring MVC中整合JPA
关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/ar ...
- composer的安装方法
网上说的方法几乎都不正确,经作者总结,终于知道怎么使用composer的方法.第一,从http://docs.phpcomposer.com/下载安装包:composer.phar 第二,把安装包放在 ...