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/

                                                                           如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM