The English Mark about Certificate(증명서에 대한 영문 표기법)

Proof of Enrollment(Certificate of Enrollment)

재학증명서

Certificate of expected degree

학위수여예정증명서

Certificate of course work completion

수료증명서

Certificate of degree(degree certificate)

학위수여증명서

Transcript(Academic Record)

성적증명서

Certificate of payment fees
(Certificate of payment tuition)

교육비납입증명서

Proof of Employment

재직증명서

Certificate of career

경력증명서

Posted by 강부자아들
,

그 사람이랑 연락할 방법이 뭐 없을 까요?

Is there any way I can reach him?

Contact는 불가산 명사로는 "연락"으로 쓰인다. Ex)keep in contact with someone

Contact는 타동사로도 쓰이는데, 전화나 편지등으로 "~에게 연락하다"라는 뜻을 가진다.

업무상으로 만날 때 연락처를 물어보는 경우 What is your contact information?이라고 물어보고

호감가는 이성에게는 I'd like to see you again. How can I reach you?와 같이 reach를 사용한다.

일반적인 상황에서는 Can you give me your phone number?와 같은 표현을 사용한다.

Posted by 강부자아들
,

iPad 포함하여 iOS 사용하는 모든 기기들의 Safari 브라우저에서는 데이터 패킷이 과금이 되는 통신사의 네트워크를 이용하는 사용자들이 있기 때문에 preload autoplay기능이 작동되지 않게 되어있다. 사용자가 그것을 시작하기 전에는 데이터가 로드되지 않는다. , JavaScript play()  load() 메서드는 사용자가 재생장치를 시작하여 play() 또는 load()메서드를 발생시키기 전에는 비활성화 된다는 이야기이다. 다시 말해서, 사용자가 Play 버튼을 클릭하면 동작을 하지만 onLoad="play()"이벤트는 동작하지 않는 다는 것이다.

동영상을 재생시킬 있는 경우<input type="button" value="Play" onClick="document.myMovie.play()">

iOS에는 동영상 재생을 없는 경우<body onLoad="document.myMovie.play()">

Posted by 강부자아들
,

이 글은 WebGL이라는 기술을 사용하여 만든 Google 지도를 소개한다. Google Maps 팀에서는 WebGL을 기반으로한 MapsGL이라는 이름을 붙였다.

 

우선 왼쪽 아래에 "새로운 기능을 사용해 보고 싶으십니까?"를 클릭한다.

 

아직 정식 서비스도 아니고 시스템 요구사항을 만족시키는 컴퓨터 만이 사용할 수 있다.

 

시스템 요구사항을 충족시키지 못하면 아래와 같이 기본 서비스로 돌아가는 메시지를 접하게 된다.

 

 

크롬14 버전이나 FireFox 8.0이상(개발자버전)에서 동작한다. 필자의 경우에는 크롬 14브라우저로 업데이트 했음에도 불구하고 에러가 나서 크롬 프로그램 제거 후 다시 사용하라는 메시지를 받고 좌절하여 파이어폭스를 설치하였다.

파이어폭스 8.0 버전 이상을 설치해도 MapsGL 기능이 동작하지 않는데 이는 브라우저의 WebGL 기능을 활성화 하지 않아서 그런 것이다. 이 부분은 도움말이나 웹 서핑을 통해 각 브라우저에 맞는 설정을 하도록 한다. 파이어폭스 8.0에서는 주소창에 about:config를 타이핑하여 옵션에 들어간 후 webgl.force-enabled 옵션 값을 true로 토글하여 동작되게 하였다.

 

WebGL 기술을 활용한 MapsGL 기능이 활성화 되면, 왼쪽 아래에 "MapsGL 사용중"이라는 메시지가 나온다. 물은표 버튼을 클릭하고 "둘러보기"버튼을 한 번 더 클릭하면 자세한 기능들에 대한 설명이 나온다.

 

 

간단한 예제 사용법을 알려준다. 순서대로 따라한다.

 

 

 

지도를 확대하다 보면 나침반이 표시된다.

 

 

 

 

 

지도이미지의 경우 벡터 파일로 오는 것처럼 보였다. 예를 들어 아래 링크를 참조하면 된다. x, y, z 값은 이전 Google 지도와 같은 규칙인데 src 인자 값과 format인자 값이 추가되었다.

http://mt1.google.com/vt/vec?src=vector&format=town&x=35041&y=24356&z=16&lyrs=m@162000000&hl=ko

 

아래 그림은 Zoom-In을 하여 중간에 지도 데이터가 로딩될 때 화면을 저장 하였다. 이미지들을 자세히 보면 디테일한 레벨의 경우 렌더링 시간이 오래 걸리는 것 같다.

 

아직 이미지 타일을 미리 렌더링 하는 방식 예전지도가 더 빨랐다. 하지만 성능이 좋거나 하드웨어 가속을 사용하는 환경하에서는 WebGL기반의 MapsGL을 사용하는 좋아질 수 있어지지 않을까 싶다. 또 다른 특징은 왠지 지도가 뿌옇게 보이는 것이었다. 장점으로는 스트리트 뷰와 지도 사이의 화면전환이 자연스러워진 것과, 위성영상을 45도씩 회전할 때 좀 더 매끄러워 진 것이다.

 

동영상을 참조하면 더 많은 정보를 알 수 있다.

 

 

참조:

http://googleblog.blogspot.com/2011/10/step-inside-map-with-google-mapsgl.html

http://www.youtube.com/watch?feature=player_embedded&v=X3EO_zehMkM

Posted by 강부자아들
,

수치지도의 도로에 스타일을 주다보면 오른쪽 그림과 같은 문제점에 봉착하게 된다. 위쪽 그림(네이버지도)를 보면 고속도로들이 부드럽게 스타일 되어진 것을 볼 수 있다. 반대로 아래쪽그림(국가공간정보통합체계)을 보면 고속도로들이 약간씩 찌글찌글 하다는 느낌이 들게 된다. 이러한 문제는 수치지도의 도로선 레이어인 A002(line)의 1:1000이나 1:5000같은 레이어를 그대로 사용해서 그런 것이다. 도로 라인을 단순화하고 레벨 별로 나누어서 축척에 맞는 파일을 사용하여야 한다. 이렇게 축척에 맞지 않는 세밀한 정보들을 사용하면 데이터들이 너무 많아 떡져보이거나 아니면 투명도를 주었을 때 제대로 나타나지 않는 경우가 발생하게 된다.

 

Posted by 강부자아들
,

MBUtil

카테고리 없음 2011. 10. 25. 14:21

MBUtil MBTiles 파일 형식을 읽고 있는 유틸리티이다.

설치

Git checkout (git 필요)

git clone git://github.com/mapbox/mbutil.git

cd mbutil

./mb-util -h

 

# mb-util 커맨드를 전역적으로 사용할 있게 설치한다:

sudo python setup.py install

# 그리고 나서 다음과 같이 입력한다:

mb-util

Python 설치(easy_install 필요)

easy_install mbutil

mb-util -h

사용법

Mbtiles 파일을 파일시스템에 쓰기(export) 위해서는 다음과 같이 입력한다:

mb-util World_Light.mbtiles 디렉토리명

디렉토리를 mbtiles 파일로 만들기 위해서는 다음과 같이 입력한다.

mb-util 디렉토리명 World_Light.mbtiles

필요사항

  • Python >= 2.6

Metadata

MBUtil 메타데이터를 타일 디렉토리의 루트경로의 metadata.json라는 JSON파일 형식으로 불러오거나 내보내기를 한다.

{

"name": "World Light",

"description": "A Test Metadata",

"version": "3"

}

Authors

  • Tom MacWright (tmcw)
  • Dane Springmeyer (springmeyer)
  • Mathieu Leplatre (leplatrem)

 

아래의 참고 링크에 가면 다운로드 파일과 더 자세한 설명을 얻을 수 있다.

참고 : https://github.com/mapbox/mbutil

Posted by 강부자아들
,

10만여개의 학교 위치를 가지고 있는 Department of Education 지도는 MBTiles file 12레벨을 shapeindex 쓰지 않고 랜더링 하는데 하루 정도가 걸렸다고 한다. shapeindex 사용하면 단지 시간 정도 밖에 소비하지 않는다고 한다.

Mapnik이 사용하는 인덱스 형식은.index라는 확장자를 사용한다. 이 .index 라는 파일은 Mapnik 함께 설치되는 shapeindex 커맨드 라인 툴을 사용하여 만들 수 있다. 커맨드 라인 툴을 통해 매우 단순하게 만들 수 있다:

shapeindex your-shapefile.shp

이게 전부이다. shapeindex툴은 your-shapefile.index 라는 파일을 만들고 이 파일은 나머지 shapefile 모음 (*.shp, *.shx, *.dbf, )들과 함께 가지고 있으면 된다.

(주의: shapefile 모음들을 TileMill에서 사용하려면 TileMill 의 데이터 라이브러리나 원격 URL에 압축이 된 zip파일의 형식으로 되어 있어야 한다.)

 

참고로 TileMill에서는 버그로 인해 모든 파일에 shapeindex를 사용하기 보다는 가장 큰 세 네 개의 파일에만 사용하기를 권장하고 있다. 왜냐하면 많은 파일에 index를 사용하는 것은 Mapnik에서 "Too many open files error"를 유발시킬 수 있어서라고 한다.

 

참고 : http://developmentseed.org/blog/2011/mar/29/speed-optimizations-tilemill-shapefile-indexes

Posted by 강부자아들
,

raster2mb

카테고리 없음 2011. 8. 15. 02:24

tilemill에서 사용하는 파일 형식인 mbtiles 형식을 사용 하다가 찾은 툴이 raster2mb이다. 현재 2.0 버전이 unstable한 채 진행중이고, stable한 버전은 1.1 버전의 mbtiles specification이다. 이 mbtiles 포멧(사양서)은 LOD 구조의 타일을 SQLite DB에 저장한다. 이 스펙을 토대로 구현된 프로그램은 다음과 같다( https://github.com/mapbox/mbtiles-spec/wiki/Implementations). 이 프로그램 중 파이썬(Python)으로 된 프로그램을 찾았는데 그 중 하나가 raster2mb이다. GDAL과 Python을 필요로 하며 사용법은 아래와 같다.

 

raster2mb.py raster_merc.tiff raster_merc.mbtiles

만약 GeoTIFF 파일이 Google Mercator 투영법인(EPSG:900913) 아니라면, 아래와 같이 gdalwarp 먼저 실행하여 Google Mercator 투영법을 적용시킨다:

gdalwarp -t_srs EPSG:900913 raster.tiff raster_merc.tiff

raster2mb -h  실행하여 도움말을 있다.

 

이 툴은 MBTiles 1.1 맞춰서 제작되었고 옵션 인자 값인 bounds 속성을 가지고 있지 않다.

마지막으로 가장 중요한 점!

전 세계를 포함하지 않는 경계부터 시작하는 이미지의 mbtiles 데이터 파일의 생성은 가능하지만 제대로 된 데이터가 아니다. 따라서 Mapbox에서도 사용할 수 없고 이상한 좌표에 이미지가 매칭된다. 따라서 tileset을 생성하고 싶으면 전세계를 포함하고 있는 이미지를 사용하여야 한다. http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/ 에 가면 Google Mercator(EPSG:900913)과 관련된 픽셀좌표와 zoom레벨을 표시해 준다. 먼저 자신이 가진 Tiff 파일을 Spherical Mercator(Google Mercator)의 타일 경계에 맞춰 처리한 후 작업을 하면 용이하다. 하지만 실험을 해 본 결과 줌 레벨이 커질수록 전세계를 포함하고 있는 이미지의 사이즈가 너무 커져 실제적으로 작업을 수행하기가 어려웠다. gdal2tiles.py를 사용하여 타일을 생성한 후 mb-util을 사용하는 편이 더 맞는 것 같다.

 

gdal라이브러리를 이용하기 때문에 OSGeo4W shell을 이용하면 raster2mb.py 스크립트를 실행할 수 있다.

 

mbtiles는database이기 때문에 이미지로 바로 사용할 수 없다. 따라서 mbtiles 파일을 이미지로 export하기 위해서는 다음 링크를 클릭하여 스크립트를 실행하면 된다(https://gist.github.com/837851).

 

gdal2tiles와 같은 툴로 폴더 별 타일이미지를 가지고 있고 이 이미지들을 MBTiles 파일로 만들고 싶다면 mb-util을 사용해야 한다. raster2mb는 Tiff 이미지를 MBTiles로 바꾸는 것이기 때문이다.

Posted by 강부자아들
,

carto 문법

카테고리 없음 2011. 8. 14. 19:34

Cartod에서 "and" 혹은 "or" 는 빈 문자나 "," 로 표현된다; 즉, "[zoom>6][zoom<10]" 는 "[zoom>6] and [zoom<10]"로 읽혀지고 "[zoom=4],[zoom=5]"는 "[zoom=4] or [zoom=5]"로 읽혀진다. 여러 개의 "and"들이나 "or"들을 사용할 때, TileMill은 논리적인 모호성을 배제 시키기 위해 "and" 조건을 먼저 처리하고 그 다음 "or"를 처리한다. 따라서 "[zoom>4][zoom<6],[zoom=6]"는 "([zoom>4] and [zoom<6]) or [zoom=7]"과 같이 읽힐 수 있다.

Posted by 강부자아들
,

TileMill을 사용하다가 SHP 파일을 인코딩과 관련된 문제점에 봉착하였다. 우선 UTF-8로 인코딩 되지 않은 EUC-KR로 인코딩된 문자는 깨져서 보이는 것이었다. 그래서 QGIS에서 SHP파일을 읽어 UTF-8로 다시 인코딩하여 Export한 후 TileMill에서 사용할 수 있게 Google Mercator로 투영된 prj 파일과 함께 zip파일로 묶어 TileMill에서 읽어보았다.

"행정지명"이라는 값을 가진 "구분" 필드를 조건을 걸어 주어 랜더링 하려고 했으나 아래와 같은 에러를 마주치게 되었다. 예를 들어 h004_point 레이어 같은 경우에는 명칭, 구분, 형태 등의 필드를 포함하고 있는데 이러한 필드에 조건(ex: h004_point [명칭= 'null'])을 걸어 TileMill에서 랜더링 하려고 할 때, 이것이 적용되지 않는 것이었다. field부분만 한글로 되면 Invalid code에러를 발생시키는 것이었다. 조건에 따른 데이터 값은 한글로 되어 있어도 잘 동작하였다(ex: h004_point[gubun='행정지명']).

[field="데이터 "]와 같은 식으로 조건이 들어가야 하는데 field가 한글일 경우 에러를 일으키는 것이었다.

원래 Mapnik에서는 encoding 요소가 없으면 기본으로 UTF-8 인코딩을 사용하지만, encoding 요소를 지정 해서 다른 인코딩도 적용시킬 수 있다. 하지만 TileMill은 encoding 요소를 지정할 방법이 없는 것 같았다. (https://github.com/mapbox/tilemill/issues/557, https://github.com/mapbox/tilemill/issues/547)

 

결국 내가 이 문제를 해결하는 방법은 TileMill에서 고쳐주는 것을 기다리는 것과 혹은 내가 TileMill을 고치는 것, 마지막으로 SHP파일을 고치는 것이다.

기다리기는 시간이 없고, TileMill은 Node.js로 되어 있어서 고치기는 쉽지 않고 시간도 많이 걸릴 것 같아 그냥 SHP파일의 Field명을 한글에서 영어로 고치기로 했다(절대 옳은 방법이 아니니 따라 하지 마세요!).우선 내가 사용할 조건이 있는 Field명을 뽑아 보기로 했다.

명칭, 구분, 도로번호, 종류, 기타, 용도, 구조, 층수, 형태 …

name, class, road_no, road_category, category, etc, usage, structure, floor, form …

어차피 이런 속성 데이터는 dbf파일에 저장되어 있기 때문에 dbf파일의 인코딩과 Field명을 고쳐주면 된다. 그리고 이러한 삽질을 한 GIS사이트가 있었는데 러시아 사이트였다. http://gis-lab.info/qa/dbf-encode.html 사이트에서 크릴릭 알파벳과 씨름하다 dbfpy(http://dbfpy.sourceforge.net/)와 이를 토대로 러시아 개발자가 만든 http://gis-lab.info/programs/python/dbf-encode.zip 프로그램을 다운받았다.

dbf-encode.py -f euc-kr -t utf-8 input.dbf output.dbf와 같은 형식으로 사용하면 된다. 하지만 또 문제점에 봉착하였다. Field가 인코딩이 변하지 않는 것이었다. 결국 field 설정 부분을 발로 짜 보았다(막 짠 것이니 아시는 분은 도움의 댓 글을 부탁 드립니다). 아래 코드를 사용하려면 한글로 된 필드 명에 대한 배열을 미리 사전 형태로 가지고 있어야 합니다. 필드 이름 자체를 한글로 utf-8인코딩 하려고 했으나 실패 하였습니다. QGIS에서도 UTF-8로 export해도 깨지는 글자가 있었습니다.

 

ngi = {'관리기관':'authority', '관리번호':'authority_no', '구분':'class', '구조':'structure', '기타':'etc', '높이':'height', '도로구분':'road_category', '도로번호':'road_no', '도로폭':'road_width', '도엽명':'map_name', '도엽코드':'map_code', '등고수치':'contour', '등급':'grade', '면적':'area', '명칭':'name', '번호':'no', '보도':'sidewalk', '분리대유무':'separator', '상태':'status', '상하구분':'updown', '상하단구분':'updown2', '설치연도':'year', '수령':'su-ryung', '수용량':'capacity', '수종':'su-jong', '수치':'value', '시점':'time', '연장':'length', '용도':'usage', '일방통행':'oneway', '자전거도로':'bicycle_road', '재질':'quality', '종류':'category', '종점':'terminal', '좌표':'coord', '주기':'period', '주생산광물':'main_mineral', '주성분':'ingredient', '직경':'diameter', '차로수':'road_count', '층수':'floor', '통과하중':'pass_load', '포장재질':'packing_material', '폭':'width', '표고':'altitude', '하천명':'river_name', '하천번호':'river_no', '행선지':'destination', '형태':'form', 'UFID':'UFID'}

 

# copy dbf header from inFile to outFile

for f in inFile.header.fields:

outFile.addField( f )

 

for f in outFile.header.fields:

key = unicode( f.name, options.inEncoding).encode(options.outEncoding)

field_name = ngi.get(key)

f.name = field_name

Posted by 강부자아들
,