如何从我当前的位置查找数据库中的位置?

时间:2018-08-23 04:36:48

标签: android geolocation location

所以现在我的当前位置半径为1000米,所以我希望显示数据库中距当前位置半径1000米以内的所有位置。

geoFire.setLocation("You", new GeoLocation(latitude, longtitude),
                                new GeoFire.CompletionListener() {
                                    @Override
                                    public void onComplete(String key, DatabaseError error) {
                                        //Add Marker
                                        if(mCurrent != null)
                                            mCurrent.remove(); // Remove old marker
                                        mCurrent = mMap.addMarker(new MarkerOptions()
                                                .position(new LatLng(latitude,longtitude))
                                                .title("You"));

                                        radius= new LatLng(latitude,longtitude);
                                        mMap.addCircle(new CircleOptions()
                                                .center(radius)
                                                .radius(1000) // in Metters
                                                .strokeColor(Color.BLUE)
                                                .fillColor(0x220000FF)
                                                .strokeWidth(5.0f)
                                        );

1 个答案:

答案 0 :(得分:0)

您的geoFire.setLocation用键“您”保存了您的位置。 如果您显示数据库结构,那将是很好的。 但是要获取某个半径范围内的保存位置,您需要执行以下操作:

    GeoFire geoFire = new GeoFire(FirebaseDatabase.getInstance().getReference().child(GEOFIRE_PATH));
            GeoQuery geoQuery = geoFire
                    .queryAtLocation(new GeoLocation(myLocation.latitude, myLocation.longitude), RADIUS);

            geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
                ...onData methods
            }