PostGIS 데이터베이스를위한 간단한 프론트 엔드를 만드는 방법은 무엇입니까?


21

우리 조직은 현재 Excel에 저장되어있는 많은 환경 모니터링 데이터 (스트림 흐름, 수질 화학 등)를 수집합니다. 모든 것을 데이터베이스에 가져오고 싶습니다 – 아마도 PostGIS – 데이터베이스 원칙에 대한 지식이없는 사람들 (SQL 또는 이와 유사한 것)이없는 사람들이 데이터에 액세스 할 수 있어야합니다.

사용자가 관심있는 모니터링 스테이션, 가변 유형 (예 : 스트림 질산염 농도) 및 시간 간격을 선택하는 데이터베이스에 대한 간단한 프론트 엔드를 원합니다. 그런 다음 데이터베이스는 요청 된 데이터를 csv 형식으로 반환하여 사용자가 컴퓨터에 다운로드 할 수 있도록합니다. 이상적인 세계에서는 프런트 엔드에 모든 모니터링 스테이션의 클릭 가능한 맵이 표시되지만, 더 쉬운 경우 사용 가능한 사이트 드롭 다운 목록을 시작하는 것이 좋습니다. 이 프론트 엔드는 아마도 웹 사이트 일 것 같지만 반드시 그럴 필요는 없습니다.

이 방법이 얼마나 어려우며 다양한 옵션이 있습니까? 저는 데이터 베이 싱 전문가가 아니지만 Desktop GIS에 대해 잘 알고 있으며 간단한 Python 스크립트를 작성하고 PostGIS, SpatiaLite 및 ESRI Personal 지오 데이터베이스를 가지고 노는 것을 좋아합니다. 웹 개발이나 웹 GIS를 한 번도 해 본 적이 없지만 배우고 싶습니다.

어제 일부에서 훌륭한 OpenGeo 튜토리얼을 살펴 보았습니다 . 이 방법은 유망 해 보이며 적어도 웹 사이트에 데이터를 표시하는 방법을 알 수 있습니다. 덜 분명한 것은 사용자가 데이터베이스를 쿼리하고 결과를 다시 얻는 방법입니다.

내 질문 : 이런 프로젝트를 위해 어떤 종류의 소프트웨어 구조를 생각해야합니까? 예 :

PostGIS + GeoServer + Something else?

조사해야 할 다른 옵션은 무엇입니까?

간단하지만 기능적인 솔루션이 처음에 선호 될 것입니다. 기본 프로토 타입을 구성 할 수 있으면이를 사용하여 "적절하게"수행하는 방법을 배우는 데 더 많은 시간을 할애 할 수 있습니다. 혜택을 증명할 수있을 때까지 예산이 없기 때문에 오픈 소스도 요구 사항입니다.

매우 감사합니다!


2
지도를 생략하면 Apache 및 PHP만으로도이 모든 작업을 수행 할 수 있습니다. PostGIS에서 데이터를 가져 오는 PHP 스크립트 용 입력 양식 하나만 작성하면됩니다. (. 당신은 파이썬과 PHP를 대체 할 수 있습니다) ...하지만 다음이 GIS.SE에 대한 질문이되지 않을 것
언더 다크

응답 한 모든 사람에게 대단히 감사합니다! 이것들은 모두 유용한 답변이며 후속 조치를 많이 받았습니다. 나는 그것들을 모두 "수락"하고 싶지만, 그의 마지막 단락이 매우 유용하고 web.py를 보지 못했을 때 @canisrufus에 포인트를주었습니다. GeoDango도 멋져 보입니다. 건배!
JamesS

@ jamesS 나는 마지막 단락을 확장하려고했지만 주제에서 정당하지 않은 것처럼 보였습니다. 궁금한 점이 있거나 설정 방법에 대한 독백이 더 길다면 여기에서 채팅을 할 수 있습니다.
canisrufus

@JamesS 그것에 대한 진행 상황이 있습니까? 같은 주제로 작업하면서 방금 Django 프로젝트 개발을 시작했습니다
Luca Moiana

@Luca Moiana 님 안녕하세요. 프로토 타입으로 web.py, Apache 및 PostGIS를 사용하여 아래의 답변에 나와있는 조언을 따랐습니다 (그러나 웹 사이트에는 결국지도가 포함되지 않았습니다). 몇 년 후, 우리는 CUAHSI Hydrological Information System을 채택했습니다 . 약간의 설정이 필요하지만 환경 데이터의 저장, 검색, 탐색, 분석 및 시각화를위한 광범위한 도구를 제공합니다.
JamesS

답변:


13

파이썬과 SQL에 대한 길을 이미 알고 있다면 파이썬 웹 프레임 워크를 사용하여 웹 사이트를 구축하는 것은 그리 어렵지 않습니다. cherry.py와 web.py라는 두 가지 간단한 것들이 떠 오릅니다. Django의 객체 관계형 매퍼에 대한 길을 배우는 것이 가치있는 것보다 더 많은 일이라고 생각합니다.

Python에는 psycopg2라는 라이브러리 (http://initd.org/psycopg/ 및 자습서 : http://wiki.postgresql.org/wiki/Psycopg2_Tutorial )가있어 PostGRESQL / PostGIS에 대해 쿼리를 쉽게 실행할 수 있습니다. 또한 CSV 모듈 (http://docs.python.org/library/csv.html)을 사용하여 해당 쿼리에서 CSV를 쉽게 만들 수 있습니다.

다른 사람들이 말했듯이 프런트 엔드에서지도를 만들면 복잡성이 커집니다. 맵을 표시하려면 OpenLayers와 같은 것이 필요하고 데이터베이스 (또는 다른 데이터 소스)에서 맵 이미지를 작성하려면 MapServer 또는 GeoServer와 같은 것이 필요합니다. 아마도 두 번째 단계로 더 나을 것입니다.

지금은 "모두"필요한 것 하나의 웹 페이지 인 것 같습니다. 원하는 쿼리 매개 변수를 선택할 수있는 양식입니다. 그들은 "제출"을 누르고 쿼리 매개 변수가 서버로 전송됩니다 (Apache가 좋은 선택입니다). 그러면 스크립트를 실행하여 데이터베이스를 쿼리하고 적절한 CSV 파일을 생성하여 브라우저로 반환합니다. 파이처럼 쉬움;)


2
이미지를 생성하기 위해 MapServer / GeoServer가 필요하지 않습니다. PostGIS에서 직접 데이터를 가져와 맵에 벡터 데이터로 표시 할 수 있습니다. 그러나 데이터의 복잡성에 따라 상당한 양의 데이터를 전송할 수 있습니다. 상황에 따라 다릅니다. 또한 벡터 데이터로 표시하면 개체를 클릭하여 데이터를 표시 / 편집 할 수있는 옵션이 제공됩니다.
Mr_Chimp

@mr_chimp 아, 좋은 지적입니다. 내 관심사는 배경 레이어 였지만 Google지도 또는 OSM 등을 사용할 수 있습니다. 실제로 벡터 레이어는 일반적으로 사용자에게 더 좋은 솔루션이라고 생각하지만 제한 사항이 있습니다. 물론 벡터를 전송하는 가장 간단한 방법은 MapServer 또는 GeoServer와 같은 것을 제공하는 것입니다.;)
canisrufus

항상 그렇듯이 작업에 적합한 도구를 사용하는 경우입니다. JamesS는 이미 PostGIS 데이터베이스를 가지고 있으므로 데이터를 직접 가져올 수도 있습니다. 내가 잊어 버리지 않는 한 MapServer를 설정하거나 추가 단계 일뿐입니다 (물론 가장 빠른 방법 임).
Mr_Chimp

8

지장 고

설정하기가 쉽고 기본 기능이 몇 가지 있습니다. 파이썬이므로 적어도 언어에 익숙합니다. 그것은 당신의 요구에 과잉 일 수 있습니다. 그러나 사이트를 확장하려는 경우 구축 할 성숙한 프레임 워크가 있습니다.


5

지도를 만들고 싶지 않거나 필요로하는 경우 웹 서버 및 프로그래밍 언어 (필자는 Apache를 사용하고 설정하기 쉽지만 다른 옵션이 있기 때문에 선호합니다)와 PostGIS 또는 다른 데이터베이스가있는 Postgres 만 있으면됩니다.

Excel 파일의 형식이 양호하면 데이터를 데이터베이스로 가져 오는 것이 간단해야합니다. INSERT 문을 생성 할 수있는 스크립트를 작성할 수 있습니다. 설명하는 쿼리는 관리하기 쉬운 것처럼 들립니다.

매핑 부분을 수행하려는 경우 Apache, GeoServer 및 OpenLayers는 간단하고 무료 솔루션입니다. GeoServer (알다시피)는 PostGIS for WMS 또는 기타 출력 형식을 쉽게 사용할 수 있습니다. PostGIS에 연결하는 저장소를 추가 한 다음 PostGIS의 테이블에서 레이어를 추가하기 만하면됩니다.

당신이 볼 수있는 다른 무료 매핑 도구는 Mapserver와 MapGuide입니다. MapGuide Open Source는 매우 멋진 작업을 수행하지만 더 복잡하고 설명서는 약간 뒤떨어져 있습니다.

MySQL은 또한 Spatial 확장 기능을 가지고 있지만 PostGIS가 수행하는 공간 기능은 많지 않습니다.

파이썬에 익숙하다면 GeoDjango를 볼 것입니다 ... 개인적으로 그것에 대해 많이 알지 못하지만 좋은 소식을 들었습니다.


4

비교적 최근의 컴퓨터 과학 논문 MSC에서 Google지도 및 시공간 데이터베이스 PostgreSQL / PostGIS를 기반으로 한 환경 웹 매핑 응용 프로그램을위한 완전히 문서화 된 소스 코드에 이르기까지 웹 매핑 응용 프로그램 설계 및 개발 문제에 대한 개요를 찾을 수 있습니다. " 시공간 환경 벡터 데이터 관리, 분석 및 전달을 다루는 프로토 타입의 설계 및 개발 오픈 소스 기술을 사용합니다. 해안 지역의 지하수 관리에 중점을 둔 일반 프레임 워크 및 사례 연구 "

논문은 http://www.giscience.it/it/pdf/DissertationMscComputerScience_CrestazEzio_Supervisors.pdf 에서 다운로드 할 수 있습니다 .

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