전단지에 Postgis의 지리 데이터를 표시하는 가장 일반적인 방법은 무엇입니까?


18

예를 들어, 내 데이터베이스에는 지리적 좌표가있는 점이 있습니다. Leaflet JS 레이어에 표시하고 싶습니다. 어떤 도구를 사용해야합니까? 어쩌면 API가있을 수 있습니다 ...


GIS SE에 오신 것을 환영합니다? 귀하의 질문은 "리플릿을 사용하여 PostGIS 포인트를 표시하는 방법"입니까? 그렇다면이 문맥에서 "악기"의 의미가 확실하지 않기 때문에 질문을보다 명확하게 편집 할 수 있습니다.
PolyGeo

답변:


22

데이터베이스에서 웹 브라우저로 데이터를 가져 오려면 서버 측 스크립트를 사용해야합니다. SQL 삽입과 같은 취약점을 알고 있어야하므로 까다로울 수 있습니다. 주의해야 할 몇 가지 모범 사례는 매개 변수화 된 쿼리를 사용하고 공개하려는 테이블에 대한 읽기 권한 만 가지고 데이터베이스 사용자에게 권한이 없는지 확인해야한다는 것입니다.

데이터베이스에 대한 API 액세스 권한을 얻는 쉬운 방법은 GeoServer와 같은 소프트웨어를 사용하는 것이지만 잠재적으로 작은 문제에 사용할 수있는 매우 큰 응용 프로그램입니다.

또 다른 방법은 데이터가 얼마나 자주 변경되는지에 따라 서버 측 스크립트가 주기적으로 GeoJSON 파일로 데이터를 덤프하도록하는 것입니다. 이는 매시간, 매일, 매주가 될 수 있습니다. 파일을 쓰는 동안 웹 사이트가 작동하지 않을 수 있습니다.

또 다른 방법은 PHP 또는 Python을 CGI 스크립트로 사용하여 자체 API를 작성하는 것입니다.

예 :

: 당신은 GeoJSON은, 동적 또는 정적 여부, 당신이 리플릿 사용하여 매우 쉽게로드 할 수 있습니다 일단 http://leafletjs.com/examples/geojson.html을 .


1
대답 해줘서 고마워요. GeoJSON을 사용하도록 기울였습니다. 이제 Postgis 대신 CSV 파일을 사용하여 geoJSON으로 변환 한 다음 Leaflet으로 데이터를 표시하려고합니다.
John Smith

1
읽기 ogr2ogr 후 사용 CSV를 geoJSON로 쉽게 변환
호르헤 펠레

1
데이터가 너무 커서 JSON으로로드하는 데 너무 오래 걸리면 TopoJSON을 살펴보십시오. github.com/mbostock/topojson
Alex Leith

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