(언제) GIS 가능 데이터베이스를 사용해야합니까?


22

저는 GIS를 처음 접하는 오랜 프로그래머입니다. GIS의 데이터베이스 측면에 대한 느낌을 얻으려고 노력 중이며 GIS 전용 데이터베이스가 있다는 것을 알고 있습니다. 기본적으로 나는 그러한 데이터베이스를 사용할지 또는 널리 보급되고 널리 지원되며 널리 지원되는 MySql을 고수하려고하는지 이해하려고합니다.

코딩하기 쉬운 응용 프로그램의 종류는 다음과 같습니다.

  • 차량 관리 (육상 또는 해상 차량)
  • 직원 추적
  • 재고 관리 (미터 단위로 정확한 물리적 위치 세분화)
  • errm, 그게 진짜야

일반적으로 최대 수백 (최대, 수천) 항목을 추적 할 것으로 예상됩니다. 응용 프로그램에 따라 항목이 동일한 (대형) 건물, 일련의 건물, 도시, 국가 또는 전 세계에 위치하는 경우가 있습니다.

건물의 맞춤 평면도 또는 Google 어스 등에서 다른 방식으로 시각적으로 표현하는 경우가 있습니다 (다른 질문의 경우 더 많음).

나는 MySql을 잘 사용하고 위도 / 경도 또는 다른 위치 데이터에 대한 열을 추가하는 것처럼 보이지만 MySql을 알고 있기 때문일 수 있습니다.

더 전문화 된 데이터베이스를 살펴 봐야 할 이유가 있습니까?

답변:


13

공간 데이터베이스 (PostGIS, MySQL에 대한 공간 확장 등)의 실제 장점은 공간 데이터에서 공간 작업을 수행 할 수 있다는 것입니다. 점 좌표를 저장하는 경우 공간에서 많이 얻지 못합니다 (두 숫자 열만 사용하십시오). 포인트 좌표 (고객이있는 곳), 라인 좌표 (배달 트럭이가는 곳) 및 다각형 (판매 지역)의 조합을 저장 한 다음 다양한 정보를 연관시키는 쿼리 (판매 고객 수) 현재 고객 사이트에서 2km 미만으로 이동했지만 배달 또는 픽업하지 않은 트럭 수)를 많이 얻을 수 있습니다.

iant가 지적한 것처럼 PostGIS는 확실히 서버 응용 프로그램을 살펴볼 가치가 있습니다. SpatiaLite는 SQLite의 공간 확장으로, 데스크톱 / 임베디드 / 오프라인 모바일 애플리케이션에 더 적합 할 수 있지만 상당히 유사한 SQL 기능을 제공합니다 [ Disclosure : I working on SpatiaLite ]. 데스크탑 애플리케이션.


+1 감사합니다. 그것이 왜 MySql이 아닌 Sqlite를 기반으로했는지에 대한
궁금증이 있습니다

1
나는 단지 다른 디자인 목표 (임베디드, 구성 없음 등)를 생각합니다.
BradHards

내가 생각했던 +1 (내장 된 배경에서도 나옵니다). 정보에 대해서 감사드립니다. 나는 브라우저 기반 앱으로 끝날 것으로 기대합니다 (우리 대부분은 원하지 않더라도), "lite"는 그렇게 필요하지 않습니다. d / b가 임베디드 시스템 / 장치에있는 지금 어떤 종류의 앱입니까? (죄송하지만 여전히 학습)
Mawg

1
임베디드는 큰 영역이지만 오프라인 모바일은 새로운 영역으로 보입니다.
BradHards

2
@Mawg 대부분의 최신 전화 및 브라우저는 sqlite를 데이터 저장소로 사용합니다. 실제로 하나의 c 파일이며 API는 매우 간단하며 처리 중입니다. 여러 프로세스가 실행되고 클라이언트 / 서버 아키텍처가 필요한 MySQL과는 대조적입니다. 매우 다른 두 가지 사용 사례
Ragi Yaser Burhum

8

당신은 확실히 대중적이고 잘 확립되어 있으며 널리 지원되는 (그리고 무료) PostGIS를 고려해야합니다 . MySQL이 할 수있는 모든 작업을 수행하고 공간 위치를 일급 객체로 처리합니다. 따라서 모든 비교 등을 작성하지 않고도 경계 상자 (또는 다른 다각형)에있는 점을 기준으로 선택을 수행 할 수 있습니다.

일단 어떤 객체가 어느 나라 (또는 건물)에 있는지에 대한 질문을 시작하기 시작하면 PostGIS는 실제로 자체적으로 제공되며 객체를 매핑해야한다고 결정하면 인기있는 모든 오픈 소스 도구가 PostGIS에서 상자.


+1 그리고 많은 감사합니다. 나는 지금 그것을 조사하기 위해 벗어났다. 코더 관점을 작성하고 싶습니다. 웹 기반으로 가면 PHP와 대화하는 것이 좋으며 Widnwos 데스크톱 응용 프로그램으로 이동하면 Delphi 용 AnyDac 데이터베이스 액세스 구성 요소를 사용하고 있으므로 AnyDac 지원 이메일을 보내 드리겠습니다. 다시 감사합니다!
Mawg

1
Mawg에게 : postgis, db2, patiallite, sql server 등의 GIS 기능을 지원하기 위해 제 3 자 delphi 데이터베이스 라이브러리를 여전히보아야합니다.
Uffe Kousgaard

+1 @UffeKousgaard 가장 저렴한 cartovcl.com에 대해서만
Mawg

1
Cartovcl (내가 거의 10 년 동안 사용해 왔던)은 GIS 기능이 내장 된 플랫 파일 GIS SDK입니다. 공간적으로 활성화 된 원격 데이터베이스 위에는 얇은 API가 아닙니다.
Uffe Kousgaard

1
역사적 문서 :-) 그러나 TatukGIS는 아마도 가장 포괄적 인 GIS SDK 중 하나 일 것입니다 (그러나 약간 비쌉니다). 그러나 그것은 cartovcl과 같은 리그에 있습니다. 즉, gis 기능이 내장되어 있으며 원격 데이터베이스의 API가 아닙니다.
Uffe Kousgaard

2

답변에 추가하고 일부 요점을 반복하기 위해 데이터의 공간 관계와 관련된 쿼리가있는 경우 공간적으로 활성화 된 데이터베이스를 사용합니다. 그 중 몇 가지는 다음과 같습니다.

  1. 관심 장소의 x 킬로미터 이내의 지점
  2. 어느 지점이 더 가까이
  3. 다른 지점과의 거리
  4. 진입로 내에서 x 킬로미터 인 지점

WHERE와 관련된 쿼리가 응용 프로그램에 중요한 기능인 경우 일반적으로 공간 데이터베이스를 사용하는 것이 좋습니다.

물론, 1에 대한 거리 공식을 사용하는 것과 같이이 쿼리 중 일부에 대해서는 코딩 / 응용 로직에 의존 할 수 있지만 휠을 재발 명할 필요는 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.