0

現在地の経度と緯度を取得して Geofire に保存する方法は知っていますが、特定の住所の経度と緯度を取得して保存するにはどうすればよいですか。以下のコードをテストしましたが、何も保存されていません。

私は何を間違っていますか?

String tx7=txt7.getText().toString();

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("locals");
DatabaseReference update = rootRef.child("Users").child(uid);

GeoFire geoFire=new GeoFire(rootRef);

Geocoder geocoder = new Geocoder(AfterRegistrationActivity.this, Locale.getDefault());
String result = null;
List<Address> addressList= null;
try {
    addressList = geocoder.getFromLocationName(tx7, 1);
    Double latt=addressList.get(0).getLatitude();
    Double lonn=addressList.get(0).getLongitude();
    geoFire.setLocation(uid, new GeoLocation(latt, lonn), new GeoFire.CompletionListener() {
        @Override
        public void onComplete(String key, DatabaseError error) {
            if (error != null) {


                System.err.println("There was an error saving the location to GeoFire: " + error);
            } else {
                System.out.println("Location saved on server successfully!");
            }
        }
    });
} catch (IOException e) {
    e.printStackTrace();
}
4

1 に答える 1

0

これは、ジオコーダーで行うことができます。

private void geoLocate(){
    Log.d(TAG, "geoLocate: geolocating");

    String yourPlace = mSearchText.getText().toString();

    Geocoder geocoder = new Geocoder(YourActivity.this);
    List<Address> list = new ArrayList<>();
    try{
        list = geocoder.getFromLocationName(searchString, 1);
             // passing 1 means you will get one result of that place you can pass any number
    }catch (IOException e){
        Log.e(TAG, "geoLocate: IOException: " + e.getMessage() );
    }

    if(list.size() > 0){
        Address address = list.get(0);

        Log.d(TAG, "geoLocate: found a location: " + address.toString());
      // from address object you can get all info like address.latituted etc
        //Toast.makeText(this, address.toString(), Toast.LENGTH_SHORT).show();

    }
}
于 2020-01-26T10:12:35.427 に答える