Как конвертировать GeoPoint в Firestore в LatLng - PullRequest
0 голосов
/ 16 декабря 2018

Привет! Я использую Android Studio и у меня проблемы с преобразованием данных, полученных из Firestore.Я сохранил данные в моем магазине Firestore GeoPoint и хочу запросить их и преобразовать в тип объекта LatLng.

Вот мой код:

    final FirebaseFirestore db = FirebaseFirestore.getInstance();
    final CollectionReference stores = db.collection("stores");
    stores.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Log.i(TAG,document.getData().get("position").toString());
                        }
                    } else {
                        Log.w(TAG, "Error getting documents.", task.getException());
                    }
                }
            });

и вот что я получил

    12-16 10:59:21.557 28239-28239/com.company.yummy.yummy I/firebaseCatch: GeoPoint { latitude=29.339555, longitude=169.715858 }
    12-16 10:59:21.557 28239-28239/com.company.yummy.yummy I/firebaseCatch: GeoPoint { latitude=68.085393, longitude=-42.081575 }
    12-16 10:59:21.557 28239-28239/com.company.yummy.yummy I/firebaseCatch: GeoPoint { latitude=16.503923, longitude=90.196118 }
    12-16 10:59:21.557 28239-28239/com.company.yummy.yummy I/firebaseCatch: GeoPoint { latitude=-69.424524, longitude=-71.356333 }
    12-16 10:59:21.557 28239-28239/com.company.yummy.yummy I/firebaseCatch: GeoPoint { latitude=69.502257, longitude=71.100474 }

Все, что мне нужно, это получить значение широты и долготы для установки в объект LatLng.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Чтобы решить эту проблему, вы можете просто использовать getGeoPoint() метод, подобный этому:

GeoPoint geoPoint = document.getGeoPoint("position");

И чем использовать:

double lat = geoPoint.getLatitude();
double lng = geoPoint.getLongitude ();
LatLng latLng = new LatLng(lat, lng);
0 голосов
/ 16 декабря 2018

Вам нужно извлечь широту и долготу из полученного объекта Geopoint,

и создать новый объект LatLng, например,

double lat = document.getData().get("position").getLatitude();
double lng = document.getData().get("position").getLongitude ();
LatLng latLng = new LatLng(lat, lng);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...