当前位置: 首页 > 知识库问答 >
问题:

我怎么能检索纬度和经度从firest和使用它在下面的功能?

贺华容
2023-03-14

所以我试图计算方向,但我不知道如何从firestore中检索纬度和经度,并将其用作下面的起点,以下是我尝试过的东西。它不工作,会崩溃,所以如果有人知道如何从firestore保存纬度和经度,然后将其放入下面的函数中,请帮助。

private void calculateDirections() {
    Log.d(TAG, "calculateDirections: calculating directions.");


    direction_ref_end.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
          //  latitude_end = (Double) documentSnapshot.getData().get("latitude");
          //  longitude_end = (Double) documentSnapshot.getData().get("longitude");



        }
    });
    com.google.maps.model.LatLng destination = new com.google.maps.model.LatLng(
                //    latitude_end, longitude_end

    );

共有1个答案

谢阳成
2023-03-14

要从“结束”文档中获取纬度和经度,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference directionRef = rootRef.collection("Direction");
DocumentReference endRef = directionRef.document("End");
endRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                double lat = document.getDouble("latitude");
                double lng = document.getDouble("longitude");
                Log.d("TAG", lat + ", " + lng); //Do what you need to do with these coordinates
            } else {
                Log.d("TAG", "No such document");
            }
        } else {
            Log.d("TAG", "get failed with ", task.getException());
        }
    }
});

logcat中的结果将是:

45.4378090000001, 15.5524778

除此之外,请注意,不能简单地在回调之外使用这些坐标的值。这是因为Firebase API是异步的。因此,为了更好地理解,请查看我在以下帖子中的答案:

  • 如何作为方法的结果返回DocumentSnapShot
 类似资料:
  • 我定义了一个服务(即LocationService),它为我提供用户当前的纬度和经度,作为my_activity的意向性附加。现在,我想用它们在地图上显示当前的位置(使用谷歌地图)。我在mmap.AnimateCamera和mmap.MoveCamera方法中传递了这些latlng,但它们没有显示任何标记或放大到当前位置。如果我做错了什么,请告诉我。 LocationService和my Main

  • 我正试图用ggmap绘制离加拿大最近的沃尔玛商店的某个邮政编码。用于获取位置的函数是: 拉特和隆答道:

  • 我有一对纬度 然而,我需要一个更灵活的解决方案,例如,我希望能够指定1/3, 1/4, 8/9等对点之间。 注:lat1,long1

  • 我有一个onCreate的活动,它计算您的位置和附近的事件之间的距离,我使用lastNotnloceto获取当前设备位置并在谷歌地图上标记它,但我需要它来写经度和纬度它的方法之外用于计算距离。 我已经使用LocationManager来获取粗略的坐标,但这些坐标不够准确,对于距离不到半英里的东西来说,距离为50英里。我目前拥有它,因此将覆盖从LocationManager获得的经度和纬度,但它没有

  • 问题内容: 在询问具体的代码示例之前,我只想问一下是否可以进行类似此伪代码的查询: 从表中选择项目,其中经度/经度=-在某个经度/经度点的x英里内- 那可行吗?还是我必须跳过一些箍?可以推荐的任何好的方法都很棒! 问题答案: 您应该搜索Haversine公式,但是一个好的开始可能是: 使用PHP,MySQL和Google Maps创建商店定位器 -请参见“使用MySQL查找位置”部分 使用MySQ

  • 我想在不同的郊区使用下面的API和pss来获得郊区或地址的纬度和经度。 http://en.wikipedia.org/w/api.php?format=json 此外,郊区列表将约为16,000个,那么如何使用此API提取地理坐标?