본문 바로가기

dev/gis

(9)
GeoServer SQL 파라미터 GeoServer SQL에 파라미터 전달하는 방법입니다. SQL 구문에 % 파라미터명%으로 추가하고 새로운 파라미터 생성을 선택한 다음 이름과 기본값, 정규 표현식을 작성하고 저장 버튼을 클릭합니다. 그리고 해당 레이어 url에 "&viewparams=파라미터명:값"을 추가합니다. 위 화면은 경기도 면적 레이어 화면으로 파라미터가 잘 적용된 것을 확인할 수 있습니다. 파라미터가 2개 이상일 때는 ;으로 구분지어서 보내면 됩니다. ex) viewparms=a:1;b:2;c:3
GeoServer DB 연계 GeoServer와 DB 연계하는 방법입니다. GeoServer에 접속해서 작업공간을 선택합니다. 새로운 작업공간 추가하기 선택합니다. Name과 네임스페이스 URI 입력하고 제출 버튼 클릭합니다. 작업공간이 생성되었는지 확인하고 저장소를 클릭합니다. 새로운 저장소 생성하기 선택합니다. PostGIS 선택합니다. 기본 저장소 정보에서 앞에서 생성한 작업공간 선택하고 데이터 저장소 이름, 설명 입력합니다. 연결 파라미터에 연계할 DB 접속 정보 입력합니다. 저장버튼 클릭합니다. 새로운 SQL 뷰 설정하기 선택합니다. 뷰 이름 입력하고 SQL 구문에 쿼리를 작성하고 저장 버튼 클릭합니다. 쿼리 where절에 MBR 설정 안 해도 해당 지도 영역에 맞게 쿼리 조회합니다. 정의한 좌표체계는 작성한 쿼리의 좌표계..
tomcat geoserver.war 설치 이전에 올린 GeoServer 설치하는 방법 말고 tomcat에 geoserver.war 파일을 올려서 설치할 수 있습니다. 먼저 geoserver.war 파일 다운로드 화면으로 접속합니다. 설치하려는 버전을 선택해서 geoserver.war 파일을 다운받고 ftp로 리눅스 서버 tomcat에 올립니다. 그리고 tomcat 기본 포트는 8080이기 때문에 다른 포트로 변경합니다. 8088로 포트를 변경했습니다. 그리고 8088 포트를 개방합니다. tomcat의 bin/startup.sh을 실행하면 설치가 완료됩니다. GeoServer에 접속했을 때 위와 같이 화면이 확인되면 정상적으로 설치된 것입니다. GeoServer 디폴트 아이디/패스워드는 admin/geoserver입니다. 아래 링크는 GeoSer..
chart map svg 코로나 라이브 페이지에 접속하면 다음과 같은 화면을 볼 수 있습니다. 화면의 지도는 네이버 지도나 카카오 지도가 아닌 차트 라이브러리로 그릴 수 있습니다. 차트 라이브러리는 많은데 그중에 저는 D3 라이브러리로 그려보겠습니다. 예제 코드를 보면 첫번째 블럭은 지도를 그리기 위한 초기 정보를 세팅하고 있습니다. (지도 svg 대상 엘리먼트, 배경 색상, 지도 오프셋, 지도 스케일, 중심 좌표) 두번째 블럭은 광역단위 지도 좌표 데이터입니다. (광역단위 좌표 데이터 및 표출 색상) 세번째 블럭은 실제 지도를 그리고 있습니다. 앞에서 작성한 대로 잘 표출되고 있습니다. 딱히 어렵지 않아서 금방 개발할 수 있습니다. 참고 필요하시면 예제 파일 다운받으시면 됩니다.
leaflet custom popup leaflet으로 팝업 표출할 때 따로 커스텀해야 할 때가 있습니다. 위의 소스를 간단히 설명하면 팝업에 들어갈 내용을 문자열로 작성하고 leaflet 팝업 객체에 해당 내용을 추가하고 지도위에 표출하고 있습니다.
leaflet 지도 표출 gis 개발자라면 leaflet에 대해 아실겁니다. 쉽게 얘기해서 leaflet은 웹 화면에 지도 이미지를 표출하기 위한 자바스크립트 라이브러리입니다. 이번에 포스팅하는 글은 leaflet을 사용해 간단하게 배경지도를 출력하는 것입니다. 위의 소스를 보게 되면 지도 중심 좌표(남산타워)를 배열로 생성합니다. (위도가 먼저 나오고, 경도가 그 다음으로 나옵니다.) leaflet Map 클래스 객체를 생성하고 중심 좌표를 초기 지도 위치로 설정합니다. 배경지도 표출 및 leaflet Map 객체에 추가합니다. 마커위치를 중심좌표로 설정하고 leaflet Map 객체에 추가합니다. 초기 지도위치와 마커가 중심좌표(남산타워) 기준으로 표출된 것을 확인할 수 있습니다. 예제파일이 필요하면 아래 첨부파일 다운받으면..
leaflet popup not working leaflet 버그 중에 마커에 bindPopup 이벤트를 걸었는데 팝업이 보이지 않을 때가 있습니다. 구글링을 해본 결과 leaflet의 Popup.js를 수정해야 해결되는 문제인 거 같아 저는 다른 방법으로 해결했습니다. (라이브러리를 건드리는 건 또 다른 버그가 나타날 수 있기 때문에...) ==================================================== m.on("click", function(e){ //마커 클릭 시 팝업 표출(ios 버그) m.openPopup(); }); ==================================================== 위의 소스를 보게 되면 "m"이라는 마커에 클릭 이벤트 핸들러를 걸어서 클릭이 되면 팝업을 강제로 ..
GeoServer 레이어 추가 최근에 레이어를 1000개 이상 등록해야 될 일이 있어서 어떻게 등록해야 하나 고민하고 있었는데 geoserver-manager.jar 파일을 이용해서 쉽게 해결했습니다. 소스를 간략히 설명드리면 GeoServer에 접속할 수 있는 GeoServerRESTPublisher의 객체를 생성하여 (17라인) GeoServerRESTPublisher 객체의 publishExternalGeoTIFF 메소드를 사용하면 등록할 수 있습니다. (34라인) publishExternalGeoTIFF 메소드의 각각의 파라미터들에 설명드리겠습니다. 첫 번째 파라미터는 작업공간 두 번째 파라미터는 저장소 세 번째 파라미터는 tiff파일 객체 네 번째 파라미터는 레이어 이름 다섯 번째 파라미터는 좌표계 여섯 번째 파라미터는 레이..