2017-04-27 125 views
-1

使用折線我可以在兩點之間創建路徑。如何得出兩個經緯度點之間的線路?

但是當我使用這兩點 (艾哈邁達巴德到紐約) 折線不是創建。 否則它的工作原理,如果有兩個點之間沒有大海。

我'越來越問題時,點狀

enter image description here

但在這種情況下,它從普傑工作,艾哈邁達巴德 enter image description here

回答

0

最後我得到了答案奧拉尤伯杯應用程序如何做這些..

enter image description here

ArrayList<LatLng> points = new ArrayList<LatLng>(); 
       PolylineOptions polyLineOptions = new PolylineOptions(); 
       points.add(new LatLng(from_latitude,from_longitude)); 
       points.add(new LatLng(to_latitude,to_longitude)); 
       polyLineOptions.width(7 * 1); 
       polyLineOptions.geodesic(true); 
       polyLineOptions.color(activity.getResources().getColor(R.color.black)); 
       polyLineOptions.addAll(points); 
       Polyline polyline = mMap.addPolyline(polyLineOptions); 
       polyline.setGeodesic(true); 
0

可以繪製像下面一個

PolylineOptions rectOptions = new PolylineOptions(); 
    LatLng polLatLng = null; 
    if (points.size() > 0) { 
     ArrayList<LatLng> pathPoint = new ArrayList<LatLng>(); 
     for (int k = 0; k < points.size(); k++) { 
      double polLat = points.get(k).latitude; 
      double polLng = points.get(k).longitude; 
      pathPoint.add(new LatLng(polLat, polLng)); 
      polLatLng = new LatLng(polLat, polLng); 
     } 
     double startLatitude = points.get(0).latitude; 
     double startLongitude = points.get(0).longitude; 
     double endLatitude = points.get(points.size() - 1).latitude; 
     double endLongitude = points.get(points.size() - 1).longitude; 
     LatLng start = new LatLng(startLatitude, startLongitude); 
     LatLng end = new LatLng(endLatitude, endLongitude); 

     mMap.addMarker(new MarkerOptions().position(start).title("start")); 
     mMap.addMarker(new MarkerOptions().position(end).title("end")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(polLatLng)); 
     mMap.animateCamera(CameraUpdateFactory.zoomTo(10)); 
     rectOptions.addAll(pathPoint); 
     rectOptions.width(10); 
     rectOptions.color(Color.BLUE); 
     mMap.addPolyline(rectOptions); 
0
solution 1: 

    private void showDirection(LatLng source, LatLng destination) { 

    Map<String, String> hashMap = new HashMap<String, String>(); 

    final String url = "http://maps.googleapis.com/maps/api/directions/json?origin=" 
      + source.latitude 
      + "," 
      + source.longitude 
      + "&destination=" 
      + destination.latitude 
      + "," 
      + destination.longitude 
      + "&sensor=false"; 
    new HttpRequester(activity, hashMap, StaticValues.ServiceCode.GET_ROUTE, true, 
      this); 
    Utils.showCustomProgressDialog(activity, 
      getString(R.string.text_getting_direction), false, null); 
} 


solution 2: 
private void build_retrofit_and_get_response(String type) { 

    String url = "https://maps.googleapis.com/maps/"; 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(url) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    RetrofitMaps service = retrofit.create(RetrofitMaps.class); 

    Call<Example> call = service.getDistanceDuration("metric", StartLocation.latitude + "," + StartLocation.longitude, 
      EndLocation.latitude + "," + EndLocation.longitude, type); 

    call.enqueue(new Callback<Example>() { 
     @Override 
     public void onResponse(Response<Example> response, Retrofit retrofit) { 

      try { 
       //Remove previous line from map 
       if (line != null) { 
        line.remove(); 
       } 
       // This loop will go through all the results and add marker 
on each location. 
       for (int i = 0; i < response.body().getRoutes().size(); i++) { 
        String distance = response.body().getRoutes().get(i).getLegs().get(i).getDistance().getText(); 
        String time = response.body().getRoutes().get(i).getLegs().get(i).getDuration().getText(); 
//   activity.setTitleActionBar("Distance:" + distance + ", Duration:" + time); 
        String encodedString = response.body().getRoutes().get(0).getOverviewPolyline().getPoints(); 
        List<LatLng> list = decodePoly(encodedString); 
        line = mGoogleMap.addPolyline(new PolylineOptions() 
          .addAll(list) 
          .width(10) 
          .color(Color.RED) 
          .geodesic(true) 
        ); 
       } 
      } catch (Exception e) { 
       Log.d("onResponse", "There is an error"); 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onFailure(Throwable t) { 
      Log.d("onFailure", t.toString()); 
     } 
    }); 

} 
+0

TYPE = 「駕駛」 或 「走」 –

+1

哥哥使用22.970385,72.577455和41.029469,-77.618526和繪製路徑..你不會得到輸出..首先嚐試一下..然後告訴我 –

+0

它爲我工作 –

相關問題