Pogledajte određenu poruku
Staro 24. 03. 2011.   #6
webarto
expert
Grand Master
 
Avatar webarto
 
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
webarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished road
Default

Ja sam polupao lončiće, kada sam otvorio nije bilo postal codes, ali za USA ima ja mislim, u ovom GeoLiteCity-Location.csv imaš...

Kôd:
618,"US","NY","New York","10013",40.7214,-74.0052,501,212
Tebi treba recimo...

Kôd:
"New York","NY","10013",40.7214,-74.0052
Pa pretvoriš u SQL, ako ne znaš mogu ti ja napisati regexp Notepad++

PHP kôd:
INSERT INTO usa(city,state,zip,lat,lonVALUES("New York","NY","10013",40.7214,-74.0052); 
To sve ubaciš u tabelu "usa" kojoj je primary index na postal code odnosno "zip" kolonu.

Onda pukneš query... Broj 15 je broj milja, a ovaj drugi broj je 60 nautičkih milja u miljama. 10013 je ZIP code od NY, tu staviš oko kojeg grada tražiš, trebalo bi da ti vrati sve u radiusu od 15 milja.

PHP kôd:
SELECT g1.* 
FROM usa AS g1
INNER JOIN usa 
AS g2 ON POW( (
g1.lat g2.lat
), ) + POW( (
g1.lon g2.lon
), ) < POW( ( 15 69.0467669 ) , 
WHERE g2.zip =  '10013'); 

Poslednja izmena od webarto : 24. 03. 2011. u 16:33.
webarto je offline   Odgovorite uz citat
"Hvala" webarto za poruku: