전체 글 140

Shapely #2 WKT 사용 방법

WKT(Well Known Text) 포맷은 이름대로 직관적으로 도형의 정보를 알 수 있는 포맷이다. GEOS에서 소개된 WKT 포맷의 예는 아래와 같다. POINT(0 0) POINT EMPTY LINESTRING(0 0, 0 1, 1 2) LINESTRING EMPTY POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)) POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1)) POLYGON EMPTY MULTIPOINT(0 0, 1 1) GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), POINT(3 4), LINESTRING(2 3, 3 4)) 점(POINT), 선(LINESTRING), 면(POLYGON), 다..

Shapely #1 bounding box 쉽게 만들기

shapely에서 bouding box 쉽게 만들기 # shapely 설치후 box 클래스 import from shapely.geometry import box b = box(0.0, 0.0, 200, 100) print(b.wkt) # print 결과 : POLYGON ((200 0, 200 100, 0 100, 0 0, 200 0)) list(b.exterior.coords) # 결과 : [(200.0, 0.0), (200.0, 100.0), (0.0, 100.0), (0.0, 0.0), (200.0, 0.0)] # 기타 도형의 bounding box로 shapely.geometry.box 폴리곤 만들기 pbox = box(*myPolygon.bounds, ccw=True) ※ shapely 설치 ..

Shapely #0 소개 및 설치 방법

Shapely는 기하학적인 객체의 조작 및 분석을 위한 파이썬 라이브러리입니다. Manipulation and analysis of geometric objects 현재 Github에서 꾸준히 업데이트 관리되고 있습니다. 소개에 따르면 널리 사용하고 있는 오픈 소스 기하학 라이브러리인 GEOS(PostGIS, JTS 등에서 사용)를 사용하고 있다고 합니다. Shapely 2.0 이상 버전을 사용하시려면 Python 은 3.7이상, GEOS는 3.5이상, NumPy는 1.14 이상 버전이 설치되어 있거나 설치하면 됩니다. 설치방법은 간단히 pip install shapely 를 통해 할 수 있고, conda 환경이라면 conda install shapely --channel conda-forge 를 통해서..

Apache OpenOffice - 아파치 오픈 오피스

아파치 오픈 오피스는 이름에서도 알수 있듯이 Microsoft 오피스 계열의 소프트웨어의 오픈 소스 버전입니다. Apache OpenOffice - Official Site - The Free and Open Productivity Suite Udine moves to OpenOffice, will save 360,000 Euro 16 September 2014: The City of Udine, in Italy, announced a process that will lead to the installation of OpenOffice on 900 municipal desktops, saving the city 360,000 Euro. ZDNet's Raffaele Mastrolonardo h www.o..

MapLibre - #7 나만의 맞춤 지도 앱스토어 주소

MapLibre 강좌를 통해 설명드렸던 기능들을 모아 구글 앱 스토어에 올렸습니다. (*2월21일 현재 구글 앱스토어에 등록 심사중입니다) 브이월드에서 받은 API키를 입력하면 아래 영상처럼 오픈 스트리트맵 배경지도 위에 연속지적도를 겹처서 볼 수 있습니다. 한번 입력한 API키는 앱 환경설정(shared preferences)에 저장되어 매번 입력할 필요 없게 했습니다. 만약 유효기간이 지나면 브이월드 API 키 수정 메뉴로 갱신 가능합니다. 연속지적도 뿐 아니라 다양한 정보를 불러서 응용할 수 있습니다. * WMS명, WFS명, 스타일명은 소문자만 가능합니다. 구분한글명칭WMS명WFS명스타일명비고 경계 광역시도 lt_c_adsido lt_c_adsido_info lt_c_adsido 2D lt_c_a..

한줄 팁 - PostGIS 교차 중복된 면적 구하기

PostGIS에 저장된 폴리곤 레이어가 있다고 가정하고, 이 레이어의 feature들 중 내가 설정한 영역과 중복되는 폴리곤들의 면적을 구하는 한줄 쿼리 입니다. select pnu, ST_Area( st_intersection( geom, st_transform( st_setsrid(st_geomfromtext('POLYGON ((127.00143 37.49791, 127.00635 37.49791, 127.00635 37.50109, 127.00143 37.50109, 127.00143 37.49791))'), 4326), 3857)))as area from lp_pa_cbnd where st_intersects(geom, st_transform( st_setsrid(st_geomfromtext('P..

한줄 팁 - Postgresql에서 CSV 바로 만들기

Postgresql의 Copy라는 명령어로 간단하게 CSV(Comma Separated Values) 포맷 파일을 만들 수 있습니다. 즉 좌표가 포함된 PostGIS 레이어 테이블도 간단하게 CSV 파일로 만들 수 있습니다. 문법은 아래와 같습니다. COPY [Table 이름 또는 쿼리] to '[파일경로/파일이름.csv]' csv header; 파일경로는 서버에서 수행할 경우 절대 경로로 해줘야 합니다. 이 명령어를 이용해 PostGIS 레이어 테이블에서 폴리곤으로 되어 있는 레이어에서 중심점 좌표만 추출한 CSV 파일을 만들고자 한다면 다음과 같이 명령어를 만들 수 있습니다. COPY ( select gate_no, gate_nm, st_x(st_centroid(st_transform(geom,432..

MapLibre - #6 내 위치 공시지가 확인 코딩 2편

이번 글에서는 브이월드 WFS 서비스로 가져온 지적정보를 화면에 표시하는 방법을 설명드리겠습니다. 아래 실행 화면처럼 정보창을 표시하기위해 MapLibre에서 제공하는 MarkerView 플러그인을 사용하겠습니다. MarkerView 플러그인을 사용하시려면 build.gradle 파일에 아래 내용을 추가하시고 Sync Project with gradle files(안드로이드 스튜디오 기준) 해 주시면됩니다. implementation 'org.maplibre.gl:android-plugin-markerview-v9:1.0.0' Repository 이름이 Mapbox SDK v9와 거의 동일한 명명 규칙을 갖고 있으니, 참고하십시오. 주요 소스는 아래와 같습니다. AddMarkerSymbol이라는 메서드를..