Uitgebreid zoeken binnen straal van woonplaats
Beste programmeur,
ik ben bezig een veilingsite op te zetten a la Ebay. Maar in mijn script ontbreekt nog de mogelijkheid om bij het uitgebreid zoeken, een straal op te geven in km van je woonplaats, om daarbinnen alle relevante veilingen te vinden.
Wie kan me hier mee helpen? De database met woonplaatsen en coordinaten heb ik reeds, het gaat mij meer om het script in PHP.
ik ben bezig een veilingsite op te zetten a la Ebay. Maar in mijn script ontbreekt nog de mogelijkheid om bij het uitgebreid zoeken, een straal op te geven in km van je woonplaats, om daarbinnen alle relevante veilingen te vinden.
Wie kan me hier mee helpen? De database met woonplaatsen en coordinaten heb ik reeds, het gaat mij meer om het script in PHP.
Gewijzigd op 07/07/2010 08:30:15 door Stephan Hendrikx
Gesponsorde koppelingen:
Dit kan met een rijksdriekhoek meting.
De afstand tussen de 2 locaties in meters wordt berekend volgens Pythagoras:
? ( (? X-coördinaten)2 + (? Y-coördinaten)2 )
De afstand tussen de 2 locaties in meters wordt berekend volgens Pythagoras:
? ( (? X-coördinaten)2 + (? Y-coördinaten)2 )
Probeer dit eens, vraag het me niet uit te leggen maar als je een beetje kennis van mysql hebt moet dit wel nuttig zijn.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
plaatsnaam,
latitude,
longitude,
(((acos(sin((52.6833*pi()/180)) * sin((latitude*pi()/180))+cos((52.6833*pi()/180)) * cos((latitude*pi()/180)) * cos(((5.0222- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) AS distance
FROM geo_info
WHERE latitude >= ".$latitdue."
AND longitude <= ".$longitude."
HAVING distance < ".$distance ."
ORDER BY distance";
plaatsnaam,
latitude,
longitude,
(((acos(sin((52.6833*pi()/180)) * sin((latitude*pi()/180))+cos((52.6833*pi()/180)) * cos((latitude*pi()/180)) * cos(((5.0222- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) AS distance
FROM geo_info
WHERE latitude >= ".$latitdue."
AND longitude <= ".$longitude."
HAVING distance < ".$distance ."
ORDER BY distance";
Dat is wel een heel intensieve berekening...
Dat soort query's gewoon even uitvoeren in phpMyAdmin en kijken hoeveel tijd het kost.
De database heb je al, maar hou je deze ook bij met nieuwe postcodes?
Misschien is dit ook wel een idee voor je.
Misschien is dit ook wel een idee voor je.



