/ / Kanadské poštové smerovacie čísla Radius - php, mysql, poštové smerovacie číslo

Kanadské poštové smerovacie čísla Radius - php, mysql, poštové smerovacie číslo

Používam nasledujúce skriptovanie, ktoré som našiel na internete, aby som chytil všetky poštové smerovacie čísla medzi zadanými súradnicami.

Pri použití mojich obáv sa obávam, že keď sú niektoré poštové smerovacie čísla väčšie ako zadaná vzdialenosť; nie o veľa - asi 20 KM off.

function GetPostalCodes($latitude, $longitude, $range) {
$radius = 3959;
$north = rad2deg(asin(sin(deg2rad($latitude)) * cos($range / $radius) + cos(deg2rad($latitude)) * sin($range / $radius) * cos(deg2rad(0))));
$south = rad2deg(asin(sin(deg2rad($latitude)) * cos($range / $radius) + cos(deg2rad($latitude)) * sin($range / $radius) * cos(deg2rad(180))));
$east = rad2deg(deg2rad($longitude) + atan2(sin(deg2rad(90)) * sin($range / $radius) * cos(deg2rad($latitude)), cos($range / $radius) - sin(deg2rad($latitude)) * sin(deg2rad($north))));
$west = rad2deg(deg2rad($longitude) + atan2(sin(deg2rad(270)) * sin($range / $radius) * cos(deg2rad($latitude)), cos($range / $radius) - sin(deg2rad($latitude)) * sin(deg2rad($north))));
$return = DBSelectAllArrays("SELECT postal FROM postalcodes WHERE (latitude <= $north AND latitude >= $south AND longitude <= $east AND longitude >= $west)");
krsort($return);
if (empty($return)) return false;
return $return;
}

Existuje niečo, čo mi chýba, aby som získal presnejší výsledok?

odpovede:

0 pre odpoveď č. 1

Vzhľadom na vaše pripomienky:

$radius = 6371.0; // mean radius of Earth in km

Toto je prevzaté z wikipedia, ale ja som to videl v tolerancii +/- 3km z iných zdrojov. Začal som sa pýtať, či používate veľká vzdialenosť kruhu je to dôležitejšie pre presnosť na dlhšie vzdialenosti v dôsledku zakrivenia povrchu zeme.


0 pre odpoveď č. 2

Tim, začal si pomocou ohraničovacieho rámčeka(obdĺžnik) a potom s Haversinovým vzorcom, dostanete „kruh“, ktorý je vo všeobecnosti oveľa lepší, ak chcete, aby ľudia v určitej vzdialenosti neboli uvedení, ale ak si hľadáte Ľudia, ktorí môžu cestovať do určitej vzdialenosti k vám, možno budete chcieť zvážiť metropolitné oblasti, ktoré sa líšia tvarom. Údaje o kanadských oblastiach metra