OpenLayers에 PostGIS 벡터를 표시하기위한 옵션


22

나는 웹 매핑에 매우 익숙하지 않으므로이 질문은 약간 잘못 안내 될 수 있습니다.

현재 PostGIS에있는 많은 점과 다각형 테이블을 표시 할 수있는 OpenLayers (또는 더 쉬운 경우 Google지도)를 사용하여 매우 간단한 웹 인터페이스를 원합니다.

가능한 한 간단하고 유지 보수가 적기를 원합니다.

  • 타일을 만들거나 (이유가 좋은 경우가 아니라면) 복잡한 복잡한 미들웨어 계층을 갖고 싶지 않습니다.
  • 내부 용이므로 성능을 크게 향상시킬 필요가 없으므로 두 명의 동시 사용자 이상으로 확장 할 필요가 없습니다.
  • 벡터 레이어의 스타일링은 최소한으로 중요합니다.
  • 예산이 거의 없기 때문에 오픈 소스 도구가 훨씬 선호됩니다.

이에 대한 권장 방법은 무엇입니까?

답변:


14

PostGIS 소스에서 온라인 맵을 설정하는 가장 쉬운 방법은 Geoserver를 사용하는 것입니다. Geoserver 사용자 매뉴얼에는 PostGIS를 데이터 소스로 사용하기위한 좋은 소개 가 포함되어 있습니다 . 기본적으로 연결 정보가 포함 된 데이터 저장소를 추가 한 후 지오메트리가 포함 된 테이블을 공개 할 수 있습니다. PostGIS 외에도 많은 다른 데이터 소스도 사용할 수 있습니다.

대체 텍스트

Geoserver의 웹 인터페이스에서 OpenLayers 웹 페이지의 레이어를 미리 볼 수도 있습니다. 이 미리보기 페이지의 소스를 사용하여 자신 만의 OpenLayers 애플리케이션을 구축 할 수 있습니다.

Geoserver는 벡터 및 래스터 데이터 모두에 대해 다양한 스타일링 옵션을 제공합니다. 처음에는 설치와 함께 제공되는 사전 제작 된 스타일 중 일부만 사용자 정의하면 만족할 것입니다.

기본적으로 Geoserver는 타일링하지 않으며 OpenLayers는 타일을 요청하지 않습니다. 고성능이 필요하지 않으면 어쨌든 타일을 신경 쓰지 않아도됩니다.

개인적으로 OpenLayers는 Google Maps API보다 사용하기 쉬우 며 Google과는 무관하다고 생각합니다. 백그라운드 맵이 필요한 경우 OpenStreetMap을 대신 살펴볼 수 있습니다.


8

큰 미들웨어 계층을 원하지 않으면 TinyOWS ( http://tinyows.org/trac )를 사용할 수 있습니다. 시도한 적이 없지만 작고 빠릅니다. 또한 OGC 표준을 사용하므로 더 많은 사용자에게 게시하기로 결정하고 GeoServer로 계속 전환 할 수없는 경우 MapServer를 사용하면 변경없이 동일한 클라이언트 코드를 계속 사용할 수 있습니다.


아 그래, tinyOWS를 잊어 버렸고, 구성하기가 약간 어려워
보였으며

질문은 postgis에 대해서만 질문했습니다
Ian Turton

6

서버 WFS 프로토콜이 가능한 모든 응용 프로그램을 사용할 수 있습니다. Openlayers를 사용하면 WFS 프로토콜을 통해 PostGIS 데이터를 쉽게 사용할 수 있습니다. 이를 수행 할 수있는 FLOSS 응용 프로그램은 거의 없습니다. 예를 들어 FeatureServer , Geoserver , MapServer ... 웹 매핑을 처음 사용하는 경우 시작하기가 매우 쉽기 때문에 Geoserver를 권장합니다.

WFS와 함께이 Openlayers 예제를 참조하십시오 .


마지막 링크가 끊어졌습니다.
Adam Matan

1
나는 그들 모두를 시도하고 작동합니다. 어쩌면 마지막 하나는 일시적으로 다운되었을 수 있습니다.
Mario Miler

4

Openlayers는 OpenLayers Vector 레이어를 사용하여 표시하고 스타일을 지정할 수있는 수많은 벡터 데이터 형식 (GeoJSON, GML, KML ..)을 지원합니다.

아마도 가장 단순한 미들웨어는 PostGIS 데이터를 대부분의 OL 지원 형식으로 제공 할 수있는 FeatureServer 일 수 있습니다. 설정이 쉽고 간단한 공간 / 속성 쿼리를 지원합니다.

그러나 더 강력한 무언가가 필요한 경우 지오 서버 는 실행 가능한 솔루션이 될 수 있습니다.


mapserver에 대한 사랑이 없습니다 :(
dassouki

1
실제로 맵 서버 우리가 : 브레이크까지했다, 그래서 우리는 단지, 많은 싸움 시작 ... 내 첫 사랑 2001의 주위에 날짜가 기입 된 곳 이었지만
dodobas

따라서 openlayers에 geojson / gml / kml에 대한 URL을 제공하면 렌더링 할 수 있습니까?
fmark

1
예, 그러나 간단한 경계 상자로도 필터링이 필요한 경우 WFS를 사용해야하는 것보다
dodobas

4

PHP 또는 JSP 서버 스크립트의 경우 st_asgeojson (), st_asKML ()과 같은 postgis에서 json, kml amd wkt를 피드 한 다음 서버에서 데이터 소스를 연결하기 위해 openlayers ajax 클래스를 사용할 수 있습니다


현재 사용 사례에 가장 적합하다고 생각합니다. 속도가 너무 느리면 TinyOWS와 다른 중장비 맵 서버를 사용해 보겠습니다. geojson / kml / wkt를 반환하는 PHP 스크립트가 있다고 가정하면 openlayers 측에 코드 예제를 제공 할 수 있습니까?
fmark

@ chaipat : 예제가 있습니까 (php 스크립트 및 해당 openlayers 스 니펫)?
underdark

2

Hibernate 또는 Geotools를 사용하여 데이터베이스에서 데이터를 읽는 Geomajas를 사용하여이를 쉽게 수행 할 수 있습니다. 이것은 모든 Java이며 다른 언어를 선호하는 경우 문제가 될 수 있습니다.


1

OpenLayers 라이브러리와 서버 언어를 사용하여 모든 postgis 지오메트리 유형을 Openlayers로 푸시하는 것이 좋습니다. 필요한 것 :

  • 데이터를 벡터로 만들 레이어를 만드는 Openlayers.Layer.Vector
  • Postgis 서버에서 데이터를 읽는 OpenLayers OpenLayers.Protocol.HTTP
  • OpenLayers.Strategy.Fixed 옵션
  • OpenLayers.Feature.Vector 모든 벡터는 클라이언트에서이 클래스에서 시작됩니다.
  • OpenLayers.Format.GeoJSON 또는 OpenLayers.Format.JSON
  • Postgis에 요청하고 클라이언트에 지오메트리를 펌핑하는 서버 측 언어
  • 이 형식으로 데이터를 전송하기위한 서버 및 클라이언트의 JSON 파서

이를 통해 더 이상 미들웨어없이 쉽게 표시 할 수 있습니다.

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