mariaDb, mySQL을 사용하여 반경 내의 모든 공간 유형 지점(km)을 가져옵니다.
여기 문제가 있습니다.
이미 그것에 대해 몇 가지 조사를 했지만, 그것에 대해 명확하고 잘 설명되는 해결책을 찾지 못했습니다.어떤 사람들은 다음과 같은 기능에 대해 이야기하고 있다.st_distance
또는st_within
mysql/sysql adb 버전을 참조하고 있습니다만, 이러한 함수는 실제 문서가 없는 것 같고, 제 문제에 맞지 않는 것 같습니다.
그래서 내가 하려고 하는 것은:
모든 공간 포인트 가져오기(lat,ln)
RADIUS가 정의되어 있는 원내에 있습니다.KILOMETRES
.
사용자는 반경 1 ~100km를 지정하고 해당 반경 내에 있는 모든 데이터베이스 레코드를 받습니다.
"point
s" 테이블은 다음과 같습니다.
ID -- POINT -- SOMETEXT
포인트는 에 사용되는 공간 유형 포인트입니다.mySql(>5.6) / mariaDb(5.5.40) (lat,lng)
따라서 쿼리는 다음과 같이 표시됩니다.
"SELECT * FROM points WHERE (function... to get distance) <= definedDistance"
도와주셔서 감사합니다.
여기에 쓴 내용에 동의하지 않습니다.
어떤 사람들은 mysql/mariadb 버전을 나타내는 st_distance나 st_within과 같은 함수에 대해 이야기하지만, 이러한 함수는 실제 문서가 없는 것 같고, 제 문제에 맞지 않는 것 같습니다.
st_distance
이 문서화되어 있어 고객님의 문제에 매우 잘 맞는 것 같습니다.
예를 들어 반지름 1과 중심점 (2, 2)의 원 안에서 점을 찾습니다.
CREATE TABLE geom (g GEOMETRY);
INSERT INTO geom VALUES (GeomFromText('POINT(1 1)'));
INSERT INTO geom VALUES (GeomFromText('POINT(1 2)'));
INSERT INTO geom VALUES (GeomFromText('POINT(1 3)'));
INSERT INTO geom VALUES (GeomFromText('POINT(1 4)'));
INSERT INTO geom VALUES (GeomFromText('POINT(2 2)'));
INSERT INTO geom VALUES (GeomFromText('POINT(3 3)'));
INSERT INTO geom VALUES (GeomFromText('POINT(4 4)'));
SELECT AsText(g) from geom where ST_Distance(point(2,2), g) <= 1
출력:
POINT(1 2)
POINT(2 2)
언급URL : https://stackoverflow.com/questions/28021577/get-all-spatial-type-points-within-radius-in-km-with-mariadb-mysql
'programing' 카테고리의 다른 글
Javascript에서 문자열에 포함된 문자의 발생 횟수를 카운트합니다. (0) | 2022.09.05 |
---|---|
Vue.js의 루트 요소에서 내보낸 이벤트를 재생하려면 어떻게 해야 합니까? (0) | 2022.09.05 |
함수 표현식 앞에 JavaScript 플러스 기호 (0) | 2022.09.05 |
MariaDB Connector/J 및 AWS RDS Aurora에서 이상한 간헐적 문제 발생 (0) | 2022.09.05 |
MySQL DATE_FORMAT 또는 DateTime.strftime을 통한 DateTime 문자열 (0) | 2022.09.05 |