Cerca articolo o scritps su sastgroup.com
es: banca sella

Discuti il tutorial sul forum !

Come trovare le località ad una certa distanza da un punto con mysql

Utilizzando Google MAPS e altri sistemi satellitari ci si rende conto di avere a disposizione una serie di informazioni utilissime.

Supponendo di avere una tabella luoghi con almeno i seguenti campi:

* latitudine
* longitudine

E di dover cercare tutti i luoghi a meno di $dist metri da un punto di coordinate $lat e $long, possiamo fare una query sul data base di questo tipo:

 
    $query = "SELECT *,
    TRUNCATE ( 6363 * sqrt( POW( RADIANS($lat) -
RADIANS(l.latitudine) , 2 ) +
POW( RADIANS($long) - RADIANS(l.longitudine) , 2 ) ) , 3 )
AS dist     FROM luoghi AS l
    WHERE TRUNCATE ( 6363 * sqrt( POW( RADIANS($lat) -
RADIANS(l.latitudine) , 2 ) +
POW( RADIANS($long) - RADIANS(l.longitudine) , 2 ) ) , 3 )
< $dist  ORDER BY dist ASC";
 

Nella select ci viene ritornato, oltre ai campi della tabella, un campo dist in cui avremo la distanza in chilometri (con i decimali) tra i due punti (quello passato alla query e quello trovato). Con una semplice fetch sui risultati della query potremo visualizzare tutti i punti in ordine di distanza e con la distanza in metri.
Occorre solo notare che le distanze sono in linea d’aria, quindi non tengono in considerazione dell’orografia del territorio o delle strade.

Chiaramente tutte questi punti potremo inserirli all’interno di una mappa di google maps con tutte le informazioni presenti nella tabella e la distanza dal punto “di interesse”.

Ecco infine una semplicissima funzione per trasformare le distanze in metri in formato leggibile:

 
    // FUNZIONE CHE CONVERTE LA DISTANZA IN metri O chilometri
    function  strDist($dist)
    {
    if ($dist == 0)
      return("");
    else
      return(($dist < 1) ? ("" . (int) ($dist *
 1000) . " m.") : "$dist Km.");
    }
 

Da: http://www.senamion.it/...anza-da-un-punto/

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • blinkbits
  • BlinkList
  • blogmarks
  • co.mments
  • del.icio.us
  • De.lirio.us
  • digg
  • Fark
  • feedmelinks
  • Furl
  • LinkaGoGo
  • Ma.gnolia
  • NewsVine
  • Reddit
  • scuttle
  • Smarking
  • Spurl
  • YahooMyWeb
  • DZone
  • Internetmedia
  • Snap2r
  • Technorati


Correlati


Commenti

Scrivi un commento





Commenti recenti:


Ultimi dal forum