2013-02-06 4 views
0

LatLng 때마다 ArrayList에서 Google지도의 폴리 라인을 그릴 필요가 있습니다. 그 색은 차량의 최대 속도에 대한 현재 속도의 백분율에 따라 달라집니다.Google지도 api v2 폴리 라인 Android android

나는 그것을 위해 다음 코드를 사용하고 있습니다 : Route.speeds이 유지 모든 속도를 갖는 ArrayList입니다

for (int i = 0; i < Route.speeds.size(); i++) 
     { 
      colorOfGraph = graphColor(Route.speeds.get(i), maxSpeed); 
      polylineOptions = new PolylineOptions().addAll(Route.points).width(5).color(colorOfGraph); 
      Polyline polyline = googleMap.addPolyline(polylineOptions); 
      Route.paths.add(polyline); 
     } 

, maxspeed이 변경 차량의 최대 속도 인 경우 차량 변경 maxspeed 및 폴리 라인의 색상은 최대 속도의 % 나이에 따라 다르지만 최대 속도가 증가함에 따라 이전 폴리 라인의 색상도 변경되어야하므로 다시 그려야합니다. 그래서 여기 내 qs는 새로운 latlng 얻을 때마다 폴리 라인을 다시 그리는 방법입니다.

누구든지이 문제를 도와주세요.

감사 & 감사

+0

정확히 무엇이 당신의 질문입니까? 미안 해요,하지만 지금은 다른 사람이 당신을 위해 그것을 코드하려는 것처럼 들리네 ... – andr

+0

그 사실은 내가 단지 코드를 – ekjyot

+0

작성했지만 내 문제를 해결하기 위해 도움을 요청하지만 당신은 너의 문제 야! 귀하의 게시물에 아무런 문제 설명이 없습니다. 의심의 여지가 없습니다! – andr

답변

3

좋아, "다시 그리기"하기 위해서 Polyline 두 가지 옵션이 있습니다

  1. Polyline.remove()을 사용하여 제거하여 시뮬레이션을. 그런 다음 PolylineOptions을 사용하여 다시 빌드하고 GoogleMap.addPolyline()을 추가하십시오.

  2. 폴리 라인의 속성을 변경하십시오. setColor(int)을 사용하여 색상을 설정할 수 있으며 setPoints(List<LatLng>)을 사용하여 포인트를 설정할 수 있습니다. 이 방법 중 하나를 호출하면 폴리선이 자동으로지도에 다시 그려집니다.

당신이 생성 된 폴리 라인에 대한 참조를 유지해야 두 경우 모두

,하지만 당신은 이미 라인에 할 : 나는 당신이라면 당신이 원하기 때문에

Route.paths.add(polyline); 

내가 두 번째 옵션으로 갈 것 Route.paths 컬렉션을 다시 만들어야합니다. 대신 이전에 LatLng에서 마지막으로 LatLng까지 기록 된 하나의 폴리선을 추가해야합니다.

+0

아니요, 실제로 다른 색상으로 다시 그리기 원합니다. 이전에 기록한 부분에 추가하지 마세요. 그래서 Polyline.remove()를 사용하여 폴리선을 제거해야합니다. – ekjyot

+0

포인트와 색상 만 변경하면이 두 옵션이 모두 동일합니다. 가장 적합한 것을 선택하십시오. – andr