폴리라인 (polyline) 그리기

반응형

PolylineOptions polylineOptions = new PolylineOptions();

 

 

String output = out.toString();    // gpx 파일 내용이 output 에 있다고 가정하자.

    String[] split = output.split("\\n");  // 개행 단위로 배열에 넣고
    for(int i=0 ; i<split.length ; i++) {      // 라인 단위로 작업을 시작한다.

        // 정규표현식으로 좌표 값만 가져오기
        if(split[i].contains("lat=") && split[i].contains("lon=")) {

            add_lat = split[i].replaceAll(".*lat=\"", "");
            temp_lat = Double.parseDouble(add_lat.replaceAll("\".*", ""));
            add_lon = split[i].replaceAll(".*lon=\"", "");
            temp_lon = Double.parseDouble(add_lon.replaceAll("\".*", ""));

            polylineOptions.color(Color.RED);  // 폴리라인 옵션에 색상과
            polylineOptions.width(8);                   // 라인 굵기와
            polylineOptions.add(new LatLng(temp_lat, temp_lon)); // 좌표를 반복해서 추가한다.

 

        }

    }

 

 

제거하려는 경우 아래 코드 사용

polyline.remove();

 

 

나쁜 예)

아래와 같이 사용하면 동작은 하나 많은 라인 (테스트시 27,000 라인) 을 가져올때 굉장히 느리며, 앱이 종료되는 현상 발생

mMap.addPolyline(polylineOptions.add(new LatLng(temp_lat, temp_lon)));

 

 

반응형

댓글()