ポリゴンを含むmysqlテーブルがあり、そのうちのいくつかは開いているので、それらを閉じる必要があります。おそらく、「Linestring」の最後に「StartPoint」を追加し、ポリゴンとして書き換えることによって。何か案は?
確かに、ポリゴンを取得してテストし、ポリゴンが開いているか閉じているかを確認できます。
SELECT ExteriorRing(SHAPE) into @testshape from tablename where OGR_FID=1;
SELECT (StartPoint(@testshape)) INTO @SP;
SELECT (EndPoint(@testshape)) INTO @EP;
SELECT @EP=@SP as myIsRing;
大丈夫ですが、開いているときは、ポリゴンを閉じるために、線ストリングの最後に開始点を追加する必要があります。その「閉鎖」ポイントを追加して、閉じたポリゴンを作成する方法はありますか?
私が試したことは注目に値するかもしれません(manページによる)
SELECT UNION(@testshape,@SP) INTO @newshape;
そして、私のバージョンがUNION関数を受け入れなかったかのように、標準の構文エラーERROR 1064(42000)が発生しました。