본문 바로가기

프로그래밍

(10)
[OpenLayers] GeoServer Request 414 에러(URI Too Long) 이전 포스팅에 올렸던 버퍼를 이용한 반경검색 기능을 테스트 하던중 414에러가 발생했다. RequestURL이 길면 얼마나 길다고.. 하면서 가보니.. 현재 기능에서 해당 에러가 발생한 원인은 CQL_FILTER를 적용하면서 도형정보(POLYGON(coord1,coord2.....))가 입력되는데 도형의 좌표값들이 많아지다 보면 URL의 최대값을 넘어버리는 경우가 생기는 모양이었다. 기존코드 // ※참고 : param에 들어있는 정보 //var param = { //radius//반경 정보(100m) //bufferFeature_WTK//POLYGON() 객체 정보 //lyrId//검색할 레이어ID(GeoSever에 발행되어있는 레이어 ID) //style//레이어 스타일정보 //} function se..
[OpenLayers] geoServer CQL_FILTER를 활용한 폴리곤 버퍼검색(WITHIN, INTERSECTS) 이전 포스팅에서는 기준점을 기준으로 반경 검색을 하는 것에 대해 알아보았다. 이번에 시도할 기능은 면(POLYGON)에 대한 일정 거리의 버퍼를 부여해서 이 버퍼에 걸리는 Feature들을 검색해 볼 것이다. BUFFER생성 일단 해당 레이어에 대한 버퍼를 만들어준다. 여러 방법이 있겠지만 필자는 JSTS라이브러리를 활용했다. //JSTS를 활용해 Buffer Feature 생성 //필요한 파라미터 : feature, radius //피처 geometry 파싱 var parser = new jsts.io.OL3Parser(); var jstsGeom = parser.read(feature.getGeometry()); //버퍼 geometry 생성 var buffered = jstsGeom.buffer(r..
[OpenLayers] geoServer CQL_FILTER를 활용한 반경검색(DWITHIN) 프로젝트중에 레이어에 대해서 반경에 걸리는 Feature를 찾아야 하는 기능이 필요했다. 원래는 OpenLayers api중 intersectsCoordinate 기능으로 구현 했었지만 전체레이어 Feature수가 많은 레이어에서 수행할 경우 느려지는 이슈가 발생하기도 하고 필요없는 레이어가 보이기도 했다. 그래서 기존 레이어를 활용하는 것이 아닌 geosever에서 필요한 범위만 검색해서 인스턴트 레이어를 생성해 뿌려주는 방법으로 수정방향을 잡았다. DWITHIN 일반적인 geoserver 요청 url 형식에 뒤에 DWITHIN을 이용한 cql_filter 하나만 적용시켜주었다. DWITHIN(geom_col,POINT(x y),radius,unit) //geom_col : 레이어 geometry 스키..
[Node.js] Express와 Vue 연동 Express 프레임워크는 코드의 양도 줄여주고 추후 유지보수가 쉽기 때문에 Node를 사용하는 대다수가 사용할 정도로 대중적이고 인기가 가장 많다. Vue는 사용자의 인터페이스를 만들기 위해 사용하는 자바스크립트 프레임워크로 프론트엔드쪽에서 사용하는 프론트엔드라고 생각하면 편할 것 같다. 만약 Express나 Node에 대한 문법이나 이론같은건 생활코딩같은 사이트에서 가볍게라도 공부를 하고 오는 편이 좋다고 생각한다. 생활코딩 Express 사이트 opentutorials.org/course/3370 Node.js - Express - 생활코딩 수업소개 이 수업은 Node.js의 대표 웹프래임워크인 Express를 이용해서 웹애플리케이션을 구현하는 방법에 대한 수업입니다. 수업대상 코드가 복잡해지면 점..
[Node.js] 설치 및 실행 일에 치여 먼지 쌓인 블로그에 추석연휴라는 빛이 들어와 포스팅을 할 수 있게 되었다. Java 기반의 프로젝트만 하다가 Node를 사용한 프로젝트를 진행하게 됨에 따라 급하게 공부를 했다. 시간이 된다면 Express + Vue + MySql 연동까지 포스팅을 다뤄보고 싶지만 일단은 욕심부리지 말고 천천히 포스팅을 올리도록 하겠다. 1. 설치파일 다운로드 구글에 nodejs를 검색해서 nodejs 공식 홈페이지에 들어가거나 아래 링크를 통해 접속한다. nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 그러면 해당화면을 마주하게 될텐데 우리는 LTS로 실행을 할 예정..
[Python]파이썬 조건문(if문) 기본 예제 및 비교 연산자 이번 포스팅은 코딩에서 빠질 수 없는 조건문에 대한 포스팅이다. 알고리즘이나 비즈니스 로직을 설계할 때 조건에 따라 코드를 분기시켜야 할 경우에 많이 사용되기 때문에 기본부터 탄탄히 알아둘 필요가 있다. 1.비교연산자 조건문을 작성하기 위해서는 파이썬에서 사용되는 비교 연산자를 알아둬야 할 필요가 있다. 아래는 비교연산자를 나열한 목록이다. 기호 설명 예 결과 왼쪽의 값이 오른쪽 값보다 크면 True, 그렇지 않으면 False 1 > 2 False 2 False == 양쪽의 값이 서로 같으면 True, 그렇지 않으면 False 1 == 2 False != 양쪽의 값이 서로 다르면 True, 그렇지 않으면 False 1 != 2 True 2. if #if문 기본형태 if [조건] : [실행할구문] if 문..
[Python]파이썬 반복문(for문) 기본 예제 반복문은 동일한 문장을 반복함으로써 코드의 양을 줄이고 코드의 흐름을 파악하기 쉬워진다는 장점이 있다. 파이썬은 두 가지 종류의 반복문이 있는데, 하나는 for, 다른 하나는 while이다. 똑같은 반복문이지만 보통 횟수가 정해졌을 때는 for를, 조건이 정해졌을 때는 while을 사용한다. 이번 포스팅에선 두 가지 반복문 중 for에 대해 다뤄볼 예정이다. 1.for문 기본 형태 일단 for문의 기본형부터 알아보자. for~in 뒤에 콜론(:)이 붙는다는점에 유의하자. #for문 기본형태 for [변수명] in [반복 범위]: [실행할명령어] 2. 리스트를 활용한 for문 #리스트를 활용한 for문 weeks = ['월','화','수','목','금','토','일'] for week in weeks: p..
[Python]파이썬 연산 기능(+,-,*,/ 등) 이번 포스팅은 파이썬의 연산기능에 대해 정리해 보았다. 생각보다 간단하면서도 잘 몰랐던 연산자와 의외의 기능도 있어서 한꺼번에 정리한다. 1.사칙연산(+, -, *, /) # 덧셈(1 + 2 = 3) print(1 + 2) # 뺄셈(3 - 2 = 1) print(3 - 2) # 곱셈(2 * 5 = 10) print(2 * 5) # 나눗셈(10 / 5 = 2.0) print(10 / 5) 가장 기본적인 사칙연산 이다. + : 더하기 - : 빼기 * : 곱하기 / : 나누기(실수) 주의할 점은 파이썬에서 나눗셈(/)의 결과는 정수가 아닌 실수라는 것 정도만 알면 될 것 같다. 2.제곱,몫,나머지(**, //, %) #제곱연산(6 ** 2 = 36) print(6 ** 2) #몫 가져오기(10 // 3 = 3..