2016-12-05 2 views
-5

Я новичок в разработке Android, пытаясь узнать здесь. Я пытаюсь найти маркер для отображения на картах с помощью касания или касания, который работает, а также показывает широту и долготу. Я хочу преобразовать эти широты и долготы в соответствующее местоположение, и я знаю, что это возможно с помощью Reverse Geocoder, но я просто не знаю, как правильно его закодировать.Google maps Marker, чтобы показать название местоположения в заголовке

Вот мой код.

public void onMapReady(final GoogleMap googleMap) { 
    mMap = googleMap; 

    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 

      String address; 
      String city; 
      mMap.clear(); 


      Geocoder geocoder; 
      List<Address> addresses; 

      geocoder = new Geocoder(MapsActivity.this, Locale.getDefault()); 

      try { 
       addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1); 

       address = addresses.get(0).getAddressLine(0); 
       city = addresses.get(0).getLocality(); 

       MarkerOptions markerOptions = new MarkerOptions() 
         .position(point) 
         .title(city); 

       Marker marker = mMap.addMarker(markerOptions); 
       marker.showInfoWindow(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
    });} 

ответ

0

Если вы хотите построить специальное место сборщика как убер или swiggy вы должны написать обслуживание вызовов в Google Places API для получения сведений о местоположении. Вы должны сделать асинхронные служебные вызовы, чтобы получить местоположение маркера.

Если вы хотите использовать помощь Google, вы можете пойти за Google PlacePicker. Это легко, быстро и эффективно с точки зрения производительности и веса приложения.

0

Вы можете использовать рамки коллекции для сопоставления (совпадения) адресов с маркерами. Например, Карта «String, String» address_match; Первая строка будет идентификатором маркера: всякий раз, когда вы создаете маркер getid() и поместите его с адресом в объект карты коллекции. Таким образом, вы можете искать по идентификатору, когда маркер щелкнул

+0

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