원인
스크립트 로딩 순서 문제
이 지도들은 로딩타이밍에 다이내믹하게 지들 사이즈를 조정하는데
$(“~”).show()
뭐 이런식으로 스크립트로 안보이던걸 보이게 하거나
$(‘~’).(‘width: 100px’)대강 이런거 하면 발생
이런 상태에서 윈도우 크기를 변경 해 보면 스크립트 리로딩되면서 지도가 제대로 표시된다.
해결
1 미리 사이즈를 설정 해 놓는다.
또는
2 사이즈 조절 후 지도를 로딩한다
원인
스크립트 로딩 순서 문제
이 지도들은 로딩타이밍에 다이내믹하게 지들 사이즈를 조정하는데
$(“~”).show()
뭐 이런식으로 스크립트로 안보이던걸 보이게 하거나
$(‘~’).(‘width: 100px’)대강 이런거 하면 발생
이런 상태에서 윈도우 크기를 변경 해 보면 스크립트 리로딩되면서 지도가 제대로 표시된다.
해결
1 미리 사이즈를 설정 해 놓는다.
또는
2 사이즈 조절 후 지도를 로딩한다
PostGIS의 사용법은 그리 어려울게 없다.
그냥 데이터를 사용하기 위한 기반 지식이 많이 필요하다.
기술적으로 알아야 할 것은 geometry 인덱싱, st_프로시저 정도로 많지 않고 지도 데이터, 좌표계 변환 등의 지식을 많이 알아야한다.
http://postgis.net/install/
-- Enable PostGIS (includes raster) CREATE EXTENSION postgis; -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D -- and other geoprocessing algorithms -- sfcgal not available with all distributions CREATE EXTENSION postgis_sfcgal; -- fuzzy matching needed for Tiger CREATE EXTENSION fuzzystrmatch; -- rule based standardizer CREATE EXTENSION address_standardizer; -- example rule data set CREATE EXTENSION address_standardizer_data_us; -- Enable US Tiger Geocoder CREATE EXTENSION postgis_tiger_geocoder;
많이 사용되는 것만 대강 기억하고 PostGIS doc를 찾아서 쓰면 된다.
https://postgis.net/docs/reference.html
폴리곤 문자열 좌표계로 변환 select st_geomfromtext('POLYGON ((206150.488 464470.391000001,206220.011 464532.584000001,206341.442 464351.384, 206150.488 464470.391000001))', 5174) 좌표계와 겹치는 좌표계 검색 select st_astext(geom) from t_mapdata from st_intersects(st_geomfromtext('POLYGON ((206150.488 464470.391000001,206220.011 464532.584000001,206341.442 464351.384, 206150.488 464470.391000001))', 5174)); 지도의 좌표계를 4243좌표로 변환 select st_transform(geom, 4243) from t_mapdata;
ST_Intersects – 겹침
ST_Within – 완전포함
ST_Contains – 포함 within하고 비슷한데 확인필요
ST_Area – 넓이 구하기
ST_Buffer – 좀 넓게 잡기
insert into public.spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) values( 105188,'USER',105188,'PROJCS["Korea 2000 / East Sea Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",131],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","5188"]]','+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs' ); insert into public.spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) values( 105187,'USER',105187,'PROJCS["Korea 2000 / East Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","5187"]]','+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs' ); insert into public.spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) values( 105186, 'USER', 105186 ,'PROJCS["Korea 2000 / Central Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",127],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","5186"]]','+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs' ); insert into public.spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) values( 105185, 'USER', 105185, 'PROJCS["Korea 2000 / West Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",125],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","5185"]]', '+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs' );
sudo apt install -y postgresql postgis postgresql-9.5-dbg postgresql-common postgresql-9.5-postgis-2.2 postgresql-9.5-postgis-scripts
설치는 별거 손댈게 없다.
서버에서 스크립트를 돌릴 일이 있을 수 있으니
sudo apt install python3 python3-dbg python3-dev python3-dbf python3-pip pip3 install psycopg2
원격접속 가능하게 설정 – 필요한 경우
postgresql.conf
listen_addresses = 'localhost'
pg_hba.conf
postgres all all 0.0.0.0/24 md5
개발테스트용이 아닌 서비스용이라면 초기 설정할 때만 오픈해놨다가 접근권한을 127.0.0.1이나 허용된 서버만으로 제한하도록 한다.
root 생성
sudo -u postgres psql -U postgres alter user postgres with encrypted password 'dkfldk3$'; \q
디비 생성후
create database gis_db; \connect gis_db; create extension postgis;
postgis 설치가 완료되면
gis_db.public.spatial_ref_sys 테이블이 생성된다.
확인
select * from pg_catalog.pg_tables;
spatial_ref_sys에 표준 좌표계는 다 입력되어 있는편인데
공공기관에서 제공해주는 변태좌표계에 필요한 설정을 넣어준다.
id값이 충돌하지 않도록 주의.
아직 지옥문을 막 열었을 뿐.. 문이 닫히기 전에 돌아가라
RAW데이터를 수집해야한다.
정권이 바뀔때마다 지들 기분날 때 마다 데이터의 제공주체나 생산주체 담당자가 수시로 바뀌니 그때그때 확인을 해 봐야한다.
데이터 포맷 정보가 없는 경우도 많고 통일성도 없다.
따져도 소용없다. 그 사람들도 문제의식은 가지고 있는데.. 이게 장관급에서 프로젝트가 내려오지 않으면 어쩔 수 없는 부분이 있다. 여러 기관이 얽히고 얽혀서
행정표준코드 관리시스템 : https://www.code.go.kr/jsp/index.jsp
환경공간정보서비스 : https://egis.me.go.kr
생태자연도
국립생태원 : http://www.nie.re.kr/
국토환경정보센터 : http://www.neins.go.kr
국토지리원 : http://www.ngii.go.kr
수치지도, DEM(래스터)
국가공간정보포털 : http://www.nsdi.go.kr
연속지적도, 개별공시지가, 토지등급, 건물정보 …
주소, 행정동, 지적도, 건물정보, 등 넣어줘야하는데
국가교통정보센터 : http://www.its.go.kr/
교통정보공개서비스 : http://openapi.its.go.kr
기상청 : http://www.kma.go.kr
NASA 수치 데이터 : 한국 데이터는 없다고도 하고 잘 못 찾겠다.
국토지리정보원 www.niii.go.kr
기상청 www.kma.go.kr
환경공간정보서비스 https://egis.me.go.kr
국가수자원관리종합정보시스템 http://www.wamis.go.kr
도로명주소안내시스템 http://www.juso.go.kr
표준노드링크 http://nodelink.its.go.kr
– 지능형 교통체계 관리 시스템
부동산 공시지가 http://www.realtyprice.kr/notice
부동산 실거래가 http://rt.molit.go.kr/
서울지도 http://gis.seoul.go.kr
data.go.kr
한국전력
LURIS 토지이용규제서비스
통계지리정보서비스
https://sgis.kostat.go.kr/contents/shortcut/shortcut_05.jsp
공간정보중앙교육센터 https://necgis.go.kr
http://www.biz-gis.com/
pdf to shp
cad to shp
QGIS – 지형분석
– wheel shade
– relief
– roughness index
QGIS2 3JS – 브라우저 연동
http://www.nsdi.go.kr/?menuno=2926
http://www.dcvelocity.com/articles/20111128top_10_reasons_for_implementing_wms_wfm_together/
R로 GIS 이미지 만들기
https://github.com/Robinlovelace/Creating-maps-in-R
http://spatial.ly/wp-content/uploads/2013/12/intro-spatial-rl-3.pdf
gdal
http://www.gdal.org/gdal_grid.html
http://www.gdal.org/frmt_xyz.html
좌표 재투영/매핑
http://www.biz-gis.com/index.php?document_srl=51342&mid=GISFAQ
http://docs.qgis.org/2.2/ko/docs/training_manual/vector_analysis/reproject_transform.html
지적도 작업
“qgis 지적도 오차”
http://archjang.tistory.com/431
지형도 작업 – SHP,DEM
http://www.qgistutorials.com/ko/index.html
http://www.qgistutorials.com/ko/docs/credits.html
http://www.qgistutorials.com/ko/docs/working_with_terrain.html
http://www.qgistutorials.com/ko/docs/interpolating_point_data.html
http://www.qgistutorials.com/ko/docs/raster_mosaicing_and_clipping.html
http://www.qgistutorials.com/ko/docs/working_with_attributes.html
몇년쯤전부터 정부에서 사용하는 모든 구역명에 코드가 붙었다.
법정동,행정동,무슨무슨로2가 뭐 이런식으로 붙는 도로명주소에도 코드가 붙고.
각각 코드마다 관리하는 주체가 다른건 알겠는데 받는곳도 다르다.
법정동코드 – 안전행정부(안행부) – http://www.code.go.kr
행정동코드,법정동코드 – 안전행정부(안행부) – http://www.mospa.go.kr/ -> 업무안내 -> 주민등록 및 인감 -> 주민등록주소코드 변경내역(2014.1.2, 현재)
이렇게 선택하면 다운로드가 가능하다. 못 찾으면 인터넷 게시판에 올리는것보다 전화문의하는게 빠르다. 현재시점에서는 이 경로로 다운로드가능하고. 박근혜정부 임기까지는 유효하지않을까 싶다.
우편번호 – 우체국 – http://www.epost.go.kr/, http://www.code.go.kr
기타데이터…
통계청 www.kostat.go.kr
서울시정보공개 http://opengov.seoul.go.kr/, http://data.seoul.go.kr
홈페이지 주소체계가 너무 자주 바뀌고 관리주체도 다양해서 사용하기가 힘들다.
공식적으로 문제제기를 한번 해 봐야겠다. 어디 여론을 형성해서 단체로 민원을 넣던가
—아아 . 지금은 2018년
http://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do?bbsId=BBSMSTR_000000000052&nttId=61552
18년