2013-03-29 3 views
2

Я делаю демонстрационное приложение с Google Maps Api V2.Convert Lat Long для адреса Google Maps ApiV2

Я добавил простой маркер и сделал перетаскиваемым

Вот мой код:

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


     googleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
     googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
     googleMap.setOnMapClickListener(this); 
     googleMap.setOnMarkerDragListener(this); 
     googleMap.setOnMapLongClickListener(this); 


     googleMap.setInfoWindowAdapter(new InfoWindowAdapter() { 

      @Override 
      public View getInfoWindow(Marker arg0) { 

       return null; 
      } 

      @Override 
      public View getInfoContents(Marker marker) { 

       LayoutInflater inflater = (LayoutInflater) MapsDemo.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View v = inflater.inflate(R.layout.custom_info, null); 

       TextView tv = (TextView)v.findViewById(R.id.textView1); 
       tv.setText(marker.getSnippet()); 

       return v; 
      } 
     }); 

     googleMap.setMyLocationEnabled(true); 
     googleMap.getUiSettings().setRotateGesturesEnabled(true); 
     googleMap.getUiSettings().setTiltGesturesEnabled(true); 

     marker = googleMap.addMarker(new MarkerOptions() 
     .position(ROMA) 
     .title("Hello") 
     .snippet("Nice Place") 
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)) 
     .draggable(true)); 

@Override 
    public void onMarkerDrag(Marker marker) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void onMarkerDragEnd(Marker marker) { 
     LatLng field = marker.getPosition(); 
     System.out.println("LatitudenLongitude:"+field.latitude+" "+field.longitude); 

    } 

    @Override 
    public void onMarkerDragStart(Marker marker) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onMapLongClick(LatLng latlng) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onMapClick(LatLng latlng) { 
     // TODO Auto-generated method stub 

    } 

}

Теперь я хочу, чтобы, когда адрес должен выйти, когда пользователь щелкает на маркере.

Простой вопрос: Хотите, чтобы получить адрес (имя) от Lat Long в API v2

ответ

4

Вы должны использовать Geocoder доступны в Android API. Вам необходимо позвонить в getFromLocation(latitude,longitude,maxResults), который вернет List<Address>.

+0

Hi Ovidiu. Не могли бы вы помочь мне в этом вопросе, я хочу, чтобы, когда я перетаскиваю маркер до границ, карта должна автоматически прокручиваться в другую сторону. Является ли это возможным ? - google maps api v2? –

+1

Возможно, вам стоит задать еще один вопрос. –

+0

Хорошо Спасибо @Ovidiu –

13

Попробуйте это:

public List<Address> getAddress() { 
    if (latitude != 0 && longitude != 0) { 
     try { 
      Geocoder geocoder = new Geocoder(context); 
      List<Address> addresses = geocoder.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); 
      Log.d("TAG", "address = " + address + ", city = " + city + ", country = " + country); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } else { 
     Toast.makeText(context, "latitude and longitude are null", Toast.LENGTH_LONG).show(); 
    } 
    return addresses; 
} 
+0

Извините, я не понял, чего вы точно хотите? вы можете объяснить это кратко или дать, например. –

+0

Я хочу, чтобы, когда пользователь начинает перетаскивать маркер и достигает границы экрана карты (видимая часть), тогда экран карты должен автоматически переходить на другую сторону, чтобы можно было показать больше. –

+0

попробуйте это [ссылка] (http://android-er.blogspot.in/2013/01/google-maps-android-api-v2-example_7.html) Надейтесь, что это вам поможет. –

Смежные вопросы