2012-07-09 60 views
1

我有一個包含多邊形的多邊形的MySQL表格,我需要關閉它們。大概是通過將「StartPoint」附加到「Linestring」的末尾並重寫爲一個多邊形。有任何想法嗎?如何在mysql中關閉打開的多邊形GIS GIS空間擴展

我當然可以抓住並測試一個多邊形,看看它打開或

SELECT ExteriorRing(SHAPE) into @testshape from tablename where OGR_FID=1; 
SELECT (StartPoint(@testshape)) INTO @SP; 
SELECT (EndPoint(@testshape)) INTO @EP; 
SELECT @[email protected] as myIsRing; 

那麼好吧關閉,但是當它的開放,我需要:起點追加到行字符串的結尾,以關閉多邊形。有沒有辦法追加這個「閉合」點並創建一個封閉的多邊形?

可能是值得注意的是,我想(按照手冊頁)

SELECT UNION(@testshape,@SP) INTO @newshape; 

,並得到了標準語法錯誤ERROR 1064(42000),就好像我的版本didnt接受工會提出的功能。

+0

版本5.1.41-3ubuntu – 2012-07-09 20:34:30

回答

1

對不起大家,扔了幾個小時以上的問題,並得到以下

select polygon(geomfromtext(astext(concat(geomfromtext(astext(@testshape)),(geomfromtext(astext(@SP))))))) INTO @newpoly; 

不完全是乾淨的,但它的工作,並且可以與測試:

SELECT (StartPoint(EXTERIORRING(@newpoly))) INTO @SP2; 
SELECT (EndPoint(EXTERIORRING(@newpoly))) INTO @EP2; 
SELECT @[email protected] as myIsRing; 
+0

最近我只記得,這也是一種方便的技術,可以將點添加到任意線串逐點到線的末尾。 – 2013-05-02 01:02:18