2016-09-28 11 views
1

現在の場所の緯度と経度を計算しました。私が今したいのは、その場所の場所を取得することです。ここで私のJavaコードは、経度と緯度を計算するためです。私はマニフェストコードの許可を取った、私はこのJavaコードに含まれていません。計算された緯度と経度で場所を取得する方法

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
    locationListener = new LocationListener() { 
     @Override 
     public void onLocationChanged(Location location) { 
      textView.append("\n " + location.getAltitude() + " " + location.getLongitude()); 
     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) { 

     } 

     @Override 
     public void onProviderEnabled(String provider) { 

     } 

     @Override 
     public void onProviderDisabled(String provider) { 
      Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      startActivity(intent); 
     } 
    }; 

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     requestPermissions(new String[]{ 
       Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION, 
       Manifest.permission.INTERNET 
     }, 10); 
     return; 
    } else { 
     configureButton(); 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    switch (requestCode) { 
     case 10: 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) 
       configureButton(); 
      return; 
    } 
} 

private void configureButton() { 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      locationManager.requestLocationUpdates("gps", 5000, 0, locationListener); 
     } 
    }); 
} 
+2

あなたは "その場の場所" の下に何を意味するか指定してください?緯度と経度はすでに場所の場所です。指定した座標でLocationクラスのインスタンスを作成しますか? –

答えて

0

ここは私が緯度と経度から位置を取得するために使用したコードスニペットです。

Geocoder geocoder; 
List<Address> addresses; 
geocoder = new Geocoder(this, Locale.getDefault()); 

addresses = geocoder.getFromLocation(latitude, longitude, 1); // Here 1 represent max location result to returned, by documents it recommended 1 to 5 

String address = addresses.get(0).getAddressLine(0); // If any additional address line present than only, check with max available address lines by getMaxAddressLineIndex() 
String city = addresses.get(0).getLocality(); 
String state = addresses.get(0).getAdminArea(); 
String country = addresses.get(0).getCountryName(); 
String postalCode = addresses.get(0).getPostalCode(); 
String knownName = addresses.get(0).getFeatureName(); // Only if available else return NULL 

それとも、このリンクから、より多くのカスタム情報を取得するために、公式ドキュメントを使用することができます。

http://www.androidauthority.com/get-location-address-android-app-628764/

1
Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
String result = null; 
try { 
     List<Address> addressList = geocoder.getFromLocation(
     latitude, longitude, 1); //use your lat, long value here 

     if (addressList != null && addressList.size() > 0) { 
      Address address = addressList.get(0); 
      StringBuilder sb = new StringBuilder(); 
      for (int i = 0; i < address.getMaxAddressLineIndex(); i++){ 
       sb.append(address.getAddressLine(i)).append("\n"); 
      } 
      sb.append(address.getLocality()).append("\n"); 
      sb.append(address.getPostalCode()).append("\n"); 
      sb.append(address.getCountryName()); 
      result = sb.toString(); 
      } 
    } catch (IOException e) { 
     Log.e(TAG, "Unable connect to Geocoder", e); 
} 

詳細参照: https://developer.android.com/training/location/display-address.html

ここでは、そのためのサンプルコードです。 :

関連する問題