Cute Happy Ghost
본문 바로가기
728x90
SMALL

전체 글405

[QGIS, geoserver] 간단하게 point 레이어 올려보기, 변수(parameter)설정하여 레이어 불러오기 웹에 올리고싶은 shp파일을 qgis에 뿌려주면 이렇게 딱 나온다! 얘를 저장해준다 DB관리자-> PostGIs->db선택 ->스키마선택 -> 레이어/파일 불러오기 이렇게 설정해준다 나는 인코딩이 자동설정이 되어있어서 따로 설정은 안해주겠다! 그러면 DB에 가보면 geom을 포함하여 테이블이 생성되어있을 것이다. 레이어 추가해서 원하는 레이어 발행해준다 하지만 나는 sql뷰로 발행하는 편이다 이런식으로 파라미터를 설정할 수 있기때문! 그리고 바로 id값을 발행해주기때문에 편하다 필요없으면 바로 발행해줘도 상관없다 layer올리는 소스 param이 필요없다면 viewparams을 삭제해도 상관없다 test_layer = new ol.layer.Image({ source : new ol.source.Imag.. 2022. 6. 21.
[postgis] ST_EXTENT 함수로 경계값(BBOX)찾기, ST_AsGeoJSON활용해 BBOX값 가져오기, openlayers에서 ST_EXTENT활용하기(parameter있을 때) 처음에 영역을 잡아주기 위해 ST_EXTENT라는 함수를 활용하려했지만 아래와 같이 BOX(..)로 떴다 그래서 스크립트단에서 BOX를 빼고 ,를 추가해보았지만 잘리지않았다..ㅎㅎ JAVA단에서도 잘라보았지만 잘리긴하지만 좌표변환을 할때 이상한 숫자로 변환이됐다(아마 좌표로 인식하지못한듯) 쿼리에서도 잘라보았지만 max값은 변환이 되나 min값을 변환이되지않았다 심지어 변환된 max값도 이상한 좌표를 반환했다 ..ㅜ BOX(126.88203089594275 37.57600491611421,126.96332878726157 37.65921538593538) 그래서 어쩔 수 없이 ST_XMax...등을 사용하여 각 extent값을 가져와서 아래와 같이 설정을 했다 하지만 데이터가 많을수록 쿼리가 느려지고 S.. 2022. 6. 21.
[geoserver, openlayers] 지도에서 클릭한 feature의 값 가져오기, openlayers클릭 이벤트 지도 클릭 이벤트는 map.on('singleclick', function(evt) {...}를 사용하면 된다 나는 그 안에 맵의 pixel정보들을 확인해서 layer와 coordinate를 넘겨주었다 viesResolution을 가져오고, url도 설정해준다 feature의 정보를 알고싶을 때는 layer.getSource().getGetFeatureInfoUrl을 쓰면 된다 info-fommat은 text/html도 되지만 난 ajax를 사용해 값을 넘길거니 json형태로 변환해준다 그리고 자꾸 뭔가 xy값을 못가져오길래 xy좌표를 replace해주는 함수도 추가해줬다 해당 url로 넘기면 data.features[0].properties에서 값을 확인할 수 있다 해당 소스 //epsg_cd값 설정 .. 2022. 6. 21.
[geoserver] geoserver의 getcapabilities를 활용하여 bbox영역 설정하기, openlayers extent경계값설정 (parameter없을 때) parameter가 상관이 없으면 아래와 같은 소스를 사용할 수 있다 WMSCapabilities parser를 사용하고 fetch를 이용해 geoserver에서 getcapabilities를 request한다 응답한다면 result값을 변환하고 그 안에 있는 해당 layerId의 EX_GeographicBoundingBox값을 가져온다 (bbox=경계영역의 모서리좌표.. 그런것임...) 이것을 proj의 transformextent함수를 사용하여 원하는 좌표로 변환해준다 나같은 경우는 3857로 변환해주었다 변환된 extent값을 map.getView().fit() 함수에 넣어주면 그 영역대로 설정이 된다 뭔가 자동줌을 하는건 안되고 extent를 구해서 fit해주는 방법이 최선인것 같다 functio.. 2022. 6. 21.
[openlayers,postgis] st_centroid 함수를 이용하여 center 설정하기, postgis에 내장된 st_centroid 함수를 사용해 각 geom의 센터를 구할 수 있다 select st_x(st_centroid(geom)) as st_cent_x, st_y(st_centroid(geom)) as st_cent_y from layer_sgg_edge AND ctprvn_cd = #{ctprvn_cd}::varchar AND sig_cd = #{sig_cd}::varchar ajax를 통해서 값을 가져온 다음 설정좌표대로 transform을 하여 변환해주고 map.getView().setCenter를 사용하여 center을 설정해준다 $.ajax({ url: "/living/getCenterBySgg.do", data: {ctprvn_cd: sidoValue}, dataType .. 2022. 6. 21.
[geoserver] 스타일변경 (배경투명, 폰트 변경), java 폰트 적용 layer_sido_edge #0033cc//배경색노상관 0 //opacity를 0으로 주면됨 #000000 2 //font를 넣으려면 textsymbolizer를 추가해야함 emd_kor_nm NanumSquare ExtraBold 30 0.5 0.5 2 #000000 #FFFFFF 근데 이제 그럼 나눔스퀘어폰트가 있어야겠죠..? jre나 jdk경로로 가서 (ex:C:\JRE\jre1.8.0_281\lib\fonts) 해당 폰트를 넣어줌 이런식으로 그리고 톰캣을 다시 한번구동해주세요 그럼 완료~ 2022. 6. 14.
openlayers와 geoserver활용하여 행정경계 표현(3) - openlayers로 웹에서 지도그려주기 openlayers에서 ol.js와 ol.css를 가져와서 script에 넣어준다 아래는 스크립트에서 같이 설명을 하겠다 //전역변수 설정 var map; var sido_layer; //지오서버 var geoserver_uri; var geoserver_url; var geoserver_wfs_url; /** * */ $(function(){ sido_layer = new ol.layer.Image({ source : new ol.source.ImageWMS({ url : '서버주소/geoserver/저장소이름/wms', //geoserver의 서버주소를 넣어주면됨 params : { 'LAYERS' : '저장소이름:레이어이름', //ex) test:layer1 이런식으로 'STYLES' : '스타일이.. 2022. 6. 14.
openlayers와 geoserver활용하여 행정경계 표현(2) geoserver - DB연결, QGIS활용해 행정경계SHP를 DB에 넣기, geoserver에서 layer발행하기 먼저 작업공간에서 이름과 URI을 추가해준다 저장소 > 새로운 저장소 생성하기 postGIS 클릭 db연결을 해준다. 작업공간과 데이터저장소 이름은 전에 했던 걸로 넣어주기 연결파라미터에 db연결정보를 넣어주면됨 그리고 레이어를 등록해야되는데 나는 qgis를 통해 등록을 하겠다.. 필요한 행정경계레이어는 아래에서 다운로드 http://www.gisdeveloper.co.kr/?p=2332 대한민국 최신 행정구역(SHP) 다운로드 – GIS Developer www.gisdeveloper.co.kr shp파일 넣어주고, qgis에도 db연결이 되어있어야겠지..? 없으면 새연결 눌러서 연결해줌 DB관리자에서 얘를 넣어줄거다 연결한 db의 스키마를 클릭하고 레이어/파일불러오기클릭 해당 레이어를 선택하고 원하는.. 2022. 6. 14.
openlayers와 geoserver활용하여 행정경계 표현(1) geoserver tomcat을 통해 구동하기 내가 최종적으로 만들고싶은 지도! 경기도 부천시 (사용자의 지역)으로 맵이 나오는건데 행정경계별로 잘라서 나누고싶었다 차근차근 정리를 해보겠다 먼저 해당 서버에 geoserver를 설치해준다 https://geoserver.org/ GeoServer GeoServer is an open source server for sharing geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards. geoserver.org stable, maintenance 상관없지만 안정화된 버전을 받아준다 war파일 다운로드 tomcat/**/webapps에 geos.. 2022. 6. 14.
slf4j, lombok, log, log.info error 에러, lombok경로잡기 소스파일을 받았는데 만약 slf4j에 있는 log.info() 이런 것들이 빨간줄쳐지면서 오류가 난다 1.lombok.jar를 다운받아서 넣어주던가 maven dependency를 추가 -> lombok.jar를 실행 이래도 안된다면 경로문제이다eclipse가 있는 경로로 가면 eclipse.ini파일이 있을 것이다 여기에 lombok.jar을 추가하고 파일마지막줄에 -javaagent:C:\Users\User\eGovFrameDev-3.8.0-64bit\eclipse\lombok.jar 이를 추가해주면 됨. 2022. 6. 14.
728x90
LIST