2013-05-22 22 views
11

私は緯度を取得しようとしています&経度からアドレス、問題は..私は正確な緯度&経緯度を与えると私は完全なアドレスを与えるとき、都市名、それは私に正しい緯度&経度を与えていないよりも、ストリート号)...ご協力の応答をandroidの住所から緯度と経度を取得する

感謝...

私のコードは..です

//String addressStr = "faisalabad";/// this give me correct address 
     String addressStr = "Sainta Augustine,FL,4405 Avenue A"; 
      Geocoder geoCoder = new Geocoder(MapClass.this, Locale.getDefault()); 

      try { 
       List<Address> addresses = 
      geoCoder.getFromLocationName(addressStr, 1); 
       if (addresses.size() > 0) { 
       latitude = addresses.get(0).getLatitude(); longtitude = 
      addresses.get(0).getLongitude(); } 

      } catch (IOException e) { // TODO Auto-generated catch block 
      e.printStackTrace(); } 


     pos = new LatLng(latitude, longtitude); 
     googleMap.addMarker(new MarkerOptions().icon(
       BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_RED)) 
       .position(pos)); 
     googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(pos, 15)); 
     googleMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); 
+0

何かエラーが発生していますか? –

+0

エラーはありません。デフォルトの緯度と経度の値は0.0です。マーカーは海に置かれます... –

+0

getDefault()はどのようなロケールですか? –

答えて

6

私はそれを着用... :)

配列のみが、それは私のアドレスから正しい緯度と経度を与える...都市名よりと状態よりも間違った...

最初の所与の住所です。 。:)

Geocoder geoCoder = new Geocoder(MapClass.this); 
01に

Geocoder geoCoder = new Geocoder(MapClass.this, Locale.getDefault()); 

を変更

ありがとうございます、皆様お時間をいただきありがとうございます...

+1

これは解決する方法はまだ海洋の場所を示しています? – DroidLearner

+0

市の名前と州の住所と住所はどこで分かりますか? – DroidLearner

+0

私の質問では{String addressStr = "xxxxあなたのアドレスはここにxxxx"} ===あなたの住所は街の住所でなければならず、国よりも国より.. –

1

これは私の解決策です:

private void createMarkerWithLocation() { 
    /* Use the LocationManager class to obtain GPS locations */ 
    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 300000, 40, this); 

    Location location = mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    /*check both providers even for lastKnownLocation*/ 
    if (location == null) 
     location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    if(location != null) { 

     double latitude = location.getLatitude(); 
     double longitude = location.getLongitude(); 

     LatLng currentLatLng = new LatLng(latitude, longitude); 

     if(isConnected(this)) { 
      Geocoder gCoder = new Geocoder(ChoiceDestinationActivity.this); 
      List<Address> addresses = gCoder.getFromLocation(latitude, longitude, 1); 
      String address = addresses.get(0).getAddressLine(0); 
      String city = addresses.get(0).getAddressLine(1); 
      String country = addresses.get(0).getAddressLine(2); 
      Toast.makeText(this, country + ", " + city + ", " + address, Toast.LENGTH_SHORT).show(); 

      marker = map.addMarker(new MarkerOptions() 
      .position(currentLatLng) 
      .title(city) 
      .snippet(address) 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))); 
     } 
    } 
} 

public static boolean isConnected(Context context) { 
    NetworkInfo ni = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); 
    return (ni!=null && ni.isAvailable() && ni.isConnected()); 
} 

私はそれを使ってGoogleマップにマーカーを追加します。これにより、ユーザーの場所に関するすべての情報を取得できます。

私はあなたが手伝ってくれることを願っています!

+0

再生のおかげで、しかし、私は、ユーザーからのアドレスを取得している、私はその点にマーカーを置くよりも...現在の場所からアドレスを取得していません... –

関連する問題