OpenLayers를 PostGIS 데이터에 연결하는 방법?


10

OpenLayers에서 KML, GeoJSON 등 벡터 파일을로드하는 방법을 OpenLayers에서 읽었습니다. 그러나 PostGIS 데이터에 어떻게 연결할 수 있습니까? 그렇지 않은 경우 왜 WebServices를 사용하여 데이터를 직접 넣는 대신 PostGIS에 데이터를 업로드해야합니까? 아무것도 빠졌습니까?

그리고이 벡터 데이터를로드하여 기능을 클릭하여 속성을 볼 수 있습니다. 나중에 쿼리를 활성화하고 싶기 때문에 PostGIS가 필요합니다. PostGIS와 같은 데이터베이스를 유지해야만 가능하다고 생각합니다. 그러나 OpenLayers를 어떻게 사용합니까?

OpenLayers Beginner 's Guide를 읽었지만 어디에도 언급되어 있지 않습니다. 도와주세요!!

답변:


26

안타깝게도 보안 문제로 인해 웹 페이지를 데이터베이스에 직접 연결할 수 없습니다. 일반적으로이 둘을 결합하려면 미들웨어가 필요합니다.

예를 들어 Open Source 소프트웨어를 사용하려는 경우 GeoServer를 지리적 서버로 쉽게 사용하여 PostGIS 데이터베이스에서 OpenLayers HTML 웹 페이지로 데이터를 제공 할 수 있습니다.

이것이 좋은 이유는 GeoServer가 표준 방식으로 OGC WMS (Web Map Server) 또는 WFS (Web Feature Service)로 데이터를 제공하고 OpenLayers 및 기타 여러 API (ESRI, Leaflet 등) 및 기타 데스크탑에서 모두 이해하기 때문입니다. GIS 소프트웨어 (ESRI, MapInfo, QGIS, uDig 등)

따라서 GeoServer를 PostGIS에 연결 한 다음 데이터를 제공하는 방법을 안내하는 GeoServer 설명서 시작을 살펴 보겠습니다.

http://docs.geoserver.org/stable/en/user/gettingstarted/index.html

이런 종류의 것들을 처음 접한다면 OpenGeo 튜토리얼보다 더 좋은 곳은 없습니다.

http://workshops.opengeo.org/

PostGIS에있는 데이터를 확실히 고수합니다.

a) 데이터가 많음 b) 쿼리를 실행하고 싶을 때 c) 많은 사람이 앱을 사용하려는 경우

쿼리를 실행하려는 경우 WPS (Web Processing Services)를 살펴보면 여전히 "새"이지만 GeoServer에서 지원됩니다.

그러나 적은 양의 데이터가 있고 쿼리를 사전 실행 한 다음 OpenLayers를 사용하여 표시하려면 플랫 파일에서 GeoJSON을 사용하거나 D3 자바 스크립트 라이브러리에서 인기를 얻고있는 TopoJSON을 살펴보십시오. http://bost.ocks.org/mike/map/ 참조 Mike Bostock의 튜토리얼은 훌륭합니다.

희망이 도움이


14

두 가지를 연결하는 한 가지 방법은 GeoJSON을 사용하는 것입니다. 다음은 PostGIS 데이터베이스의 쿼리 예입니다.

SELECT population,ST_AsGeoJSON(geom) FROM censusblocks

쿼리 결과를 얻으면 다음과 같이 할 수 있습니다.

       var geojson_format = new OpenLayers.Format.GeoJSON();
       var vector_layer = new OpenLayers.Layer.Vector(); 
       map.addLayer(vector_layer);
       vector_layer.addFeatures(geojson_format.read(featurecollection));

featurecollectionPostGIS 쿼리 결과는 어디에 있습니까 ?

GeoJSON이 매우 복잡한 경우로드 / 렌더링 문제가있을 수 있습니다.

이 기술에 대한 자세한 내용은이 OpenLayers 예제 소스를 참조하십시오.


3

GeoServer없이 PostGis를 Openlayers 3/4와 함께 사용합니다. 내가 선택한 방법은 내가 호출하는 함수를 통해 Postgis 데이터베이스에서 geojson을 가져 오는 것입니다.이 기능은 내 설정에 따라 데이터와 스타일을 반환합니다.

자바 스크립트에서 나는 정의 데이터와 스타일 => 자바 스크립트 기능에서 볼 수있는 데이터가 Openlayers 3. 전체 sripts에 렌더링하는 PostGIS와 => 함수 스타일에서 PIN이 데이터를 GET을 통해 PHP 스크립트를 호출 거기 쉬운 방법에 Openlayers 3에서 Postgis-geojson을 사용합니까?

GET-String을 조작 할 수 있기 때문에이 방법은 안전하지 않은 것 같습니다.하지만 https를 통한 호출을 사용하고 서버 측 php-script는 세션이 설정되어 있는지 확인합니다. 따라서 로그인하지 않고 스크립트를 실행할 수 없습니다. 우리는 이것을 매우 작은 그룹에서 사용하지만 많은 사람들이 데이터에 액세스하는 환경에서는 좋지 않을 수 있습니다.

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