Error: 다음맵, 네이버지도, 구글맵 쥐똥만하게 나오거고 나머지 깨질때

원인
스크립트 로딩 순서 문제
이 지도들은 로딩타이밍에 다이내믹하게 지들 사이즈를 조정하는데

$(“~”).show()
뭐 이런식으로 스크립트로 안보이던걸 보이게 하거나
$(‘~’).(‘width: 100px’)대강 이런거 하면 발생

이런 상태에서 윈도우 크기를 변경 해 보면 스크립트 리로딩되면서 지도가 제대로 표시된다.

해결
1 미리 사이즈를 설정 해 놓는다.
또는
2 사이즈 조절 후 지도를 로딩한다

PostGIS 기초 사용법

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;

 

인덱싱

 

ST_프로시저

많이 사용되는 것만 대강 기억하고 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'
);

 

 

GIS 분석 인프라 구성 – Ubuntu16.04, Postgresql9.5, PostGIS2.2

설치

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

원격접속 가능하게 설정 – 필요한 경우

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

Postgis

디비 생성후

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값이 충돌하지 않도록 주의.

 

GIS 너무 쉬운거 아니야?

아직 지옥문을 막 열었을 뿐.. 문이 닫히기 전에 돌아가라

 

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 수치 데이터 : 한국 데이터는 없다고도 하고 잘 못 찾겠다.

GIS 관련 정보 2017

데이터 소스

국토지리정보원 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

아는사람만아는 GIS정부관련 코드 구하기_행정동,법정동,신주소코드

몇년쯤전부터 정부에서 사용하는 모든 구역명에 코드가 붙었다.
법정동,행정동,무슨무슨로2가 뭐 이런식으로 붙는 도로명주소에도 코드가 붙고.

각각 코드마다 관리하는 주체가 다른건 알겠는데 받는곳도 다르다.

법정동코드 – 안전행정부(안행부) – http://www.code.go.kr

행정동코드,법정동코드 – 안전행정부(안행부) – http://www.mospa.go.kr/ -> 업무안내 -> 주민등록 및 인감 -> 주민등록주소코드 변경내역(2014.1.2, 현재)

jscode20140102말소코드포함

jscode20140102

이렇게 선택하면 다운로드가 가능하다. 못 찾으면 인터넷 게시판에 올리는것보다 전화문의하는게 빠르다. 현재시점에서는 이 경로로 다운로드가능하고. 박근혜정부 임기까지는 유효하지않을까 싶다.

우편번호 – 우체국 – 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년