2014-04-07 4 views
0

Debian 7 x86_64MySQL 5.5.35 서버를 사용 중입니다. 포인트가 사각형 안에 있는지 확인하려고합니다.MySQL 기능 포함 - 예기치 않은 결과

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)가되었습니다 : 나는 Contains 기능이 방법을 사용합니다.

제 실수를 지적 해 주시겠습니까? 고맙습니다!

업데이트 : 일부 디버그가 나온 후 NULLPolygon 기능으로 반환됩니다. 그래서 그것이 문제입니다.

답변

1

을 시도 할 수 있습니다. 올바른 예는 다음과 같습니다.

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) 
) 
1

당신은 reference I'ver가 Polygon 함수가 매개 변수 유형 LineString의 수의 기대 것을 발견 읽은 후이 sintax

SELECT 
MBRContains(
    GeomFromText('Polygon((55.538322 37.332026,55.566347 37.87585,55.898002 37.873103,55.896459 37.381465,55.538322 37.332026))'), 
    GeomFromText('Point(55.737177 37.623164)')); 
+0

응답 해 주셔서 감사합니다. 당신이 제안한 문법은 저에게 효과적입니다. 왜 내 것이 효과가 없는지 알 겠지? 고맙습니다! – Kolyunya

+0

감사합니다. 공간 관계에 대해서는 mysql dev 사이트에서 설명한대로 정확한 함수 (MBRContains뿐만 아니라 포함하지 않음)를 사용해야한다고 생각합니다. http://dev.mysql.com/doc/refman/5.6/en/functions- for-testing-spatial-relations-geometre-objects.html 나머지는 'GeomFromText'키워드가 없으면 왜 작동하지 않는지 모르겠지만 항상이 Sintax를 Mysql 사이트에서 가져 오는 데 사용했습니다. . – AlexF

+0

나는 내 실수가 무엇인지 알아 냈고 다른 사람에게 유용 할 수있는 답을 게시했다. – Kolyunya