mysql:16512
From: Watanabe Tomoyuki <Watanabe Tomoyuki <WATANABE.TOMOYUKI.2@xxxxxxxxxx>>
Date: Mon, 18 Feb 2019 16:08:42 +0900
Subject: [mysql 16512] RE: [mysql 16511] 関数Polygon(ls1,ls2,...)が動きません
こんにちは 渡辺です。
詳しくはないのですが、少し触ったことがあった部分なので書いてみます。
エラーになる POLYGON() 関数はマニュアルでいう MySQL-Specific Functions That Create Geometry Values(幾何値を作成する MySQL 固有の関数)というやつで、
これらは@つきのユーザー定義変数を引数に取れないようです。(理由は私もわかりません)
また、ST_で始まる比較的新しい関数群とは挙動がかなり違うので混在はできるだけ避けた方がよいと勝手に思っています。
今回のケースを書き換えるなら例えば
SET
@pt1 = '4010 5009',
@pt2 = '4015 5005',
@pt3 = '4018 5010',
@pt4 = '4012 5010',
@pt5 = '4018 5013',
@pt6 = '3995 5013',
@pt7 = '3995 5000';
SET @polywkt = CONCAT('POLYGON((',@pt1,',',@pt2,',',@pt3,',',@pt4,',',@pt5,',',@pt6,',',@pt7,',',@pt1,'))');
SET @npoly = ST_GeomFromText(@polywkt);
SELECT @npoly,ST_GeometryType(@npoly),ST_AsText(@npoly);
という感じでしょうか。
-----Original Message-----
From: 落合 司郎 <s.ochiai@xxxxxxxxxx>
Sent: Monday, February 18, 2019 11:48 AM
To: ml@xxxxxxxxxx
Subject: [mysql 16511] 関数Polygon(ls1,ls2,...)が動きません
お世話になります。
関数Polygon(ls1,ls2,...)を以下のように試してみましたが、以下のエラーが出てポリゴンを作れません。
MySQL ver5.7とver8.0の二つで試しましたが、結果は同じでした。
ちなみに、Polygon(ls1,ls2,...)の引数として渡したパラメータの型を確認しましたが、全て'LINESTRING'となっています。
何がいけないのか、教えてください。
16511 2019-02-18 11:47 [落合 司郎 <s.ochiai@] 関数Polygon(ls1,ls2,...)が動きません -> 16512 2019-02-18 16:08 ┣[Watanabe Tomoyuki <W] RE: [mysql 16511] 関数Polygon(ls1,ls2,...)が動きません @ 16513 2019-02-18 16:50 ┗[SAKAI Kei <sakaik@xx] Re: [mysql 16511] 関数Polygon(ls1,ls2,...)が動きません