오픈스트리트 맵 뷰어 - JMapViewer
몇년 전에 오픈스트리 맵(줄여서 OSM)을 보기 위한 툴인 JMapViewer를 소개 한 적이 있습니다.
구글맵이나 네이버, 카카오 맵 같은 경우에는 여러가지 복잡한(?) 절차가 존재하고 이런 절차가 싫고 실제 지도의 조작을 한 번 해보고 싶다면, 이 오픈스트리트 맵을 추천해 드립니다.
요즘 국가에서 제공하는 OpenAPI 와 붙혀보면 어떨까 하는 생각이 들어서, 다시 한번 알아보기로 했습니다.
오늘은 최신(?) JMapViewer 를 빌드해서 실행 해 보는 것을 목표로 합니다.
준비사항
우선 준비 할 사항은 다음과 같습니다.
이클립스 현재 버전
자바 - OpenJDK
JMapViewer 소스
eclipse-inst-jre-win64.exe
JMapViewer-master.zip
openjdk-17.0.2_windows-x64_bin.zip
openjdk-19.0.1_windows-x64_bin.zip
대충 설치하고 나면, 다음 모습이 될 듯 합니다.
...
JMapViewer 소스 추가
이클립스에서 자바 프로젝트를 생성하고, 다음과 같이 생성 해 보겠습니다.
사진 설명을 입력하세요.
JMapViewer-master.zip를 압축을 풀고,
생성 된 프로젝트 안에 해당 소스를 추가 해 줍니다.
JMapViewer 실행
그냥 실행 할 수 없게 되어 있네요...
일단 module-info.java 를 다음과 같이 설정 해 주면, 오류는 없어 집니다.
module JMapViewer {
requires java.base;
requires java.desktop;
requires java.logging;
}
그럼 다음과 같이 대충 JFrame 에 넣어서 OSMViewer 클래스를 만들 주도록 합니다.
package com.tobee.openstreetmap.viewer;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.openstreetmap.gui.jmapviewer.JMapViewer;
public class OSMViewer {
public static void main (String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JMapViewer jMapvwr = new JMapViewer();
JFrame frame = new JFrame("OSM Viewer");
frame.setSize(800, 600);
frame.setContentPane(jMapvwr);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
그런다음, 이클립스에서 실행 해 봅니다.
다음과 같은 오류가 난다면, 분명히(?) 내부 사내망을 쓸 확률이 있을 것 같습니다.
내부에 있는 어떤 서버를 한번 더 통해서 외부 인터넷을 접근 할 확률이 있는 것이 아닐까 하고 생각 해 볼 수 있습니다.
Failed loading https://c.tile.openstreetmap.org/3/5/2.png:
class javax.net.ssl.SSLHandshakeException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
위의 오류가 난다면, 다음 내용을 확인해 보시기 바랍니다.
package com.tobee.osm.map.viewer;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.openstreetmap.gui.jmapviewer.JMapViewer;
public class OSMViewer {
public static void main (String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JMapViewer jMapvwr = new JMapViewer();
JFrame frame = new JFrame("OSM Viewer");
frame.setSize(800, 600);
frame.setContentPane(jMapvwr);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
위의 코드를 실행해 본다면 다음과 같이 오픈스트리트 맵이 활성화 된 것을 볼 수가 있을 것입니다.
다음은 JMapViewer 내에 있는 Demo 클래스 입니다.
org.openstreetmap.gui.jmapviewer
그런데... 뭔가 이미지가 깨져 보이네요.
이상.
'프로그래밍 > GIS' 카테고리의 다른 글
카카오 맵 API 를 사용한 도형 좌표 표출 (0) | 2024.01.30 |
---|---|
톰캣 카카오 맵 API 사용하기 (0) | 2024.01.29 |
[C/C++] GIS 따라해보기 – gdal/GEOS SHP 파일 조작 (0) | 2023.01.01 |
당신이 알아두어야 할 GIS 프로그래밍 언어들 (0) | 2022.12.31 |
상용 및 오픈 소스 GIS 소프트웨어의 10 가지 차이점 (0) | 2022.12.30 |