2017-04-16 14 views
0

緯度と経度を使って走行距離を計算しようとしています。今私はそれを行うために地図APIの距離行列を使用できることを知っています。しかし、私の問題は、私はどこにそのリンクを正確に追加するのかわかりません。マップを使って距離を取得するapi android application

これは、私はそれがのgetData()私は計算するため、サーバからの緯度と経度を取得する必要がありますので、後に追加される必要がありますね、私のMainActivity.javaファイル

package com.example.john.bustrackclient; 

import android.Manifest; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.os.Parcelable; 
import android.support.v4.app.ActivityCompat; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import static com.android.volley.Request.Method.GET; 
import static com.example.john.bustrackclient.R.id.textView4; 

public class MainActivity extends AppCompatActivity implements View.OnClickListener,LocationListener { 

    LocationManager locationManager; 
    String mprovider; 
    String latitude,longitude,latitude1,longitude1; 

    private EditText editTextId; 
    private Button buttonGet; 
    private TextView textViewResult; 

    private ProgressDialog loading; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     editTextId = (EditText) findViewById(R.id.editTextId); 
     buttonGet = (Button) findViewById(R.id.buttonGet); 
     textViewResult = (TextView) findViewById(R.id.textViewResult); 

     buttonGet.setOnClickListener(this); 

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     Criteria criteria = new Criteria(); 

     mprovider = locationManager.getBestProvider(criteria, false); 

     if (mprovider != null && !mprovider.equals("")) { 
      if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
       return; 
      } 
      Location location = locationManager.getLastKnownLocation(mprovider); 
      locationManager.requestLocationUpdates(mprovider, 15000, 1, this); 

      if (location != null) 
       onLocationChanged(location); 
      else 
       Toast.makeText(getBaseContext(), "No Location Provider Found Check Your Code", Toast.LENGTH_SHORT).show(); 
     } 
    } 

    public void onLocationChanged(Location location) { 
     TextView latitude = (TextView) findViewById(R.id.textView2); 
     TextView longitude = (TextView) findViewById(R.id.textView3); 

     latitude.setText("Latitude: " + location.getLatitude()); 
     longitude.setText("Longitude: " + location.getLongitude()); 

    } 

    public void onStatusChanged(String s,int i,Bundle bundle) 
    {} 

    public void onProviderEnabled(String s) 
    {} 

    public void onProviderDisabled(String s) 
    {} 


    private void getData() { 
     String destination = editTextId.getText().toString().trim(); 
     if (destination.equals("")) { 
      Toast.makeText(this, "Please enter your destination", Toast.LENGTH_LONG).show(); 
      return; 
     } 
     loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false); 

     String url = Config.DATA_URL+editTextId.getText().toString().trim(); 

     StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       loading.dismiss(); 
       showJSON(response); 
      } 
     }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
        } 
       }); 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    private void showJSON(String response){ 
     String latitude1=""; 
     String longitude1=""; 
     try { 
      JSONObject jsonObject = new JSONObject(response); 
      JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY); 
      JSONObject updata = result.getJSONObject(0); 
      latitude1 = updata.getString(Config.KEY_LATITUDE); 
      longitude1 = updata.getString(Config.KEY_LONGITUDE); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     textViewResult.setText("Latitude: "+latitude1+"\nLongitude: "+longitude1); 
    } 

    @Override 
    public void onClick(View v) 
    { 
     getData(); 
    } 
} 

です。私はアンドロイドにとって非常に新しく、これは私の最初の種類の先進的なアプリケーションであり、すでにかなりのコードを試しています。誰かが、上記のコードでどのように、どこに追加するべきかを教えてください。

ご協力いただきありがとうございます。あなたはLNG LAT先を持っていたら

答えて

0

あなたは距離行列API呼び出し

 String origin = null; 
    String destination = null; 

    if (mCurrentLocation != null && destLtLng != null) { 
     origin = mCurrentLocation.getLatitude() + Constants.COMMA + mCurrentLocation.getLongitude(); 
     destination = destLtLng.latitude + Constants.COMMA 
       + destLtLng.longitude; 
+0

作ることができますあなたの助けをありがとう!しかし、それはリンクではないと思われますか?(https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=latitude,longitude&destinations=latitude,longitude&key=YOUR_API_KEY)上記のコード? – John

関連する問題