Ciao a tutti,
Volevo chiedervi un consiglio.
In un Db ho registrato vari makers con le loro coordinate, ora vorrei creare una lista in che mi preleva in un raggio di 5 km, i Maker presenti. Come devo impostare la query
Ciao a tutti,
Volevo chiedervi un consiglio.
In un Db ho registrato vari makers con le loro coordinate, ora vorrei creare una lista in che mi preleva in un raggio di 5 km, i Maker presenti. Come devo impostare la query
Solo con la query non lo puoi fare, devi prima sapere le coordinate del marker di riferimento, poi prendere tutti i markers, uno ad uno verifichi la distanza dal marker di riferimento, se è entro i 5Km lo tieni, altrimenti lo scarti.
La distanza in linea d'aria la puoi calcolare approssimativamente con: sqrt( (lat2^2 - lat1^2) + (lon2^2 - lon1^2) )
P.S. markers, non makers.
Posso dirti come identificare i markers, ma non so quali siano le istruzioni per il database.
Siano Xm e Ym rispettivamente la longitudine e la latitudine di uno specifico marker M.
Siano X e Y rispettivamente la longitudine e la latitudine di un generico marker.
Dato M, un generico marker si troverà entro se il raggio richiesto se è verificata la formula:
√((X - Xm)² + (Y - Ym)²) ≤ 5 km
le coordinate di riferimento le recupero tramite le api di google map in javascript , e poi come faccio a passarle in php per utilizzarle nella query ?
Alhazred sorry ma stò scrivendo tramite il telefono e tra lo schermo piccolo e il dizionario impazzisco![]()
Devi fare una chiamata AJAX allo script PHP che eseguirà la query, i calcoli e risponderà stampando una stringa contenente i dati che ti servono.
Come e cosa deve stampare dipende da cosa devi fare tu, per il come però ti suggerirei di formattare la risposta in JSON, così sarà più facile maneggiarla con javascript.
hai un'esempio da consigliarmi per vedere come eseguire la chiamta ajax ?
Guarda qua
http://www.html.it/guide/guida-ajax/
O usi jQuery?
No
ciao,
con ms sql per ottenere i marker come li desideri,
utilizzo una sola query con all'interno le 4 righe che seguono terminate dal punto e virgola
leggendola si spiega da sola
ovviamente il valore 31 deve essere sostituito con il valore da ricercare
ciao
Marino
ps ho utilizzato la formula di calcolo già suggeritacodice:DECLARE @lat float; DECLARE @long float; SELECT @lat = lat, @long = long FROM markers WHERE markerID = 31; SELECT * FROM markers WHERE sqrt(power((lat-@lat), 2)+power((long-@long), 2))<=5;
credo non avrai difficoltà a usarla/convertirla per mysql
Ultima modifica di marino51; 11-10-2014 a 23:05
perfetto!...volevo chiedervi un'infomrazione in quanto in rete non sono riuscito a trovare risposta:
è possibile ottenere un'indirizzo (via,paese/provincia) dalle coordinate?
inoltre le coordinate le recupero tramite lo script in java, c'è modo di renderle usufruibili in php ?
Non lo so, ma potrebbe anche essere possibile visto che se su Google Maps clicchi su un punto te lo dice.
Fatti un giro sul sito per sviluppatori google maps ci trovi tutte le funzioni che puoi usare
https://developers.google.com/maps/?hl=it
Suppongo tu intenda Javascript, non Java, sono 2 cose diverse.inoltre le coordinate le recupero tramite lo script in java, c'è modo di renderle usufruibili in php ?
Puoi inviare una chiamata AJAX ad uno script PHP mandando come parametri le coordinate, lo script le recupererà con $_POST o $_GET a seconda di come le mandi e ci farà quel che serve.
Per domande relative ad AJAX chiedi nella sezione Javascript.