2010년 6월 30일 수요일

Live train map

OpenAPI와 구글맵의 Mashup 사이트입니다.
그냥 보시면 되고 설명은 패스~~~~~~

▣ Live train map for the London Underground

▣  Live train map for the Swiss

[OpenStreetMap]Isometric 3D Map

OpenStreetMap data를 이용한 체코의 isometric 3D map 사이트입니다.
클라이언트는 OpenLayers를 사용했군요.

▣ 사이트

▣ 간략소개
For generating images is used POV-Ray renderer, for converting OSM data to POV-Ray format is used my own application.

This map is continuously regenerated from new data. Average age of one tile is about one week.

Generating map is simple loop:
  • Query server with 3D map, which tile is best candidate to regenerate (zoom 12)
  • Generate OSM file with tile coutout, via Osmosis (data are from night snapshots of Czech Rep.)
  • Convert OSM file to POV file, via my own application osm2pov
  • Generate big PNG file by POV-Ray (zoom 17)
  • Upload file to 3D map server, crop to smaller tiles and generate other zooms
  • go to step 1

▣ 미리보기

SpatiaLite 개요 및 사용

PostgreSQLPostGIS가 있다면 SQLite에는 SpatiaLite가 있습니다.

PostGIS와 마찬가지로 Geometry Engine은 GEOS(3.2.0), 좌표변환은
를 사용하고 있습니다.  PostGIS보다 경량이면서 속도면에서는 빠르군요..

PostGIS를 사용해본 사람이라면 금방 익숙해질 수 있을 것 같네요. 단, PG와는 Spatial Function 이름들이 약간씩 다릅니다.(ST_가 없으나 2.4버전 이후로는 OGC ST_ 이름을 지원합니다).

라이센서는 각각의 프로그램마다 다릅니다.

▣ SpatiaLite 공식 사이트
 - http://www.gaia-gis.it/spatialite/
 - 2010년 6월 30일 현재 버전 2.4.0

▣ 주요 기능
 *  SQLite is a popular DBMS, simple, robust, easy to use and really lightweight
  * each SQLite database is simply a file; you can freely copy it, compress it, send it on a LAN or WEB with no complication at all
 They are also portables; the same database file will work on Windows, Linux, MacOs etc
 * the SpatiaLite extension enables SQLite to support spatial data too [aka GEOMETRY], in a way conformant to OpenGis specifications
   o supports standard WKT and WKB formats
   o implements SQL spatial functions such as AsText(), GeomFromText(), Area(), PointN() and alike
   o the complete set of OpenGis functions is supported via GEOS, this comprehending sophisticated spatial analysis functions such as Overlaps(), Touches(), Union(), Buffer() ..
   o supports full Spatial metadata along the OpenGis specifications
   o supports importing and exporting from / to shapefiles
   o supports coordinate reprojection via PROJ.4 and EPSG geodetic parameters dataset
   o supports locale charsets via GNU libiconv
   o implements a true Spatial Index based on the SQLite's RTree extension
 * the VirtualShape extension enables SQLite to access shapefiles as VIRTUAL TABLEs
   o you can then perform standard SQL queries on external shapefiles, with no need for importing or converting them
  * the VirtualText extension enables SQLite to access CSV/TxtTab files as VIRTUAL TABLEs
   o you can then perform standard SQL queries on external CSV/TxtTab files, with no need for importing or converting them
  * the GUI tool supports all this, in an user friendly way
* 이 외에도 RasteLite를 이용해서  래스터 저장, VirtualNetwork를 이용해서 라우팅 기능도 지원합니다.

▣ 설치 방법
 - 윈도우 기준입니다.
 - SQLite 최신버전(현재을 다운로드한다. http://www.sqlite.org/download.html
 - SpatiaLite 최신버전(현재 2.4.0)을 다운로드 한다. http://www.gaia-gis.it/spatialite/
 - 폴더(SpatiaLite)를 하나 생성한 후 다운받은 파일들을 이 폴더에 모두 압축해제한다.
 - SQLite를 이용하거나 spatialite-gis.exe를 실행 후 DB를 생성 한 후 사용하면 된다.
 - SpatiaLite는 Quantum GIS에서도 지원하므로 이 프로그램을 이용하면 쉽게 데이터를 확인하거나 분석기능 등을 수행할 수 있다.

▣ SpatiaLite GUI

▣ SpatiaLite GIS

▣ Quantum GIS

다음 시간에는 SpatiaLite를 Java에서 활용하는 법 및 샘플코드를 준비하도록 하겠습니다.

Free & Open Source Desktop GIS

Free & Open Source Desktop GIS 의 목록 및 기능을 잘 정리해 둔 사이트입니다.

꾸준히 업데이트가 되고 있는 곳인듯 합니다.

사이트는 여기..

An Overview of Free & Open Source Desktop GIS (FOS-GIS)

SQLite 개요 및 사용

SQLite는 단일 파일 기반이면서 SQL92를 지원하는 경량의 DB

SQLite 공식사이트
 - http://www.sqlite.org
 - 버전 : 2010년 6월 30일 현재
Features Of SQLite
 * Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
  * Zero-configuration - no setup or administration needed.
 * Implements most of SQL92. (Features not supported)
 * A complete database is stored in a single cross-platform disk file.
 * Supports terabyte-sized databases and gigabyte-sized strings and blobs. (See limits.html.)
 * Small code footprint: less than 300KiB fully configured or less than 180KiB with optional features omitted.
 * Faster than popular client/server database engines for most common operations.
 * Simple, easy to use API.
 * Written in ANSI-C. TCL bindings included. Bindings for dozens of other languages available separately.
 * Well-commented source code with 100% branch test coverage.
 * Available as a single ANSI-C source-code file that you can easily drop into another project.
 * Self-contained: no external dependencies.
 * Cross-platform: Unix (Linux and Mac OS X), OS/2, and Windows (Win32 and WinCE) are supported out of the box. Easy to port to other systems.
 * Sources are in the public domain. Use for any purpose.
 * Comes with a standalone command-line interface (CLI) client that can be used to administer SQLite databases.

Suggested Uses For SQLite:
 * Application File Format.
 - Rather than using fopen() to write XML or some proprietary format into disk files used by your application, use an SQLite database instead. You'll avoid having to write and troubleshoot a parser, your data will be more easily accessible and cross-platform, and your updates will be transactional.

 *  Database For Gadgets.
 - SQLite is popular choice for the database engine in cellphones, PDAs, MP3 players, set-top boxes, and other electronic gadgets. SQLite has a small code footprint, makes efficient use of memory, disk space, and disk bandwidth, is highly reliable, and requires no maintenance from a Database Adminstrator.

 *  Website Database.
 - Because it requires no configuration and stores information in ordinary disk files, SQLite is a popular choice as the database to back small to medium-sized websites.

 * Stand-in For An Enterprise RDBMS.
 - SQLite is often used as a surrogate for an enterprise RDBMS for demonstration purposes or for testing. SQLite is fast and requires no setup, which takes a lot of the hassle out of testing and which makes demos perky and easy to launch.

- Sqlite 프로그래밍
- SQLite 미니 홈페이지

 - 다운로드 후 특정 폴더(예: C:\SQLite) 에 풀기만 하면 됨

Java에서 사용하기
 - SQLite JDBC Driver를 이곳에서 다운로드, 둘 중 하나를 받으면 되나. 첫번째를 사용함
  : http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
  : http://www.zentus.com/sqlitejdbc/

 - Sample Java Code

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class App {
 public static void main(String[] args) {
    try {
        String dbPath = "C:/SpatiaLite/db/db.sqlite";

        SQLiteConfig config = new SQLiteConfig();

        Connection dbCon = DriverManager.getConnection("jdbc:sqlite:" + dbPath, config.toProperties());

        Statement dbStmt = dbCon.createStatement();   
        ResultSet rs = dbStmt.executeQuery("SELECT * FROM continent DESC LIMIT 5;");

    } catch (ClassNotFoundException e) {
    } catch (SQLException e) {

 private static void printResultSet(ResultSet rs) {   
    try {
        ResultSetMetaData rsMetaData = rs.getMetaData();

        int columnCount = rsMetaData.getColumnCount();       
        System.out.println("=========== " + rsMetaData.getTableName(1) + " ==========");
        StringBuilder sb = new StringBuilder();
        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            String colName = rsMetaData.getColumnName(columnIndex);
            String colType = rsMetaData.getColumnTypeName(columnIndex);
            int colLen = rsMetaData.getColumnDisplaySize(columnIndex);
            if (columnIndex == columnCount) {
                sb.append(String.format("%s(%s, %d)", colName, colType, colLen));
            } else {
                sb.append(String.format("%s(%s, %d) | ", colName, colType, colLen));                   
        while(rs.next()) {
            sb = new StringBuilder();
            for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                String colVal = rs.getObject(columnIndex).toString();
                if (columnIndex == columnCount) {
                } else {
                    sb.append(colVal + " | ");                   
    } catch (SQLException e) {

[Windows 7]Error 1935

윈도우즈 7을 설치하고 Tortoise SVN, PostgreSQL, ITunes 등의 프로그램 설치 중 다음과 같은 오류가 발생 후 먹통이 되는 현상이 발생하더군요...

인터넷에서 여러가지 방법들이 제시되고 있었는데 거의 다 저에겐 해당사항 없음이었습니다.
그러던 중 어느 사이트에서 팁을 발견했는데...

그 내용은 다음과 같습니다.
.NET Framework 3.5 서비스 팩 설치

□ 오류내용

Microsoft.VC80, 또는 Microsoft.VC90 재패포 패키지 설치 중 나타나는 현상

'Error 1935. An error occurred during the installation of assembly.
Microsoft.VC80.ATL.type="win32".version="8050727.7 62"."publicKeyToken"="1fc8b3b9a1e18e3b".processorA rchitecture="X86"'.

□ 해결방법

1. .NET Framework 3.5 서비스팩 설치
 - Microsoft .NET Framework 3.5 Service pack 1 (Full Package) - 한국어

2. 이제 오류 내용에 따라 Microsoft Visual C++ 2005, 2008 재배포 가능 패키지를 설치합니다.
 - Microsoft Visual C++ 2005 재배포 가능 패키지
 - Microsoft Visual C++ 2008 SP1 재배포 가능 패키지

2010년 6월 23일 수요일

[지진지도]국내 및 국외 주요 지진발생 현황

2010년 6월 20일 현재 기상청에서 제공하는 국내 및 국외 지진발생 현황을 Shapefile로 변환한 자료입니다.
첨부한 자료는 맘대로 사용하시면 됩니다...

이 자료로만 본다면 지진발생현황도 계속 증가추세이고 휴화산 상태인 백두산이 앞으로 4~5년 뒤 대규모 폭발을 일으킬 가능성이 있다는 전망도 나오고 있어 지진으로부터 안전한 나라는 아닌것 같습니다.

▣ 자료출처

 - 기상청 지진/지진해일
 - 국내 자료는 78년 이후 일어난 모든 지진을 기록한 것 같은데, 국외 자료는 1987년 이후부터 주요 지진만 제공하고 있는것 같습니다. 이 점 참고하세요.

▣ 기간
 - 국내: 1978년 ~ 2010년 6월 20일 현재
 - 국외: 1987년 ~ 2010년 6월 20일 현재

▣ 자료: Shapfile format
 - 저장구조: Shapefile format
 - 필드구성: 지역구분, 진원시, 규모, 경도, 위도, 위치, 갱신일

 - 좌표체계: WGS1984 경위도

▣  USGS에서 제공하는 지진정보
 - 이곳에서는 KML 포맷으로도 제공하고 있습니다.

▣ 국내 지진발생 추이
- 1978년도부터 2008년까지 국내에서 발생한 규모 3이상 지진정보를 나타낸 그래프

<출처: 기상청 http://www.kma.go.kr/images/weather/earthquake/img_domestictrend_graph.gif>

▣ 국내 지진발생 현황
국내 지진발생

▣ 국내 지진발생 현황(규모 4.5 이상)
국내 지진발생 현황(규모 4.5 이상)

▣ 국내 + 국외 지진발생 현황(규모 5.0 이상)
국내 + 국외 지진발생 현황(규모 5.0 이상)

2010년 6월 20일 일요일

4대강 사업 : 보 및 저수지 경위도 좌표

4대강 사업 관련하여 보 및 저수지 위치 및 좌표(WGS84 경위도)입니다.
혹 필요하신 분들 사용하세요...

아래 표에서 보 및 저수지 이름을 클릭하면 구글지도로 이동합니다.

▣ 보

수계 보이름 코드 위치 경도 위도
한강 강천보 1007601 경기 여주군 여주읍 신진리 127.684629 37.27910681
한강 여주보 1007602 경기 여주군 능서면 백석리 127.6165009 37.32102826
한강 이포보 1007603 경기 여주군 금사면 이포리 127.5384164 37.4087895
낙동강 상주보 2007601 경북 상주시 중동면 오상리 128.25315 36.43433476
낙동강 낙단보 2009601 경북 의성군 단밀면 낙정리 128.2979107 36.35641999
낙동강 구미보 2009602 경북 구미시 해평면 월곡리 128.3521557 36.22800414
낙동강 칠곡보 2011601 경북 칠곡군 약목면 관호리 128.3924532 35.9973131
낙동강 강정보 2011602 경북 고령군 다산면 호촌리 128.4603453 35.84067299
낙동강 달성보 2014601 대구시 달성군 논공읍 하리 128.4229231 35.73069764
낙동강 합천보 2014602 경남 합천군 청덕면 적포리 128.3568764 35.59485546
낙동강 함안보 2017601 경남 창녕군 길곡면 증산리 128.5392666 35.38604109
금강 금남보 3010601 충남 연기군 남면 나성리 127.2692192 36.47749017
금강 금강보 3012601 충남 공주시 의당면 청룡리 127.1045208 36.47066595
금강 부여보 3012602 충남 부여군 의당면 자왕리 126.9360137 36.31860036
영산강 승촌보 5004601 전남 광주 광산구 본덕동 126.7640519 35.06483154
영산강 죽산보 5004602 전남 나주시 다시면 죽산리 126.6292334 34.97371579

▣ 저수지

수계 저수지명 소재지 경도 위도
한강 반계지 강원도 원주시 문막읍 반계리 127.7741718 37.29203906
한강 추평지 충청북도 충주시 엄정면 추평리 127.9361129 37.12893032
한강 궁촌지 강원도 원주시 문막읍 궁촌리 127.8576207 37.22498065
한강 흥업지 강원도 원주시 흥업면 매지리 127.9064369 37.28009708
한강 개운지 강원도 홍천군 동면 개운리 127.9511547 37.65178627
한강 용당지 충청북도 충주시 신니면 문숭리 127.7053785 37.00599699
한강 금정지 충청북도 음성군 생극면 관성리 127.5742078 37.02623133
한강 원창지 강원도 춘천시 동산면 원창리 127.786231 37.80176492
한강 매곡지 충청북도 제천시 봉양읍 명도리 128.1260347 37.16787466
한강 금사(장흥)지 경기도 여주군 금사면 장흥리 127.4872184 37.38823127
한강 대평지 경기도 양평군 지평면 대평리 127.6307273 37.42117967
한강 송면지 충청북도 괴산군 청천면 삼송리 127.9066944 36.62706626
낙동강 창평지 경상북도 봉화군 봉성면 창평리 128.8163066 36.92119754
낙동강 옥연지 대구광역시 달성군 옥포면 기세리 128.4839272 35.77593859
낙동강 운암지 경상북도 예천군 용문면 내지리 128.3694291 36.70666154
낙동강 오태지 경상북도 상주시 공검면 오태리 128.1234169 36.49169746
낙동강 순흥지 경상북도 영주시 순흥면 내죽리 128.5635567 36.93082066
낙동강 금봉지 경상북도 의성군 옥산면 금봉리 128.8582778 36.33141062
낙동강 삼가지 경상북도 영주시 풍기읍 금계리 128.5260487 36.9043327
낙동강 신풍지 경상북도 청송군 현동면 거성리 129.0547228 36.27221688
낙동강 봉산지 경상남도 창녕군 계성면 봉산리 128.4805799 35.44254367
낙동강 가북지 경상남도 거창군 가북면 박암리 128.0035114 35.7856173
낙동강 손항지 경상남도 산청군 신등면 장천리 127.9826117 35.43458919
낙동강 만운지 경상북도 안동시 풍산읍 만운리 128.5751438 36.60054206
낙동강 지평지 경상북도 상주시 공검면 지평리 128.109684 36.55494734
낙동강 갈천지 경상남도 고성군 대가면 갈천리 128.2522058 35.03206968
낙동강 웅양지 경상남도 거창군 웅양면 산포리 127.9311132 35.83047908
낙동강 죽전지 경상남도 합천군 가야면 죽전리 128.0814886 35.74544992
낙동강 고현지 경상북도 청송군 진보면 고현리 129.1074228 36.52653613
낙동강 구천(화장)지 경상북도 청송군 부남면 화장리 129.1581917 36.2953083
낙동강 횡계지 경상북도 영천시 화북면 횡계리 128.9610815 36.11849826
낙동강 진례지 경상남도 김해시 진례면 신안리 128.7376535 35.22622628
낙동강 서암지 경상남도 의령군 가례면 괴진리 128.2433653 35.36651568
낙동강 옥성지 경상북도 구미시 옥성면 대원리 128.2469487 36.27306455
낙동강 구룡지 경상남도 함양군 함양읍 구룡리 127.7119017 35.48691698
낙동강 소성지 경상북도 성주군 초전면 소성리 128.2408762 36.02111036
낙동강 창림지 경상북도 구미시 해평면 송곡리 128.3953071 36.2226727
낙동강 서상지 경상남도 함양군 서상면 상남리 127.6831269 35.71230136
낙동강 봉의지 경상남도 밀양시 산내면 가인리 128.8915586 35.60888272
낙동강 송림지 경상북도 경산시 용성면 송림리 128.9110851 35.80222155
낙동강 용성지 경상북도 경산시 용성면 송림리 128.9105272 35.80886924
낙동강 갈평지 경상북도 청송군 진보면 괴정리 129.1354787 36.47091615
낙동강 단산지 경상북도 영주시 단산면 옥대리 128.6045408 36.97185539
금강 계룡지 충청남도 공주시 계룡면 하대리 127.153101 36.35844182
금강 괴목지 전라북도 무주군 적상면 괴목리 127.717824 35.92130823
금강 천천지 전라북도 장수군 천천면 남양리 127.5027215 35.70766678
금강 방동지 대전광역시 유성구 방동 127.3080039 36.28335696
금강 천장지 충청남도 청양군 정산면 천장리 126.9188905 36.41295959
금강 용암지 충청남도 연기군 서면 고복리 127.2440815 36.61001603
금강 덕용지 충청남도 부여군 충화면 가화리 126.8216228 36.14251881
금강 대곡지 전라북도 장수군 장계면 대곡리 127.6251054 35.69837938
금강 복심지 충청남도 부여군 충화면 복금리 126.8543243 36.18575806
금강 탑정지 충청남도 논산시 부적면 탑정리 127.1729279 36.17792965
금강 지소(양악)지 전라북도 장수군 계북면 양악리 127.6458013 35.80292637
금강 황금지 전라북도 진안군 부귀면 황금리 127.3626137 35.88418241
금강 상궁지 충청북도 보은군 내북면 상궁리 127.6522708 36.52367374
금강 강진지 충청북도 영동군 매곡면 강진리 127.9618514 36.15618957
금강 광혜지 경기도 안성시 죽산면 두교리 127.4284029 37.00688803
금강 백곡지 충청북도 진천군 진천읍 건송리 127.400465 36.86578521
금강 공정지 전라북도 무주군 안성면 공정리 127.6863563 35.82677347
금강 용연지 충청남도 천안시 동남구 목천읍 교촌리 127.2274733 36.80488656
금강 미호지 충청북도 진천군 초평면 화산리 127.5184393 36.81801152
금강 추풍령지 충청북도 영동군 추풍령면 죽전리 128.0245399 36.21564433
금강 개심지 충청북도 옥천군 이원면 개심리 127.6298046 36.19756848
금강 한계지 충청북도 청원군 가덕면 한계리 127.5599384 36.60381502
금강 보청지 충청북도 보은군 수한면 병원리 127.6734495 36.47606671
금강 삼기지 충청북도 증평군 증평읍 율리 127.6245046 36.71828971
금강 산막지 충청북도 영동군 양강면 산막리 127.7864671 36.11456345
금강 장찬지 충청북도 옥천군 이원면 장찬리 127.5905371 36.24593451
금강 정안지 충청남도 공주시 정안면 고성리 127.1025467 36.58379611
금강 도림지 충청남도 청양군 장평면 적곡리 126.9189763 36.38264787
금강 한천지 충청남도 공주시 우성면 한천리 127.0870972 36.51915578
금강 중흥지 충청남도 공주시 의당면 중흥리 127.1733999 36.56921797
영산강 담양호 전라남도 담양군 금성면 대성리 127.0065022 35.37918324
영산강 만봉지 전라남도 나주시 봉황면 만봉리 126.7713261 34.91194193
영산강 장치지 전라남도 화순군 이양면 장치리 127.0355129 34.91982456
영산강 백용지 전라남도 나주시 다시면 운봉리 126.647172 35.04124081
영산강 대동지 전라남도 함평군 대동면 용성리 126.5282106 35.12176899
영산강 함동지 전라남도 장성군 삼서면 수양리 126.6730499 35.23945035
영산강 장성호 전라남도 장성군 장성읍 용강리 126.8221378 35.35972617
영산강 나주호 전라남도 나주시 다도면 대초리 126.8498611 34.93013417
영산강 금전지 전라남도 화순군 한천면 금전리 126.9831562 34.97543888
영산강 광주호 전라남도 담양군 고서면 분향리 126.9876623 35.19152146
영산강 서성지 전라남도 화순군 동면 서성리 127.0348692 35.04967313
영산강 유탕지 전라남도 장성군 장성읍 유탕리 126.8274164 35.31484504
영산강 입석지 전라남도 영암군 금정면 남송리 126.7812395 34.84067367
영산강 왕동지 광주광역시 광산구 왕동 126.7130685 35.19529159
영산강 유천지 전라남도 화순군 동복면 유천리 127.1634007 35.07893354
영산강 문수지 전라남도 구례군 토지면 구산리 127.5216794 35.21328055
영산강 장남제 전라북도 장수군 번암면 국포리 127.4706745 35.56169669
영산강 구성지 전라남도 곡성군 오곡면 구성리 127.2899365 35.25599274
영산강 금풍제 전라북도 남원시 주생면 도산리 127.2870398 35.3827522
영산강 대지지 전라남도 구례군 마산면 황전리 127.4792576 35.23769778
영산강 성남지 전라북도 임실군 성수면 성수리 127.3730099 35.6404961
영산강 노촌지 전라북도 진안군 백운면 노촌리 127.4317503 35.71033257
영산강 수송제 전라북도 남원시 수지면 호곡리 127.3768616 35.35003088

▣ 첨부파일

▣ 위치