Stathis001 / Tourist_Guide

0 stars 0 forks source link

Ερώτημα API από τα φίλτρα για τα συγκεκριμένα markers των φίλτρων, πχ Μουσεία κλπ. #46

Open Stathis001 opened 7 months ago

Stathis001 commented 7 months ago

Αυτό θα γίνετε σε συνάρτηση που θα ονομάζεται λογικά onFilterMenuItemClick() (προαιρετική ονομασία) και θα επιστέφει έναν χάρτη με τα φιλτραρισμένα σημεία μόνο.

Argiris2000 commented 7 months ago

// Συνδεση με το Google Places API PlacesClient placesClient = Places.createClient(this);

// Δημιουργία αιτήσεων με τα κριτήρια που θέλετε FindPlaceRequest request = FindPlaceRequest.newInstance( "Όνομα Μέρους", // Όνομα μέρους που αναζητάτε FindPlaceRequest.FieldMask.ALL_FIELDS // Μας επιτρέπει να πάρουμε όλες τις πληροφορίες );

// Κλήση του API placesClient.findPlace(request).addOnSuccessListener((response) -> { // Επιτυχής λήψη δεδομένων List placeLikelihoods = response.getPlaceLikelihoods(); for (PlaceLikelihood placeLikelihood : placeLikelihoods) { Place place = placeLikelihood.getPlace(); // Εδώ μπορείτε να ελέγξετε τον τύπο του μέρους (place.getType()) και να αποφασίσετε αν ταιριάζει με τα κριτήρια των φίλτρων } }).addOnFailureListener((exception) -> { // Ανεπιτυχής λήψη δεδομένων Log.e(TAG, "Error getting place details: " + exception.getMessage()); });

Argiris2000 commented 7 months ago

public GoogleMap onFilterMenuItemClick(GoogleMap originalMap) { // Δημιουργία νέου χάρτη που θα περιέχει μόνο τα φιλτραρισμένα σημεία GoogleMap filteredMap = // Εδώ θα πρέπει να δημιουργήσετε ένα νέο GoogleMap ανάλογα με τη δομή του προγράμματος σας

// Εφαρμογή των φίλτρων
for (Marker marker : originalMap.getMarkers()) {
    // Εδώ θα πρέπει να ελέγξετε τον τύπο του μέρους (marker.getType()) και να αποφασίσετε αν ταιριάζει με τα κριτήρια των φίλτρων
    if (marker.getType().equals("Μουσείο")) {
        // Προσθέστε το marker στον φιλτραρισμένο χάρτη
        filteredMap.addMarker(marker);
    }
}

return filteredMap;

}