文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處: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/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^