2014-03-07 3 views
2

내가 원하는 것은 다음과 같습니다.Android : Google지도 - 여러 지점 간 경로 가져 오기

경로/경로 목록 (사용자가 내 앱을 따라야 함)이 표시됩니다. 지도상의 경로를 그리는 데 문제가 있습니다. 경로/경로에는 거리 이름, 거리 좌표 및 거리 세그먼트가 포함됩니다.

지도에서 경로/경로를 그리는 방법을 알아 내고 경로를 업데이트하십시오. 예를 들어 사용자가 이동 중일 때 아이콘을 이동하여 사용자의 진행 상태 또는 그려진 선을 표시 할 때 경로가 짧아지면별로 중요하지 않습니다. 그래서 내가 참조 할 수있는 튜토리얼을 가르쳐 주시겠습니까?

나는 지금까지 많이 본 적이 있지만 대부분은 Google지도에서 길을 찾거나 그려진 선은 시작점에서 끝점까지 직선이며 거리에 전혀 맞지 않습니다.

답변

1

이 자습서를 따르십시오. 사용자 위치와 표식 사이를 그려야합니다. 사용자 측에서는 onLocationChange 함수를 호출하여 실제 위치를 가져 와서 선을 다시 그립니다. http://wptrafficanalyzer.in/blog/driving-route-from-my-location-to-destination-in-google-maps-android-api-v2/

+0

흠 난 당신이 질문을 이해하지 못했다 생각합니다. 나는 Google지도를 사용하여지도를 그려보고 싶지 않습니다. 주어진 지점으로 경로를 그려야합니다. – user3182266

+1

여기에지도에서 경로를 그리는 방법의 예입니다. 가장 유용한 대답의 마지막 부분에있는 그림 부분입니다. http://stackoverflow.com/questions/14444228/android-how-to-draw-route-directions-google-maps-api-v2-from-current-location-t – bogdand

+0

도움을 원한다면 upvote – ismail

0

이를 달성하기 위해, 아래의 ArrayList markerPoints의

  1. 가져 오기 목록을 단계에 따라 구글 길 찾기 API를 타격 한 후 수신 된 데이터를 분석 할 필요가;

  2. 예를 들어, 여러 대상 경로에 대한

    LatLng origin = markerPoints.get(0); 
    LatLng dest = markerPoints.get(1); 
    
    // Getting URL to the Google Directions API 
    String url = getDirectionsUrl(origin, dest); 
    
    DownloadTask downloadTask = new DownloadTask(); 
    
    // Start downloading json data from Google Directions API 
    downloadTask.execute(url); 
    
  3. , 그것은

  4. 단일 경로에 대한 귀하의 마커를 만들기 ABDC 등

    private List<String> getDirectionsUrl(ArrayList<LatLng> markerPoints) { 
    List<String> mUrls = new ArrayList<>(); 
    if (markerPoints.size() > 1) { 
        String str_origin = markerPoints.get(0).latitude + "," + markerPoints.get(0).longitude; 
        String str_dest = markerPoints.get(1).latitude + "," + markerPoints.get(1).longitude; 
    
        String sensor = "sensor=false"; 
        String parameters = "origin=" + str_origin + "&destination=" + str_dest + "&" + sensor; 
        String output = "json"; 
        String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters; 
    
        mUrls.add(url); 
        for (int i = 2; i < markerPoints.size(); i++)//loop starts from 2 because 0 and 1 are already printed 
        { 
         str_origin = str_dest; 
         str_dest = markerPoints.get(i).latitude + "," + markerPoints.get(i).longitude; 
         parameters = "origin=" + str_origin + "&destination=" + str_dest + "&" + sensor; 
         url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters; 
         mUrls.add(url); 
        } 
    } 
    
    return mUrls; 
    } 
    
  5. 전화

    에서 위의 방법 A-B, B-D, 같은 여러 경로를 생성하는3210

    위의 코드는 호출 D-C 등