GPS 좌표를 위해 데이터베이스에 중요한 숫자를 몇 개 저장해야 합니까?
MySQL 데이터베이스에는 경도와 위도 좌표(GPS 데이터)가 모두 있습니다.
현재 다음과 같이 저장됩니다.
column type
------------------------
geolat decimal(10,6)
geolng decimal(10,6)
질문:다음과 같은 크기의 데이터 유형이 필요합니까?decimal(10,6)
좌표 데이터를 적절하게 저장할 수 있습니까?
경도와 위도를 합친 지수를 가지고 있기 때문에, 이 지수의 크기는 큽니다.조금도 손상되지 않고 작게 만들 수 있다면 좋을 것 같습니다.
WGS84 기준점은 일반적으로 소수점 이하 5자리의 좌표로 제공되므로 위도(-90 ~ +90)의 경우 소수점(-7, 5)(-90.00000 ~ 90.00000)을 사용할 수 있고 경도의 경우 소수점(-8, 5 ~ 180.00000)(-180.00000)을 사용할 수 있습니다.
.00001은 적도에서 약 1미터의 정밀도를 제공합니다.
DECTION/NUMERIC 데이터 유형은 고정된 정밀 축척 정수이며 범위의 양의 부분과 음의 부분을 항상 사용할 수 있습니다. 이들은 정밀도나 척도에 영향을 주지 않습니다(DECIMAL에는 분명히 필요한 저장소가 있지만 선택할 수 없습니다).
설문 조사의 정확도에 따라 다릅니다.일반적으로:
- 소수점 이하 6자리는 ~ 10cm의 정확도를 나타냅니다.
- ~ 1cm의 소수점 이하 7자리
- 원자 구조의 정확도를 나타내는 소수점 13자리...
따라서 매우 정밀한 연구, 즉 지각판 움직임에 대한 연구가 아닌 한, 6자리 숫자를 사용하는 것으로 충분해야 합니다.
다음은 whuber(GIS 스택 오버플로)의 전체 답변 복사본입니다.
정확도는 측정값이 참 값과 일치하는 경향입니다.정밀도는 측정값이 실제 값을 고정하는 정도입니다.그 질문은 정확성과 정확성의 상호작용에 관한 것입니다.
일반적으로 측정값을 기록할 때 정확도가 측정값에 내장된 것보다 훨씬 더 정확할 필요는 없습니다.너무 많은 정밀도를 사용하는 것은 사람들로 하여금 정확도가 실제보다 크다고 믿게끔 오도할 수 있습니다.
일반적으로 소수점 이하의 소수점 이하를 사용하여 정밀도를 떨어뜨리면 어느 정도 정확도가 떨어질 수 있습니다.하지만 얼마입니까?미터기가 원래 정의되었다는 것은 좋은 일입니다. (프랑스인들이 혁명 당시 낡은 시스템을 버리고 새로운 시스템으로 열렬히 교체할 때) 그들 중 천만 명이 적도에서 극으로 여러분을 데려갈 것입니다.그것은 90도이기 때문에, 위도 1도는 약 10^7/90 = 111,111 미터를 덮고 있습니다. ("약") 왜냐하면 그 사이에 미터의 길이가 약간 바뀌었기 때문입니다.하지만 그것은 중요하지 않습니다.)게다가, 경도의 정도(동-서쪽)는 위도의 정도와 거의 같거나 그보다 짧습니다. 왜냐하면 위도의 원은 적도에서 극쪽으로 이동할 때 지구의 축까지 줄어들기 때문입니다.따라서 한 소수점도의 6번째 소수점 자리가 111,111/10^6 = 약 1/9 미터 = 약 4 인치의 정밀도를 갖는다는 것을 항상 파악하는 것이 안전합니다.
따라서 정확도 요구가 10미터를 주고 받는 것과 같은 경우에는 1/9미터 이상은 아무것도 아닙니다. 소수점 이하 여섯 자리를 사용해도 정확도를 잃지 않습니다.만약 여러분의 정확도가 센티미터 이하라면, 여러분은 최소한 7자리에서 아마도 8자리의 소수점이 필요합니다. 하지만 더 많은 숫자가 여러분에게 도움이 될 것입니다.
소수점 13자리는 그 위치를 작은 원자의 절반 정도 두께인 111,111/10^13 = 약 1앙스트롬으로 고정시킬 것입니다.
이러한 아이디어를 사용하여 소수점 이하의 각 숫자가 의미하는 바를 표로 구성할 수 있습니다.
- 이 별자리는 우리에게 지구상에서 우리가 북쪽에 있는지 남쪽에 있는지, 동쪽에 있는지 서쪽에 있는지를 알려줍니다.
- 0이 아닌 수백 자리는 위도가 아닌 경도를 사용한다는 것을 나타냅니다!
- 10자리 숫자는 약 1,000 킬로미터의 위치를 제공합니다.그것은 우리에게 우리가 어떤 대륙이나 바다에 있는지에 대한 유용한 정보를 줍니다.
- 단위 숫자(소수점 1개)는 최대 111km(60해리, 약 69마일)의 위치를 제공합니다.그것은 우리가 대략 어느 정도의 큰 주나 나라에 있는지 말해줄 수 있습니다.
- 소수점의 첫 번째 자리는 최대 11.1 km의 가치가 있습니다: 그것은 하나의 큰 도시의 위치와 이웃한 큰 도시를 구별할 수 있습니다.
- 두 번째 소수점은 최대 1.1 킬로미터의 가치가 있습니다: 그것은 한 마을과 다음 마을을 분리할 수 있습니다.
- 세 번째 소수점은 최대 110m의 가치가 있습니다: 그것은 큰 농경지나 기관 캠퍼스를 식별할 수 있습니다.
- 네 번째 소수점은 최대 11m의 가치가 있습니다: 그것은 땅의 구획을 식별할 수 있습니다.이는 간섭이 없는 보정되지 않은 GPS 장치의 일반적인 정확도와 비슷합니다.
- 다섯 번째 소수점은 최대 1.1m의 가치가 있습니다: 그것은 나무들을 서로 구별합니다.상용 GPS 장치를 사용하여 이 수준의 정확도를 달성하려면 차동 보정을 사용해야 합니다.
- 6번째 소수점은 0.11m까지 가치가 있습니다. 여러분은 이것을 사용해서 구조물을 세부적으로 배치하고, 풍경을 디자인하고, 도로를 건설할 수 있습니다.그것은 빙하와 강의 움직임을 추적하기에 충분할 것입니다.이는 차등 보정된 GPS와 같은 GPS를 사용하여 정교한 조치를 취함으로써 달성할 수 있습니다.
- 일곱 번째 소수점은 최대 11mm의 가치가 있습니다. 이것은 많은 조사에 유용하며 GPS 기반 기술이 달성할 수 있는 한계에 가깝습니다.
- 8번째 소수점은 최대 1.1mm의 가치가 있습니다. 이것은 지각판의 움직임과 화산의 움직임을 도표로 작성하는 데 좋습니다.영구적이고, 교정되고, 지속적으로 실행되는 GPS 기지국은 이러한 수준의 정확도를 달성할 수 있습니다.
- 9번째 소수는 110미크론까지 가치가 있습니다. 우리는 현미경의 범위에 들어가고 있습니다.접지 위치가 있는 거의 모든 응용 분야에서 이는 과잉 살상이며 측량 장치의 정확도보다 더 정확합니다.
- 소수점 이하 열 자리 이상은 컴퓨터 또는 계산기가 사용되었으며 추가 소수점 이하는 쓸모가 없다는 사실에 주의를 기울이지 않았음을 나타냅니다.장치에서 이러한 숫자를 읽는 사용자가 아니면 낮은 품질의 처리를 나타낼 수 있으므로 주의하십시오!
저는 항상 소수점 뒤에 6자리 숫자로 작업했습니다.저는 군 계약으로 GIS 작업을 해왔고 이것으로 충분했습니다.
데이터를 늘리는 것보다 데이터를 줄이는 것이 더 쉽습니다.일반적으로 데이터 정확도를 높이는 것은 재측정을 하지 않는 한 불가능합니다.재측정에는 비용이 듭니다.귀사의 상황이나 업계에 대해 아는 바가 없기 때문에 가능한 한 많은 데이터/특수성을 캡처해야 합니다.
실제로 사용하는 데이터는 이 세트에서 수집할 수 있습니다.더 높은 수준의 특수성이 필요한 경우 재측정하지 않고 항상 재계산할 수 있습니다.
또한 원시 데이터를 인덱싱하는 것이 개별적인 요소가 아니기 때문에 최적의 방법인지 잘 모르겠습니다.정확도가 낮거나 더 작은 데이터 점의 테이블을 만들면 인덱스가 훨씬 더 작아집니다.
만약 이것이 부동산을 위한 것이라면 당신은 정말 집이 너무 많아서 한 줄에 2바이트씩 절약할 수 있을 것입니까?그럴 만한 이유가 없다면 최대한 정확하게 할 겁니다.
그것은 당신이 얼마나 정확한 위치를 원하느냐에 달려 있습니다.분명히 클수록 더 정확하고 더 광범위한 결과를 얻을 수 있습니다.어차피 데이터가 많지 않기 때문에 당신의 가치를 더 크게 유지하는 것이 좋습니다.
NMEA Lat/lon 출력에서 정규 GGA 문장은 적도에서 약 10m 해상도의 3자리에 불과합니다.일부 브랜드는 1m를 주기 위해 사용자 지정 추가 숫자를 추가합니다.
4자리 deg.mm mm/1000도 일반적입니다.
고급 정밀도 RTK-GPS를 사용하는 경우 mm 정밀도를 얻기 위해 더 많은 장소가 필요할 수 있습니다.
다른 단위로 좌표를 저장하거나 작업할 수도 있습니다.제가 작업한 프로젝트 중 하나는 모든 좌표가 밀리초 단위로 저장되어 있었습니다. (아마도 ints, 몇 년이 지났을 것입니다.)이 작업은 부분적으로 속도와 스토리지 공간을 위해 수행되었습니다(임베디드 시스템).하지만 여기에도 같은 논리가 적용될 수 있습니다.
모든 좌표가 특정 영역에 있는 경우 일부 중앙점(예: 평균 전류 점과 라운드를 통해 큰 소리로 말할 수 있는 숫자를 얻을 수 있음)을 수정한 다음 이 점을 기준으로 좌표를 저장합니다.그런 식으로 하면 처음 2-4자리의 가장 중요한 자리를 건너뛰어 큰 비용 절감 효과를 얻을 수 있습니다.그러나 이 데이터는 실제 WGS84 좌표를 반환하는 Class 또는 VIEW를 통해서만 처리해야 합니다.
언급URL : https://stackoverflow.com/questions/1947481/how-many-significant-digits-should-i-store-in-my-database-for-a-gps-coordinate
'programing' 카테고리의 다른 글
#1064 - phpMyadmin의 SQL 구문에 오류가 있습니다. (0) | 2023.08.28 |
---|---|
iPhone X에서 UIView의 safeAreaInsets는 0입니다. (0) | 2023.08.28 |
스위프트 콤바인에서 @Published를 사용하여 계산된 속성과 동등합니까? (0) | 2023.08.23 |
VBA 코드를 사용하여 데이터 복사 및 붙여넣기 (0) | 2023.08.23 |
UITextView에 커서가 표시되지 않음 (0) | 2023.08.23 |