MySQL Spatial 5.6.12에 대한 미터법을 결정하려고합니다.MYSQL Spatial에서 사용되는 메트릭은 무엇입니까?
예를 들어 여러 레코드에 대해 포인트 지오메트리를 저장하기 위해 만든 다음 테이블이 있습니다.
CREATE TABLE POINTS_DATA(
RECORD_ID INT(15),
STREET_ADDRESS VARCHAR(50),
CITY VARCHAR(50),
STATE VARCHAR(25),
ZIPCODE VARCHAR(11),
LOCATION_GEO_CODES_SDO POINT NOT NULL,
SPATIAL INDEX(LOCATION_GEO_CODES_SDO),
PRIMARY KEY(RECORD_ID)
) ENGINE=MyISAM;
테이블을 만든 후에 테이블에 일부 레코드를 성공적으로 삽입했습니다.
이제 지정된 LAT/LONG에서 1 마일 이내에있는 모든 레코드를 가져 오기 위해 다음 쿼리를 생성했습니다. 여기에 내가 그것을 위해 실행하는 쿼리입니다 :
SELECT RECORD_ID, STREET_ADDRESS, CITY, STATE, ZIPCODE
, GLength(LineStringFromWKB(LineString(LOCATION_GEO_CODES_SDO
, POINT(-85.123,39.113))) AS DISTANCE
FROM POINTS_DATA
HAVING DISTANCE < 1 ORDER BY DISTANCE;
이 쿼리를 실행 한 후, 나는 몇 가지 기록을받을 수 있나요,하지만 거리가 마일 또는 미터 될 것 같지 않습니다. 0.0123, 0.0145 등과 같은 분수 값입니다.
MySQL의 어느 곳에서도 관련 설명서를 찾을 수 없었습니다. MySQL에서 사용중인 메트릭 시스템을 아는 사람이 있습니까? 그리고 있다면, 어떻게 그것을 마일로 변환 할 수 있습니까?
즉, 위의 쿼리를 실행하여 1 마일 이내에있는 모든 레코드를 가져와야한다면 어떻게 다시 구성해야합니까?
데카르트 좌표 시스템 대신 위도와 경도에 대한 측지 좌표 시스템을 어떻게 사용합니까? MYSQL Spatial Extensions에서 그렇게 할 수있는 방법이 있습니까? – user2052129
MySQL은 측지 계산을 지원하지 않습니다. 측지 CRS (latin-lng 포함)를 사용할 수도 있지만, MySQL은 여전히 거리를 반환 할 때 데카르트 계산을 계속 사용합니다. 측지 계산이 필요한 경우이를 지원하는 일부 데이터베이스는 PostGis, Oracle Spatial 또는 SQL Server입니다. – lreeder
감사합니다. 저는 과거 Oracle Spatial을 사용해 왔지만 측지 좌표계를 지원한다는 것을 알고 있습니다. Oracle Spatial의 모든 기능과 비교하여 MySQL Spatial을 비용 효율적인 솔루션으로 탐색하고있었습니다. 측지 좌표계가 지원되지 않으면 변환 할 수있는 방법이 있습니까? .. 괭이로 실제지도에서 점 기하학을 확인하고 LAT/LONGS로 식별되는 실제 상가 위치를로드 할 수 있습니까? 이 문제를 MYSQL에서 지원하기위한 해결 방법은 무엇입니까? – user2052129