#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).