Misschien dat dit script al ergens bestaat, maar ik ben voor iemand opzoek naar een script waar een bedrijf zich kan aanmelden en daarin aangeeft waar het zich bevindt en kan aangeven binnen hoeveel afstand hun werk gebied is (km).
Uiteindelijk kan de klant doormiddel van postcode en huisnummer een offerte van dit bedrijf ontvangen als het binnen het werkgebied valt (afstand ingegeven door t bedrijf)
Iemand enig idee of hier al een (basis) script van is of hoe ik hier aan kan beginnen?
@Ivo, of je kijkt eerst of iets binnen een vierkant valt en dan pas binnen de cirkel.
WHERE ...
<makkelijke berekening (vierkant)>
AND
<moeilijke berekening (cirkel)>
Dan voer je <moeilijke berekening> volgens mij alleen uit over de subset die uit <makkelijke berekening> rolt, dit kan je query volgens mij al een stuk versnellen.
@Ivo, of je kijkt eerst of iets binnen een vierkant valt en dan pas binnen de cirkel.
WHERE ...
<makkelijke berekening (vierkant)>
AND
<moeilijke berekening (cirkel)>
Dan voer je <moeilijke berekening> volgens mij alleen uit over de subset die uit <makkelijke berekening> rolt, dit kan je query volgens mij al een stuk versnellen.
Lazy evaluation ftw.
Dat gaat op indien je kan zeggen:
WHERE latitude BETWEEN $min_lat AND $max_lat
AND longitude BETWEEN $min_long AND $max_lng
HAVING distance <= 25
Waarbij je die 4 variabelen vooraf kunt bepalen.
TS zegt echter dat dit moet gebeuren op basis van gegevens uit de tabel, dus dan lijkt het mij dat je geen voordeel haalt door de bounding box on the fly uit te rekenen en daarna nog eens de afstand.
Ik zou hier eerder overwegen om het werkgebied op te splitsen in 4 kolommen waarin de min/max latitude en longitude komen te staan.
TS zegt echter dat dit moet gebeuren op basis van gegevens uit de tabel, dus dan lijkt het mij dat je geen voordeel haalt door de bounding box on the fly uit te rekenen en daarna nog eens de afstand.
Ik denk dat dat sterk afhangt van het totaal aantal afstanden wat je anders (zonder bounding box) zou berekenen. En de spreiding, uiteraard.