[Java] URL로부터 데이터(문자열) 읽어오기

지정된 URL에 존재하는 데이터소스로부터 데이터, 특히 문자열 값으로 읽어오는 자바 코드입니다.

URL url = null;
try {
    url = new URL("http://222.237.78.208:8080/yp_tiles/a/metadata.xml");
} catch(MalformedURLException e1) {
    e1.printStackTrace();
}

InputStream in = null;
try {
    in = url.openStream();
    byte[] buffer = new byte[128];
    int readCount = 0;
    StringBuilder result = new StringBuilder();
   
    while((readCount = in.read(buffer)) != -1) {
        String part = new String(buffer, 0, readCount);
        result.append(part);
    }   
   
    System.out.println(result);
} 
catch (IOException e) {
    e.printStackTrace();
}

위의 코드를 실행하게 되면 해당 URL로부터 가져온 데이터가 문자열로써 result 변수에 저장됩니다. 저장된 결과에 대한 화면 표시는 다음과 같습니다.

사용자 삽입 이미지
위의 결과는 타일맵으로 가공된 데이터에 대한 메타 데이터입니다.

[GIS] 모바일 GPS 위치정확도 향상 연구

블랙포인트(BlackPoint-Xr)을 이용해 스마트폰의 GPS 좌표를 그 상황에 맞도록 정확도를 높여 주는 연구과제를 전주대학교 주체하에 진행하고 있습니다. 내일쯤.. 논의된 알고리즘을 실제 구현하여 논의해야하는데.. 실제 구현 단계에서 보니 논의된 알고리즘의 구현에 어려운 점과 제공 받은 데이터의 한계로 알고리즘의 재검토와 데이터 보완을 위한 요청 문서를 만들고 있습니다.

사용자 삽입 이미지
위의 화면은 지금까지 개발된 연구에 대한 구현 시스템입니다. 실제 동영상을 통해 보여드리면 좀더 좋겠지만.. 추후에 정확도 향상 알고리즘이 시스템에 적용되면 동영상으로 제공하면 좋겠습니다.

오차가 많은 모바일 GPS의 정확도를 개선하기 위해 다양한 보정 방법을 적용할 수 있습니다. 그런데 문제는 매우 다양한 변수가 존재한다는 것입니다. 그 수를 셀수도 없는 도로의 선형에 대한 형태들은 물론 GPS가 제공하는 위치에 대해 예측하기 어려운 변수들…

이러한 다양한 변수들에 대해서 정확도 향상을 위한 보정 알고리즘을 “강요”할 경우 시스템이 얼어 버리는 문제가 발생합니다. 또한 얼지는 않더라도 여러개의 보정 알고리즘이 동시에 적용될 경우 서로 상반되는 조건이 발생할 수도 있고요.

해서 GPS에 대한 상황을 길게 유지하지 않고 짧게 유지하되.. 이 짧은 상태에 대해서 제약 조건을 걸고 정확도 보정을 하고 다시 아무런 제약 조건이 깨끗한 상태에서 다시 위치 정확도를 보정하는 알고리즘이 최선이 아닐까 싶습니다.

재밌기도 하고.. 아직 문제 해결을 위한 실제 구현을 위한 구체적인 방법을 강구하고 있기에 조금 답답하기는 하지만 분명 의미가 큰 연구과제라고 생각됩니다.