폴리라인 (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)));
'프로그래밍 > Android (Java)' 카테고리의 다른 글
안드로이드 파일공유 PROVIDER (0) | 2019.09.16 |
---|---|
지오코딩 GeoCoding (주소,지명 ↔ 위도,경도 변환) 예제 (0) | 2019.09.06 |
권한 여부 체크하기 (0) | 2019.09.04 |
저장소 파일 불러올 때 읽기 권한 요청 설정 (0) | 2019.09.04 |
Fragment 에서 상위 Activity 재시작 하기 (0) | 2019.08.28 |