2013-03-16 5 views
5

多角形の地理座標をMySQLデータベースに挿入しようとしています。私は、タイプPOLYGONのポリゴンというフィールドを持っている、と私は、これらのクエリのすべてを実行しようとしましたが、SQLの構文エラーを取得し続ける:MySQLに座標を挿入する - PolyFromText SQL構文エラー/ nullを返す

SET @g = 'POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))'; 
INSERT INTO 'zones' ('polygon') VALUES (PolyFromText(@g)); 

INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))')); 

INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))', 0)); 

最後のクエリをphpmyadmins独自のジオ空間ツールを使用して生成され、 "Column 'ポリゴン'をnullにすることはできません。どんな助けもありがとう!

+0

を参照してください私はPolygonFromText、PolyFromTextとGeomFromTextを試してみました - どちらも彼らの仕事。 – Yev

答えて

25

理由は、最後のポイントを終了するnullが最初のポイントと等しくないためです.OSGeoの標準WKTを満たす条件ですが、これは許容されている実装もありますが、SQL Serverではmysqlが厳密ですドキュメントは条件をよりよく説明します。

mysqlの

のこの

SELECT Dimension(GeomFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327,-74.13591384887695 40.93750722242824)))')); 

ドキュメント

http://dev.mysql.com/doc/refman/5.0/en/gis-class-polygon.html

のSQLServerのドキュメント

http://msdn.microsoft.com/en-us/library/bb964739(v=sql.105).aspx

+0

ありがとうございます!私は最後のポイントを繰り返し、それは働いた! – Yev

+1

あなたは素晴らしいです、m8! – nurgasemetey

関連する問題