Google Maps Marker для отображения названия местоположения в заголовке

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

Вот мой код

    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();
            }

        }
    });}

2 ответа

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

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

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

Другие вопросы по тегам