jVectorMap - Map Converting for Ubuntu
jVectorMap을 개발자 버전으로 다운로드 하게 되면 convert.py 파일이 존재한다.
이 파일을 이용해서 shp 파일을 jVectorMap에서 사용가능하게끔 변환이 가능한데 이를 해야만 했었다......
우선 Ubuntu에 Python2.7.5를 설치해야 하는데 아래 의존성 관계를 먼저 해결해 주었어야 했다.
sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
이후 home 디렉토리에 Python 2.7.5 를 wget으로 다운로드 받고
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz
압축 풀고 인스톨
tar -xvf Python-2.7.5.tgz
cd Python-2.7.5/
./configure
make
sudo make altinstall
jVectorMap에서 사용하는 converter.py는 아래 두 개의 패키지가 추가로 필요하다.
삽질 시작..
Shapely의 간편 설치를 위해 pip를 설치한다.
sudo apt-get install python-pip
pip install Shapely
GDAL은 easy_install 을 사용한다.
sudo easy_install GDAL
에러난다.. 아...
GDAL이 easy_install로 설치가 안된다.
easy_install은 wget으로 파일을 받아와서 작업을 하는 방식이기에 wget으로도 안된다.
결국 아래 방법으로.. 진행
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install gdal
안된다..... 레파지토리가 깨진듯하다..
방법이 없는건 아닌듯하다..
svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal
./configure
sudo make install
설치가 된다.. 근데 엄청 오래 걸린다........
백그라운드로 실행 안한걸 후회할 정도로... 30분정도..
이렇게 설치하면 계정 Path에 설정해 주어야 하는데..
echo " " >> $HOME/.bashrc
echo "# GDAL environment variables" >> $HOME/.bashrc
echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> $HOME/.bashrc
source $HOME/.bashrc
gdal 설치하다가 시간 다 보낸듯..
맵 파일 넣고 convert를 해보니..
Traceback (most recent call last):
File "converter.py", line 10, in <module>
from osgeo import ogr
ImportError: No module named osgeo
이런 에러 나온다...
찾아보니.. http://gis.stackexchange.com/questions/64398/importing-osgeo-module-in-ubuntu-10-04
다시 gdal... configure 부터...
./configure --with-python
sudo make install
이상 여기까지 삽질.... 2시간..
sudo apt-get install python-gdal
sudo apt-get install python-shapely
위 두개면 설치 된다.... 아..
설치 다 했으니 아래 처럼 실행을 하면...
python ../converter.py \
--width 1000 \
--country_name_index 7 \
--country_code_index 8 \
--where "ISO = 'KOR'" \
--input_file_encoding 'UTF-8' \
--name datag_korea \
--language en \
KOR_adm2.shp \
jquery-jvectormap-data-korea-aea-en.js
이런 에러가 나는데..
ERROR 6: Unable to load PROJ.4 library (libproj.so), creation of
OGRCoordinateTransformation failed.
아래 처럼 설치해주고..
sudo apt-get install python-pyproj
확인도 해주어야 하고..
/sbin/ldconfig -p | grep proj
libproj.so.0 (libc6,x86-64) => /usr/lib/libproj.so.0
심링크도 잡아 주어야 한다....
sudo ln -s /usr/lib/libproj.so.0 /usr/lib/libproj.so
확실하게 이것도 설치하자..
sudo apt-get install python-anyjson
다시.. 실행하자....
python ../converter.py \
--width 1000 \
--country_name_index 7 \
--country_code_index 8 \
--where "ISO = 'KOR'" \
--input_file_encoding 'UTF-8' \
--name datag_korea \
--language en \
KOR_adm2.shp \
jquery-jvectormap-data-korea-aea-en.js
아래는 결과..
vi로 열어보면...
올ㅋ
근데 안된다.....
국가별로 지도를 뽑으려고 해보니 뭔가가 안맞다...
같은 shp 파일이라도 뭔가가 다르다..? 열어봐야 아는건데..
급한대로.. 다른 개발자가 작업한 곳을 찾아서 사용은 한다만...
안되는 이유는.. 작업이 죽는다..;;
행정동 레벨 2기준으로 작업을 할 경우 약 200여개의 행정동(시/군/구)가 나오는데 가상서버가 힘들어하더니 작업을 멈추네..
WIndow에서 아래처럼 지도는 나옴.