Autore Topic: mappe per raggio di ricerca  (Letto 2382 volte)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
mappe per raggio di ricerca
« il: 29 Luglio 2011, 17:39:35 CEST »
0
Devo sviluppare un' app per un sito che sostanzialmente è un aggregatore di agriturismi.
Hanno un database con centinaia di agriturismi registrati.

Mi hanno chiesto di fare una funzione di ricerca automatica in base alla tua posizione, cioè in base alla propria posizione l' app fa vedere gli agriturismi più vicini e la vicinanza è dinamica cioè l' utente sceglie il raggio di ricerca, 20km , 30 km.

Io posso conoscere la mia posizione, potrei conoscere la posizione degli agriturismi in base al loro indirizzo ma non posso richiedere al server tutti gli agriturismi e creare un ciclo e cercare le coordinate in base all' indirizzo....

O si?  La funzionità di ricerca per raggio deve essere creato lato server?
La domanda stupida è quella che non si fa

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:mappe per raggio di ricerca
« Risposta #1 il: 01 Agosto 2011, 11:09:55 CEST »
0
Da quanto letto i POI si aggiungono alla mappa ma mi rimane oscuro in che modo.

Tramite le google map api?

Mi registro con il mio account, "creo" una mappa, inserisco i POI, quando faccio una ricerca in Android le api mi danno le distanze tra la mia posizione e i POI ?

Mi pare complicato gestire manualmente tutto, un db sia locale su Android che online... dovendo fare l' app di un portale gli agriturismi aumentano giorno dopo giorno.


Soluzione ? Tutorial ?
La domanda stupida è quella che non si fa

Offline HyBriiD

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    LG-Optimus
  • Sistema operativo:
    Ubuntu 10.10 - Windows 7, XP
Re:mappe per raggio di ricerca
« Risposta #2 il: 01 Agosto 2011, 15:00:45 CEST »
0
ciao, io risolverei così il tuo problema:
1)innanzitutto c'è la possibilità di trovare latitudine e longitudine degli agriturismi in base al loro indirizzo, ti posto il codice ricavato da uno snippet:

Codice (Java): [Seleziona]
public class GeocoderService {

    public static Location reverseGeocode(String address, Context context) {
        Location location = new Location("reverseGeocoded");

        if (address != null) {
               
            Geocoder geocoder = new Geocoder(context, Locale.getDefault());
            try {
                List<Address> addressResult = geocoder.getFromLocationName(address, 1);
                if (addressResult !=null && !addressResult.isEmpty()) {
                    Address resultAddress = addressResult.get(0);
                    location.setLatitude(resultAddress.getLatitude()*1E6);
                    location.setLongitude(resultAddress.getLongitude()*1E6);  
                }
            } catch (IOException e) {
                Log.d("Contact Location Lookup Failed", e.getMessage());
                location = null;
            }
        }
        return location;
    }


e per completezza ti rimando ad uno snippet di JD QUI -> http://www.anddev.it/index.php/topic,2167.0.html
2)terrei conto della mia latitudine e longitudine
3)utilizzerei questo procedimento: Se rappresentiamo un punto A con la coppia (a1,b1) (cioè la posizione dell'utente) in cui a1 è la longitudine e b1 è la latitudine ed il punto B (cioè agriturismo) con la coppia (a2,b2) (con significato analogo di a2 e b2), la distanza tra A e B è data dalla formula:

distanza(A,B) = arccos(cos(a1-a2)cos(b1)cos(b2)+sin(b1)sin(b2))

che fornisce la distanza in radianti, o raggi terrestri.

A questo punto basta moltiplicare distanza(A,B) ottenuta x 6360 per ottenere la distanza in km.

4) ottenuta la distanza dell'utente rispetto agli agriturismi, visualizzerei i più vicini in base alle necessità dell'utente (magari uno spinner con più opzioni tra cui 20 km - 30 km)

spero di esserti stato utile  ;-)
« Ultima modifica: 01 Agosto 2011, 15:05:33 CEST da HyBriiD »

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:mappe per raggio di ricerca
« Risposta #3 il: 01 Agosto 2011, 15:04:01 CEST »
0
Non è la risposta che mi aspettavo....

Nel senso che la domanda non è che codice usare ma non posso fare un confronto per circa 7000 poi ....più che altro la logica mi interessava :)
La domanda stupida è quella che non si fa

Offline HyBriiD

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    LG-Optimus
  • Sistema operativo:
    Ubuntu 10.10 - Windows 7, XP
Re:mappe per raggio di ricerca
« Risposta #4 il: 01 Agosto 2011, 15:21:38 CEST »
0
per prima cosa scusami avevo letto male l'ultima parte, detto questo non mi intendo di database (non ho ancora cominciato a studiarli), ma data la posizione dell'utente non potresti interrogare il database in base agli agriturismi più vicini? nel senso comunichi al database la tua posizione e tu con una funzione potresti prendere i più vicini... non diminuiresti cosi da 7000 ad un numero molto minore?

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:mappe per raggio di ricerca
« Risposta #5 il: 01 Agosto 2011, 15:48:10 CEST »
0
si sicuramente farò cosi... pensavo ci fosse qualcosa di migliore...
La domanda stupida è quella che non si fa