2009-11-03 3 views
0

임의의 수의 위도/경도 좌표의 지리적 중간 지점을 계산하려면 MySQL 쿼리 (또는 함수)가 필요합니다. 이 페이지 http://www.geomidpoint.com/calculation.html에 설명 된대로 방법 C (평균 위도/경도)를 사용하려고하지만이를 SQL 쿼리로 변환하는 방법을 알 수 없습니다. 나는 형태의 무언가를 찾고 있는데 :지리적 중점에 대한 MySQL 쿼리

LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) from points;

포인트 테이블의 각 포인트는 연관된 십진법의 위도와 경도로 표시됩니다. 나는 누군가가 이미 MySQL 쿼리 (또는 함수)를 가지고 있거나이 쿼리를 사용하고 있거나 내가 가진 것보다 훨씬 더 공간적 계산을 경험하고 있기를 바라고있다. 도와 주셔서 미리 감사드립니다.

+0

데이터베이스에 현재 저장되어있는 위도와 경도는 어떤 형식입니까? – mjv

+0

원래 게시물에서 언급했듯이 lat 및 long 값은 십진수로 저장됩니다. 보다 구체적으로는 위도 10 진수 (11,7) 및 경도 10 진수 (12,7)입니다. 잘하면 그게 도움이! –

답변

1

방법 C는 기본적으로 가중 평균으로 표시됩니다. 귀하의 질문은 MySQL 구문에 가깝습니다. 주어진 10 진수 형식입니다.

당신이 무게가있는 경우 :

SELECT 
    SUM(longitude * weight)/SUM(weight) AS Avg_Long, 
    SUM(latitude * weight)/SUM(weight) AS Avg_Lat 
FROM 
    points 

또는 비가 중 : 기준 조정에

SELECT 
    AVG(longitude) AS Avg_Long, 
    AVG(latitude) AS Avg_Lat 
FROM 
    points 

귀하의 참조 암시를하지만 그이 필요한 모르겠어요.

+0

그건 내 추측 이었지만 정확한 계산을 위해 십진수에서 데카르트 좌표로 변환하기 위해 더 복잡한 것이 있는지 알지 못했습니다. 잘만하면 당신 & 나는 옳다. 그것을 살펴 주셔서 감사합니다! –