2017-01-24 3 views
0

Я хочу нарисовать маршрут в моем мобильном приложении. Все работает отлично только маршрут не идет должным образом, как на дороги здесь мой код ..Как нарисовать маршрут маршрута с доступным lat long в android

private void formRoadMapUrl(String tempLatLng) { 
    StringBuilder urlString = new StringBuilder(ServerConnector.GOOGLE_ROAD_MAP_API + tempLatLng); 
    urlString.append("&interpolate=true&key=" + AppConfigurationSetting.GOOGLE_ROAD_MAP_API); 
    requestToServer(urlString); 
} 

здесь я посылаю мои латы долго Google ..

private void locationTrackPolyline(String output) { 
    try { 
     JSONObject obj = new JSONObject(output); 
     if (obj.has("snappedPoints")) { 
      mResultOfGoogleRoadMapAPI++; 
      Gson gson = new Gson(); 
      String result = obj.getString("snappedPoints"); 

      Type type = new TypeToken<List<GoogleRoadMap>>(){}.getType(); 
      List<GoogleRoadMap> batchArrayModel = gson.fromJson(result, type); 
      Integer batchListSize = batchArrayModel.size(); 

      ArrayList<LatLng> polylines = new ArrayList<LatLng>(); 

      for (GoogleRoadMap batchObj: batchArrayModel) { 
       LatLng polyline = new LatLng(Double.valueOf(batchObj.getLocation().getLatitude()), 
         Double.valueOf(batchObj.getLocation().getLongitude())); 
       polylines.add(polyline); 

       // TODO : animation data passing is google map 
       addMarkerToMap(polyline); 
      } 

      // Polylines are useful for marking paths and routes on the mMap. 
      LatLng lat = polylines.get(0); 

      Integer getLength = polylines.size(); 
      LatLng endPoints = polylines.get(getLength - 1); 

      mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(lat, 17)); 
      if(mResultOfGoogleRoadMapAPI == 1) { 
       mMap.addMarker(new MarkerOptions() 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_green100)) 
         .title("Start Point") 
         .snippet("The most populous city in Australia.") 
         .position(lat)); 
      } 
      mAnimatedPolyline.addAll(polylines); 
      if(mIterationOfGoogleRoadMapAPI == mResultOfGoogleRoadMapAPI) { 
       mMap.addMarker(new MarkerOptions() 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_red100)) 
         .title("End Point") 
         .position(endPoints)); 

       animator.startAnimation(true); 
      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

здесь я показываю путь, за лат долго я получаю от google.

+0

Где находится код? Требуется [MCVE]. См. [Спросить]. –

+0

Если вы хотите нарисовать линию (маршрут), вам нужно использовать карту google. Polyline ссылается на эту ссылку https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline – IndependentDev

+0

@ T.Heron теперь я поместил свой код, моя карта работает нормально, проблема в том, что он не показывает правильный путь. –

ответ

1
//Please add below code 

LatLng mLatLng = new LatLng(23.2156, 72.6569); 
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(mLatLng, 10); 
googlemap.animateCamera(cameraUpdate); 


googlemap.addPolyline(new PolylineOptions().add(new LatLng(lat,lng), new LatLng(23.2156, 72.6369)).width(10).color(Color.BLUE).geodesic(true)); 
MarkerOptions markerOptions = new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pin)); 
markerOptions.title(“start"); 
googlemap.addMarker(markerOptions.position(new LatLng(23.2156, 72.6569))); 

MarkerOptions markerOptionsDest = new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pin)); 
markerOptionsDest.title(“end"); 
googlemap.addMarker(markerOptionsDest.position(new LatLng(23.2156, 72.6369)));