Получить местоположение центра текущей карты камеры с помощью Google Map API в Android

#java #android #firebase #google-maps

#java #Android #firebase #google-карты

Вопрос:

Я разрабатываю приложение для Android, которое включает в себя PickLocationActivity.java . Это действие должно позволить пользователю перетаскивать (перемещать) карту, и когда они нажмут a submitButton , должно быть собрано местоположение (longitute и latitute) центра текущей камеры. Я пытаюсь сделать это, установив Pin-код над картой и в центре макета в XML-файле, вот так:

Получить местоположение PIN-кода

Я пытаюсь Log.d узнать, была ли собрана информация о местоположении. Однако в моем logcat ничего не отображается.

PickLocationActivity.java

 @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        submitButton = (FloatingActionButton) findViewById(R.id.submitButton);


        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LatLng myFocus = mMap.getCameraPosition().target;
                Log.d("PickLocationActivity", Double.toString(myFocus.latitude) Double.toString(myFocus.longitude));
            }
        });
    }
  

activity_pick_location.xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.safer.PickLocationActivity" >



<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PickLocationActivity" />


    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@ id/pin"
        android:layout_width="400dp"
        android:layout_height="400dp"
        android:layout_centerInParent="true"
        android:backgroundTint="@android:color/transparent"
        app:backgroundTint="#FFFFFF"
        app:borderWidth="0dp"
        app:elevation="0dp"
        app:hoveredFocusedTranslationZ="0dp"
        app:maxImageSize="50dp"
        app:pressedTranslationZ="0dp"
        app:srcCompat="@drawable/ic_pin" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@ id/submitButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_margin="16dp"
        app:srcCompat="@drawable/ic_add"
        android:backgroundTint="@color/danganRed"
        android:layout_alignParentBottom="true"
        android:tint="@android:color/white"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="30dp"
        android:layout_marginBottom="30dp"
        app:layout_anchorGravity="end" />

</RelativeLayout>
  

Таким образом, цель состоит в том, чтобы после того, как пользователь переместит карту и нажмет кнопку отправки, собрать местоположение PIN-кода и отобразить его в журнале.

В logcat я фильтрую сообщения, pick но он всегда ничего не возвращает. Интересно, правильно ли это использовать mMap.getCameraPosition().target для получения местоположения PIN-кода?

Комментарии:

1. Ваш журнал тегов — это PickLocationActivity, а не pickup

2. @ErwinKurniawanA О, ошибка ввода! Отредактировано, спасибо!

3. mMap.getCameraPosition().target используется для получения местоположения центра фрагмента карты. Поскольку pin-код находится в центре фрагмента, код кажется нормальным.

4. Фильтр журнала чувствителен к регистру — pick это не то же самое, что Pick (из тега PickLocationActivity).