0

MySQL 5.5.35でサーバーを使用していますDebian 7 x86_64。ポイントが長方形内にあるかどうかを確認しようとしています。Containsこの関数を次のように使用します。

SELECT Contains
(
    Polygon
    (
        Point(55.538322,37.332026),
        Point(55.566347,37.875850),
        Point(55.898002,37.873103),
        Point(55.896459,37.381465),
        Point(55.538322,37.332026)
    ),
    Point(55.737177,37.623164)
)

ポイントは明らかに長方形内にあり、1出力を取得することを期待していましたが、取得しているのは(NULL).

私の間違いを指摘していただけますか?ありがとうございました!

更新:いくつかのデバッグの後NULL、関数によって返されPolygonます。それが問題です。

4

2 に答える 2

1

リファレンスを読んだ後、Polygon関数がそのパラメーターが type であることを期待していることがわかりましたLineString。正しい例は次のとおりです。

SELECT
Contains
(
   Polygon
   (
        LineString
        (
          Point(55.538322,37.332026),
          Point(55.566347,37.875850),
          Point(55.898002,37.873103),
          Point(55.896459,37.381465),
          Point(55.538322,37.332026)
        )
    ),
    Point(55.737177,37.623164)
)
于 2014-04-07T13:44:34.257 に答える