2012-09-27 3 views
0

인사말.KM의 MySQL Spatial 테이블의 두 점 사이의 정확한 거리

이 주제에 대한 몇 가지 게시물과 답변을 보았지만 결과는 정확하지 않을 수 있습니다.

MySQL의 공간 테이블에서 경도와 위도가 다른 행이 있다고 가정 해 봅니다. 난 그냥 간단한 SELECT 쿼리와 그들 사이의 거리를 검색하고 싶습니다. 나는 시도했다 :

GLENGTH(
     LINESTRINGFROMWKB(
      LINESTRING(
       GEOMFROMTEXT(
        ASTEXT(
         POINTFROMWKB(
          POINT(X(user_location) , Y(user_location))))), 
       GEOMFROMTEXT(
        ASTEXT(
         POINTFROMWKB(
          POINT($latitude, $longitude)))))))*100 

나는 그 종류의 '추한'을 안다. 그리고 나는 결과가 KiloMeters에서 주어지지 않을까 걱정된다.

어떻게하면됩니까? 많은 감사합니다.

+0

읽을 수 있도록 수식을 포맷하는 것이 도움이됩니다. 또한, 당신이 찾고있는 것은 "haversine"또는 "큰 원"거리 공식으로 알려져 있습니다. –

+0

또한 정확해야하는 정도에 따라 다릅니다. 상점 파인더 응용 프로그램을 수행하는 경우 haversine 수식이 좋습니다. 브리지에 대한 엔지니어링 계획을 수행하는 경우지도 제작 예측에 대해 알아야합니다. 지구는 완벽하게 구형이 아닙니다. –

답변

3

사용하는 방법이 정확한 결과를 제공하지 않습니다. GLENGTH은 간단한 데카르트 식을 사용하기 때문에. 코멘트 here on GLENGTH's MySQL page에서 구면 표면에 사용할 수 없다는 것을 읽을 수 있습니다. 직교 좌표면에 있습니다.

Stackoverflow answer에는 수정 된 공식이 있으며 명확하게 설명 된 사용법이 나와 있습니다. 귀하의 목적에 맞게 수정해야합니다. 그러나 확실히 진행 방법에 대해 안내 할 것입니다.

도움이 되길 바랍니다 ...

+0

감사합니다. – Frildoren