diff --git a/app/src/main/java/com/example/oplogy/FirestoreReception.java b/app/src/main/java/com/example/oplogy/FirestoreReception.java index 942409a..f8a71aa 100644 --- a/app/src/main/java/com/example/oplogy/FirestoreReception.java +++ b/app/src/main/java/com/example/oplogy/FirestoreReception.java @@ -20,7 +20,7 @@ public class FirestoreReception { } //ClassIdを引数にデータの作成を行う - public void getDocumentsByClassId(int classId) { + public void getDocumentsByClassId(int classId, MainActivity context) { CollectionReference collectionRef = db.collection("QuestionnaireForms"); // classIdが引数のものを取得する @@ -34,8 +34,8 @@ public class FirestoreReception { Map data = document.getData(); // CreateRootクラスのインスタンスを作成し、dataを引数として渡す - GeoCoding geoCoding = new GeoCoding(); - geoCoding.processData(data); + GeoCoder geoCoder = new GeoCoder(); + geoCoder.processData(data, context); } } else { Log.w("FirestoreReception", "Error getting documents.", task.getException()); diff --git a/app/src/main/java/com/example/oplogy/GeoCoding.java b/app/src/main/java/com/example/oplogy/GeoCoder.java similarity index 60% rename from app/src/main/java/com/example/oplogy/GeoCoding.java rename to app/src/main/java/com/example/oplogy/GeoCoder.java index 7e48c01..76d994a 100644 --- a/app/src/main/java/com/example/oplogy/GeoCoding.java +++ b/app/src/main/java/com/example/oplogy/GeoCoder.java @@ -1,26 +1,25 @@ package com.example.oplogy; +import android.content.Context; +import android.location.Address; +import android.location.Geocoder; import android.util.Log; import com.google.android.gms.maps.model.LatLng; import com.google.firebase.Timestamp; -import com.google.maps.GeoApiContext; -import com.google.maps.GeocodingApi; -import com.google.maps.model.GeocodingResult; -import java.util.Arrays; +import java.io.IOException; import java.util.List; +import java.util.Locale; import java.util.Map; -public class GeoCoding { - private GeoApiContext geoApiContext; - public void processData(Map data) { +public class GeoCoder { + private Context context; + public void processData(Map data, Context context) { try { - // Google Cloud Platformで作成したAPIキーを設定します - geoApiContext = new GeoApiContext.Builder() - .apiKey("AIzaSyBQ1Ak-I2NL5TP4K59ZI0VgzKk6HNZuusw") - .build(); + this.context = context; + //家庭訪問先の住所 List address = (List) data.get("address"); //家庭訪問の第一希望日(配列0が希望時間帯のはじめ、配列1がおわり) @@ -41,18 +40,20 @@ public class GeoCoding { Log.e("NullPointerException", "getの中身がnull" + e); } } + private LatLng geocodeAddress(String address) { try { - Log.d("Geocodingtry", "tryに入った"); - GeocodingResult[] results = GeocodingApi.geocode(geoApiContext, address).await(); - Log.d("GeocodingResult", "Results: " + Arrays.toString(results)); - if (results != null && results.length > 0) { - return new LatLng(results[0].geometry.location.lat, results[0].geometry.location.lng); + Geocoder geocoder = new Geocoder(context, Locale.getDefault()); + List
addresses = geocoder.getFromLocationName(address, 1); + if (addresses != null && !addresses.isEmpty()) { + Address addressResult = addresses.get(0); + double latitude = addressResult.getLatitude(); + double longitude = addressResult.getLongitude(); + return new LatLng(latitude, longitude); } - } catch (Exception e) { + } catch (IOException e) { Log.e("GeocodingException", "Error geocoding address: " + address, e); } return null; } - -} +} \ No newline at end of file diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 1910263..347ef4c 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -66,7 +66,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe db = FirebaseFirestore.getInstance(); firestoreReception = new FirestoreReception(); - firestoreReception.getDocumentsByClassId(100); + firestoreReception.getDocumentsByClassId(100,MainActivity.this);