2014-02-28 3 views
0

나는 다음을 찾았습니다 주어진 latitude와 longitude가 다각형 안에 있는지를 확인할 수있는 myspace spatial functions.이 함수는 주어진 lat & lng가 다각형 안에 있는지 확인하는 것이 좋습니다.

1-MBR_Contains

2-MBR_Within

내부 또는 다각형의 외부 빠른정확한 결과가 지정된 점을 확인하기 위해 줄 것이다, 나를되어 안내하시기 바랍니다 쿼리 자체에 의한 MySql 서버.

또한 이보다 더 좋은 해결책을 찾았다면 (Mysql 서버의 쿼리를 통해 확인해야합니다.) 제안 하시겠습니까?

감사합니다, ArunRaj

+0

안녕하세요? ArunRaj, 특정 거리 내에서 위치를 간단히 찾으시겠습니까? 원이 원주로도 작동합니까? 아니면 그것을 계략이되어야합니까? – Daan

+0

@ Daan : 안녕 Daan, 답장을 보내 주셔서 감사합니다. 참고로, 거리를 계산하지 않습니다. 나의 유스 케이스 (Usecase)를 위해서, 나는 ** 폴리곤 **의 내부 또는 외부 ** 점 (lat, lng)을 확인해야합니다 **. – ArunRaj

답변

1

그들은 가능성 (속도면에서) 같은,하지만 당신은 두 가지 기능을 사용하여 자신의 테스트를 실행해야합니다.

당신이 MySQL을 5.6.1을 사용하여 가정, 말했다, 당신은 MBR 기능 자제와 ST 기능을 사용해야합니다

ST_Contains() 
ST_Within() 

이유를, MBR은 따라서 지점이 할 수있는 최소한의 경계의 구형을 의미합니다 최소 경계 사각형 내에 있지만 실제로 다각형 내에 있지는 않습니다. ST 방법은 모양과 정확히 일치하며보다 정확한 답변을 제공합니다.

편집, 어느 것을 사용해야합니까? 나는 여러분이 폴리곤 내의 한 점을 테스트 할 때 둘 중 하나를 사용할 수 있다고 믿지만, 안전을 위해 폴리곤에 있다고 알고있는 점을 다시 테스트합니다.

+0

HibernateSpatial API를 사용하여 ST_Contains() 메소드를 구성 할 수 있습니까? – ArunRaj

+1

@ user2959196 솔직히 말해서, 나는 완전히 확신 할 수 없으며 NHibernate를 사용하지 않지만, 현 버전이 아주 조기에 Spatial Types를 지원했기 때문에 당신을 허용하지 않는다면 놀랄 것입니다. –