당신은 실제로 즉 PostGIS와의 단일 SQL 쿼리로이 작업을 수행 할 수 있습니다
SELECT
ST_AsText(ST_Transform(ST_SetSrid(ST_MakePoint(
500000 + x * 4828.03, 155000 + y * 4828.03), 27700), 4326))
FROM
generate_series(0, 12) x,
generate_series(0, 10) y;
일부 설명이 순서입니다 :
- 사용 포스트 그레스의에서 그리드를 만들 generate_series function을 매우 유용 모두 x 및 y 방향
- 생성 된 x 및 y 값을 ST_MakePoint으로 전달하여 눈금을 만듭니다. 계산을 돕기 위해 투영 된 미터 단위의 British National Grid을 사용했습니다. M25가 포함 된 경계 상자의 왼쪽 아래 모서리는 대략 (500000, 155000)이므로 앵커 지점으로 사용했습니다. 오른쪽 상단은 대략 (560000, 205000), 즉 60 x 50 킬로미터입니다. 3 마일은 4828.03 미터이며 ST_MakePoint의 각 반복에서 오프셋을 설명합니다. generate_series의 한계는 M28의 테두리 상자의 너비/높이에 맞는 4828.03 미터의 횟수 인 0에서 시작하여 12 및 10 또는 13 및 11 증분입니다.
- 사용 ST_SetSRID는이 좌표가이 공간 참조 ID (SRID)는 4326
로의로 알려져있다/경도를, 위도로 변환하기 위해 사용
ST_Transform 27700.
- 로 알려진 영국 내셔널 그리드,에 있다는 것을 PostGIS와 얘기하기
- ST_AsText은 기본 지오메트리의 텍스트 표현을 제공합니다. 이것을 제거하여 원시 지오메트리를 얻습니다. 예를 들어, 실제로 테이블을 만들어 지오메트리로 점을 저장하려는 경우입니다.
영국 국립 그리드 (27700)를 사용하여 3 마일 그리드를 작성한 다음 위도/경도로 변환했습니다. 위의 작업은 런던에서 lat와 lon에 대략 3 마일을 계산하고 동일한 generate_series를 두 번 수행하지만 직접 4326을 사용하여 ST_Transform을 건너 뛰는 방식으로 직접 수행 할 수 있습니다. 이 문제는 북/남으로 갈 때 위도가 1 분 정도 변경된다는 것입니다. 영국 국립 그리드는 지구 모양의 기본 모델 (지오이드)로 설계되었으며, 이는 영국에 특히 적합하며 GPS 위성에서 사용되는 WGS84와 동일하지 않습니다. 따라서 계기판을 미터로 사용하고 위도/경도로 변환하면 위도/경도를 직접 사용하는 것보다 더 규칙적인 왜곡이 발생하며 북/남으로 이동하면 눈금이 바뀝니다.실제로 원자력 발전소를 건설하지 않는 한 런던 크기의 지역에서는 다음을 모두 무시할 수 있습니다. D
Google지도에서 사용하는 투영법 인 구형 메르카토르 (3857) 및 기타)를 미터로 표시합니다. 3857에서 4326을 사용하여 위의 절차를 사용할 수도 있지만,이 프로젝션은 북쪽으로 갈수록 증가하는 스케일 왜곡을 유지하는 반면, 가로 메르카토르를 기반으로하는 영국의 그리드는 일정한 스케일의 북쪽/남쪽을 가지고 있으며,/웨스트. Google지도 또는 이와 유사한 점을 플롯하려면이 방법이 적합 할 수 있습니다. 3857에서 시작점을 알아 내기 위해 연습으로 남겨 둡니다 (힌트는 ST_Transform을 사용합니다).
그리드의 시작점이 얼마나 정확해야합니까? –
@ JohnBarça 100 % 일 필요는 없지만 최대한 정확하게 작성해야합니다. 어디서든 시작할 수 있습니다. – eth0
죄송합니다. 약간 긴 대답입니다. 그것이 도움이되기를 바랍니다. 나는 비극적 인 계획에 대해 이야기하기 시작할 때 스스로를 도울 수 없습니다. –