From 8c634499ae7329f9c1c3f39e849481827db00a13 Mon Sep 17 00:00:00 2001 From: it232115 Date: Fri, 14 Jun 2024 12:29:30 +0900 Subject: [PATCH] =?UTF-8?q?=E7=B7=AF=E5=BA=A6=E7=B5=8C=E5=BA=A6=E3=81=AE?= =?UTF-8?q?=E5=87=A6=E7=90=86=E3=82=92GeoCoding=E3=81=A7=E3=81=AF=E3=81=AA?= =?UTF-8?q?=E3=81=8FGeoCoder=E3=81=A7=E5=AE=9F=E8=A3=85=E3=80=82=E7=B7=AF?= =?UTF-8?q?=E5=BA=A6=E7=B5=8C=E5=BA=A6=E5=A4=89=E6=8F=9B=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/oplogy/FirestoreReception.java | 6 +-- .../oplogy/{GeoCoding.java => GeoCoder.java} | 39 ++++++++++--------- .../java/com/example/oplogy/MainActivity.java | 2 +- 3 files changed, 24 insertions(+), 23 deletions(-) rename app/src/main/java/com/example/oplogy/{GeoCoding.java => GeoCoder.java} (60%) 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);