PHP және SQL: ендік пен бойлық нүктелерінің арасындағы үлкен шеңберді Гаверсин формуласымен есептеңіз немесе сұраңыз.

Гаверсин формуласы - PHP немесе MySQL көмегімен үлкен шеңбер аралығын есептеңіз

Осы айда мен PHP және MySQL-де ГАЖ-ға қатысты бағдарламалар жасадым. Желіге көз жүгіртіп, мен кейбірін таба алмай қиналдым Географиялық есептеулер екі жердің арасындағы қашықтықты табу үшін осында бөліскім келді.

Еуропа ұшу картасы

Екі нүкте арасындағы қашықтықты есептеудің қарапайым әдісі - үшбұрыштың гипотенузасын есептеу үшін Пифагор формуласын қолдану (A² + B² = C²). Бұл белгілі Евклидтік қашықтық.

Бұл қызықты бастама, бірақ географияға қатысы жоқ, өйткені ендік пен бойлық сызықтары арасындағы қашықтық тең қашықтық емес бөлек. Экваторға жақындаған сайын ендік сызықтары бір-бірінен алшақтайды. Егер сіз қандай да бір қарапайым триангуляция теңдеуін қолдансаңыз, онда ол Жердің қисаюына байланысты қашықтықты бір жерде дәл, ал басқа жерде өте қате өлшеуі мүмкін.

Айналмалы арақашықтық

Жерді айнала ұзақ жүретін маршруттар деп аталады Айналмалы арақашықтық. Яғни ... шардағы екі нүктенің арасындағы ең қысқа қашықтық жазық картадағы нүктелерден өзгеше. Мұны ендік пен бойлық сызықтары бірдей қашықтықта болмайтындығымен біріктіріңіз ... және сізде қиын есептеулер бар.

Мұнда Ұлы шеңберлердің қалай жұмыс істейтіні туралы фантастикалық бейне түсіндірме бар.

Гаверсин формуласы

Жердің қисықтығын қолданатын қашықтық Гаверсин формуласы, ол тригонометрияны пайдаланып, жердің қисаюына мүмкіндік береді. Жердегі 2 орынның арасындағы қашықтықты тапқан кезде (қарға қалай ұшады), түзу сызық - бұл доға.

Бұл әуе рейстерінде қолданылады - сіз рейстердің нақты картасын қарап, олардың доға екенін байқадыңыз ба? Себебі екі нүктенің арасында доғамен ұшу ұшу орнына тікелей қарағанда қысқа.

PHP: ендік пен бойлықтың 2 нүктесінің арасындағы қашықтықты есептеңіз

Қалай болғанда да, екі нүкте арасындағы қашықтықты есептеуге арналған PHP формуласы (Милль мен Километрді түрлендірумен бірге) екі ондық бөлшекке дейін дөңгелектелген.

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
  $theta = $longitude1 - $longitude2; 
  $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); 
  $distance = acos($distance); 
  $distance = rad2deg($distance); 
  $distance = $distance * 60 * 1.1515; 
  switch($unit) { 
    case 'miles': 
      break; 
    case 'kilometers' : 
      $distance = $distance * 1.609344; 
  } 
  return (round($distance,2)); 
}

SQL: ендік пен бойлықты пайдаланып мильдегі қашықтықты есептеу арқылы ауқымдағы барлық жазбаларды шығарып алу

Барлық жазбаларды белгілі бір қашықтықта табу үшін есептеу жүргізу үшін SQL-ді қолдануға болады. Бұл мысалда мен MyTQL-ге $ ендік пен $ бойлықтағы орналасқан жеріме дейінгі (мильдегі) айнымалыдан кем немесе оған тең барлық жазбаларды табу үшін MyTable-ге сұраныс беремін:

Белгілі бір көлемдегі барлық жазбаларды алуға арналған сұраныс қашықтық ендік пен бойлықтың екі нүктесі арасындағы мильдегі қашықтықты есептеу арқылы:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."

Сіз мұны теңшеуіңіз керек:

  • $ бойлық - бұл мен нүктенің бойлығын өтіп жатқан PHP айнымалысы.
  • $ ендік - бұл мен нүктенің бойлығын өтіп жатқан PHP айнымалысы.
  • $ қашықтық - бұл сіз барлық жазбаларды аз немесе тең етіп тапқыңыз келетін қашықтық.
  • үстел - бұл кесте ... сіз оны кесте атауымен ауыстырғыңыз келеді.
  • ендік - бұл сіздің ендік өрісіңіз.
  • бойлық - бұл сіздің бойлық өрісіңіз.

SQL: ендік пен бойлық арқылы қашықтықты километрмен есептеу арқылы барлық жазбаларды алу

Міне, MySQL-де километрлерді қолдана отырып SQL сұранысы:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."

Сіз мұны теңшеуіңіз керек:

  • $ бойлық - бұл мен нүктенің бойлығын өтіп жатқан PHP айнымалысы.
  • $ ендік - бұл мен нүктенің бойлығын өтіп жатқан PHP айнымалысы.
  • $ қашықтық - бұл сіз барлық жазбаларды аз немесе тең етіп тапқыңыз келетін қашықтық.
  • үстел - бұл кесте ... сіз оны кесте атауымен ауыстырғыңыз келеді.
  • ендік - бұл сіздің ендік өрісіңіз.
  • бойлық - бұл сіздің бойлық өрісіңіз.

Мен бұл кодты Солтүстік Америка бойынша 1,000-нан астам жері бар бөлшек сауда дүкені үшін қолданған кәсіпорынды картографиялық платформада қолдандым және ол өте жақсы жұмыс істеді.

76 Пікірлер

  1. 1

    Бөліскеніңіз үшін көп рахмет. Бұл оңай көшіру және қою жұмысы болды және өте жақсы жұмыс істейді. Сіз мені көп уақытты үнемдедіңіз.
    C-ге көшетін кез келген адам үшін:
    қос градус (қос градус) {қайтару дәрежесі * (2 / 3.14159265358979323846); }

  2. 2

    Өте жақсы орналастыру бөлігі - өте жақсы жұмыс істеді - маған кестенің атауын тек лат-long деп өзгерту керек болды. Бұл өте жылдам жұмыс істейді. Менде ұзын саны аз (<400), бірақ менің ойымша, бұл масштаб жақсы болады. Жақсы сайт - мен оны del.icio.us аккаунтына жаңадан қостым және үнемі тексеріп отырамын.

  3. 4
  4. 5

    Мен sql операторына қалай қоюға мысал келтіргеніңіздің арқасында мен күндіз қашықтықтағы есептеулерді іздедім және гварверсин алгоритмін таптым. Даниял, рахмет және сәлем!

  5. 8

    менің ойымша, сіздің SQL-ге мәлімдеме керек
    WHERE арақашықтықтың орнына <= $ қашықтық қажет болуы мүмкін
    арақашықтық = = $ қашықтықты қолданыңыз

    әйтпесе маған уақыт пен энергияны үнемдегеніңіз үшін рақмет.

  6. 10
  7. 11
  8. 12

    Осы кодты бөліскеніңіз үшін көп рахмет. Бұл менің даму уақытымды үнемдеді. Сондай-ақ, сіздің оқырмандарыңызға MySQL 5.x үшін HAVING тұжырымдамасы қажет екенін көрсеткені үшін рахмет. Өте пайдалы.

  9. 14

    Жоғарыдағы формула менің көп уақытымды үнемдейді. Көп рақмет.
    Мен NMEA форматы мен дәрежелер арасында ауысуым керек. Мен парақтың төменгі жағынан осы URL мекен-жайынан формула таптым. http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html

    Мұны қалай тексеруге болатынын біреу біле ме?

    Рақмет сізге!
    Гарри

  10. 15
  11. 16

    Мен сонымен бірге ҚАЙДА маған жұмыс істемейтінін анықтадым. Оны HAVING деп өзгертті және бәрі керемет жұмыс істейді. Алдымен мен түсініктемелерді оқып, оны ішкі таңдау арқылы қайта жазған жоқпын. Екеуі де жақсы жұмыс істейді.

  12. 17
  13. 18

    Керемет пайдалы, көп рахмет! Маған «ҚАЙДА» дегеннен гөрі жаңа «HAVING» -де қиындықтар болды, бірақ мен мұндағы пікірлерді оқыдым (жарты сағат ішінде тісімді қыжылдатып = P), мен оны жақсы жұмыс істедім. Рахмет ^ _ ^

  14. 19
  15. 20

    Ұқсас мәлімдеме өте қарқынды және сондықтан баяу болатынын ұмытпаңыз. Егер сізде көптеген сұрақтар болса, ол тез арада істі басуы мүмкін.

    Есептелген қашықтықпен анықталатын SQUARE алаңын қолданып, бірінші (шикі) таңдауды жүргізу өте аз қарқынды тәсіл болып табылады, яғни «ені lat1 және lat2 арасындағы ендік және lon1 мен lon2 арасындағы бойлық орналасқан кестеден» *. lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, лонға ұқсас. латдифф ~ = қашықтық / 111 (км үшін), немесе қашықтық / 69 ендік дәрежесінен бастап миль үшін ~ 1 км (жер аздап сопақ болғандықтан, шамалы өзгеріс, бірақ осы мақсат үшін жеткілікті). londiff = қашықтық / (abs (cos (deg111rad (ендік)) * 2)) - немесе 111 мильге (вариацияларды ескеру үшін сіз шынымен сәл үлкен квадрат ала аласыз). Содан кейін нәтижені алыңыз және оны радиалды таңдауға жіберіңіз. Шектен тыс координаттарды есепке алуды ұмытпаңыз, яғни сіздің латифіңіздің немесе лондиффіңіздің осы диапазоннан тыс шығуы жағдайында, яғни рұқсат етілген бойлық диапазоны -69-ден +180-ге дейін және қолайлы ендік -180-ден +90-ға дейін. . Көбінесе бұл мүмкін емес екенін ескеріңіз, өйткені ол тек мұхит арқылы полюстен полюске дейінгі сызық бойынша есептеулерге әсер етеді, бірақ ол чукотканың бөлігі мен алясканың бір бөлігін қиып өтеді.

    Біздің қолымыздан келетін нәтиже - сіз есептейтін нүктелер санының айтарлықтай азаюы. Егер сізде мәліметтер базасында миллионға жуық жаһандық ұпайлар біркелкі бөлінген болса және сіз 100 км қашықтықта іздегіңіз келсе, онда сіздің алғашқы (жылдам) іздеуіңіз 10000 шаршы км аумақты құрайды және шамамен 20 нәтиже береді (біркелкі таратуға негізделген) бұл шамамен 500 миллион шаршы км), демек, сіз бұл сұраныс үшін миллион рет емес, 20 рет күрделі қашықтықты есептейсіз.

    • 21

      Мысалдағы кішігірім қателік ... бұл біздің 50 шаршы метрдің ішінде болады (100 емес), өйткені біз өзіміздің… квадраттың “радиусын” қарастырамыз.

      • 22

        Керемет кеңес! Мен іс жүзінде ішкі квадратты тартатын функцияны, содан кейін периметрдің айналасында «квадраттар» құрған және қалған нүктелерді шығаратын рекурсивті функцияны жазған әзірлеушімен жұмыс істедім. Нәтиже өте тез нәтиже болды - ол миллиондаған нүктелерді микросекундтарда бағалай алды.

        Жоғарыдағы менің көзқарасым «шикі», бірақ қабілетті. Тағы да рахмет!

        • 23

          Даг,

          Lat ұзын нүктесінің көпбұрыш ішінде екенін бағалау үшін mysql және php-ді қолдануға тырыстым. Сіз өзіңіздің әзірлеуші ​​досыңыз бұл тапсырманы қалай орындауға болатындығы туралы мысалдар жариялағанын білесіз бе. Немесе сіз жақсы мысалдарды білесіз бе. Алдын-ала рақмет.

  16. 24

    Бәріне сәлем! Бұл менің тестілік SQL мәлімдемем:

    SELECT DISTINCT area_id, (
    (
    (
    acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
    `lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
    `lat_dec` * pi( ) /180 )
    ) * cos( (
    ( 51.02 - `lon_dec` ) * pi( ) /180 )
    )
    )
    ) *180 / pi( )
    ) *60 * 1.1515 * 1.609344
    ) AS distance
    FROM `post_codes` WHERE distance <= 50

    және Mysql маған қашықтықты айтады, баған түрінде болмайды, мен тапсырыс қолдана аламын, мен оны ҚАЙДА жоқ жасай аламын, ол жұмыс істейді, бірақ онымен емес ...

  17. 26

    Бұл өте жақсы, дегенмен құстар қалай ұшады. Google maps API-ді қандай да бір жолмен енгізіп көрген дұрыс болар еді (мүмкін жолдармен және т.б.) Көліктің басқа түрін пайдаланып идея беру үшін. Мен әлі күнге дейін PHP-де саяхатшылар мәселесін шешудің тиімді әдісін ұсына алатын модельдеу күйдіру функциясын жасаған жоқпын. Бірақ менің ойымша, бұл үшін сіздің кейбір кодтарыңызды қайта қолдана аламын.

  18. 27

    Сәлем, Дуглас,
    осы мақала үшін сізге көп рахмет - сіз мені көп уақытты үнемдедіңіз.
    өз-өзіңді күт,
    нимрод @srael

  19. 28

    Жақсы мақала! Екі нүкте арасындағы қашықтықты қалай есептеу керектігін сипаттайтын көптеген мақалалар таптым, бірақ мен SQL үзінділерін шынымен іздедім.

  20. 29
  21. 30
  22. 31
  23. 32
  24. 36

    Менің проблемамды шешетін осы парақты табу үшін 2 күндік зерттеу. Менің WolframAlpha-ны өшіріп, математиканы тазартқан дұрыс сияқты. WHERE-ден HAVING-ге ауысу менің сценарийімнің жұмыс тәртібіне ие. РАҚМЕТ СІЗГЕ

  25. 37
    • 38

      Рахмет Георгий. Мен «қашықтық» бағанын таба алмадым. Бірде мен ҚАЙЫРЫМДЫ БОЛУҒА ауыстырдым, ол очарование сияқты жұмыс жасады!

  26. 39

    Бұл менің осы жерден тапқан алғашқы бетім болғанын қалаймын. Әр түрлі командаларды қолданып көргеннен кейін, бұл дұрыс жұмыс істейтін жалғыз адам болды, ал минималды өзгертулермен менің жеке мәліметтер базасына сәйкес келуім керек болды.
    Көп рақмет!

  27. 40

    Бұл менің осы жерден тапқан алғашқы бетім болғанын қалаймын. Әр түрлі командаларды қолданып көргеннен кейін, бұл дұрыс жұмыс істейтін жалғыз адам болды, ал минималды өзгертулермен менің жеке мәліметтер базасына сәйкес келуім керек болды.
    Көп рақмет!

  28. 41
  29. 42
  30. 43
  31. 45
  32. 46
  33. 47

    Мен бұл формуланың жұмыс істейтінін білемін, бірақ мен жердің радиусы қай жерде ескерілетінін көре алмаймын. Мені біреу ағарта алады ма?

  34. 49
  35. 50
  36. 52
  37. 53

    Мен Errormessage: MySQL сұрауындағы 'қай жерде' белгісіз 'қашықтық' бағанын ала беремін.

  38. 55
  39. 56
  40. 58

    осы пайдалы мақаланы орналастырғаныңызға рахмет,  
    бірақ мен қандай да бір себептермен сұрағым келеді
    mysql db ішіндегі координаттар мен пайдаланушының php-ге енгізген координаттар арасындағы қашықтықты қалай алуға болады?
    нақтырақ сипаттау үшін:
    1. пайдаланушыға DB және пайдаланушының координаттарынан көрсетілген деректерді таңдау үшін [id] енгізу қажет
    2. php файлы мақсатты деректерді (координаттарды) [id] көмегімен алады, содан кейін пайдаланушы мен мақсатты нүкте арасындағы қашықтықты есептейді

    немесе жай кодтан қашықтықты ала аласың ба?

    $ qry = “ТАҢДАУ *, (((acos (sin ((.. $ ендік.” * pi () / 180)) * sin ((`Latitude` * pi () / 180)) + cos ((“. $ ендік. ”* pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ longitude.” - `Longitude`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) арақашықтық ретінде 'MyTable` ҚАЙДА қашықтық> = “. $ Қашықтық.” >>>> осы жерден қашықтықты «шығарып» алсам бола ма?
    тағы да рахмет,
    Тимми С.

  41. 60

    жарайды, мен көргендердің бәрі жұмыс істемейді. Менің айтарым, менде не бар, бірақ қашықтық алыс.

    Бұл кодтың дұрыс еместігін біреу көре ме?

    егер (isset ($ _ POST ['ұсынылған'])) {$ z = $ _POST ['индекс']; $ r = $ _POST ['радиус']; echo “.” үшін нәтижелер. $ z; $ sql = mysql_query (“SELECT DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. қала, z1.state mrk m, zip z1, zip z2 қайда m.zipcode = z1.zipcode AND z2.zipcode = $ z AND (3963 * acos (truncate (sin (z2.lat / 57.2958)) sin (m. y1 / 57.2958) + cos (z2.lat / 57.2958) * cos (m.y1 / 57.2958) * cos (m.x1 / 57.2958 - z2.lon / 57.2958), 8))) <= $ r «) немесе өледі (mysql_error ()); while ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. «»; $ store = $ row ['LocAddSt']. ””; ”; $ store. = $ row ['LocAddCity']. ”,“. $ row ['LocAddState']. ” “. $ Row ['индекс']; $ width1 = $ row ['lat']; $ longitude1 = $ row ['lon']; $ width2 = $ row ['y1']; $ longitude2 = $ row ['x1']; $ city = $ row ['city']; $ state = $ row ['state']; $ dis = getnew ($ ендік1, $ бойлық1, $ ендік2, $ бойлық2, $ бірлік = 'Mi'); // $ dis = қашықтық ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ row ['verified']; егер ($ verified == '1') {echo “”; echo “”. $ store. ””; echo $ dis. ”Миля (-лар) алыс”; жаңғырық “”; } else {echo “”. $ store. ””; echo $ dis. ”Миля (-лар) алыс”; жаңғырық “”; }}}

    Менің функцияларым.php коды
    getnew функциясы ($ Enlem1, $ бойлық1, $ ендік2, $ бойлық2, $ бірлік = 'Mi') {$ theta = $ бойлық1 - $ бойлық2; $ қашықтық = (sin (deg2rad ($ ендік1)) * sin (deg2rad ($ ендік2))) + (cos (deg2rad ($ ендік1)) * cos (deg2rad ($ ендік2)) * cos (deg2rad ($ тета)) ); $ қашықтық = acos ($ қашықтық); $ қашықтық = rad2deg ($ қашықтық); $ қашықтық = $ арақашықтық * 60 * 1.1515; switch ($ unit) {case 'Mi': break; іс 'Km': $ қашықтық = $ қашықтық * 1.609344; } return (дөңгелек ($ қашықтық, 2)); }

    Алдын-ала рақмет

  42. 61
  43. 62

    Сәлем, Дуглас, керемет мақала. Мен сізге географиялық ұғымдар мен кодтар туралы түсініктемелеріңізді өте қызықты көрдім. Менің жалғыз ұсынысым бос орынға шығару және көрсету үшін кодты шегіндіру болар еді (мысалы, Stackoverflow сияқты). Менің ойымша, сіз кеңістікті сақтағыңыз келеді, бірақ әдеттегі код аралықтары / шегіністері мен үшін бағдарламашы ретінде оқуды және бөлшектеуді жеңілдетер еді. Қалай болғанда да, бұл кішкентай нәрсе. Үлкен жұмысты жалғастырыңыз.

    • 63

      Рахмет! Мен жазбаны сәл өзгерттім ... бірақ теңдеулер өте көп орын алады және ұзақ болғандықтан, оның тым көп көмектесетініне сенімді емеспін.

  44. 64
  45. 65

    Мұнда функцияны қолдану кезінде біз қашықтықтың бір түрін аламыз .. сұрау салу кезінде оның басқа қашықтық түрін аламыз

  46. 66
  47. 67
  48. 68
  49. 69
  50. 70

    таңдау кезінде екі есе формуланы қолдану жылдамырақ көрінеді (mysql 5.9):
    $ формула = “(((acos (sin ((.. $ ендік.” * pi () / 180)) * sin ((`Latitude` * pi () / 180)) + cos ((“. $ ендіктік. ”* Pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ Longitude.” - `Longitude`) * pi () / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) »;
    $ sql = 'SELECT *,'. $ формула. ' '.. $ формуласы ҚАДАҒЫ кестеден арақашықтық ретінде.' <= '. $ қашықтық;

  51. 71
  52. 72

    Осы мақаланың қырқылғанына көп рахмет, бұл өте пайдалы.
    PHP алғашында «Жеке үй беті» деп аталатын қарапайым сценарий платформасы ретінде құрылды. Қазіргі уақытта PHP (гипермәтіндік препроцессордың қысқасы) - бұл Microsoft корпорациясының Active Server Pages (ASP) технологиясының баламасы.

    PHP - бұл динамикалық веб-беттерді құру үшін қолданылатын серверге арналған ашық бастапқы тіл. Оны HTML-ге енгізуге болады. PHP әдетте Linux / UNIX веб-серверлеріндегі MySQL мәліметтер қорымен бірге қолданылады. Бұл сценарийлердің ең танымал тілі шығар.

  53. 73

    Жоғарыда шешім дұрыс жұмыс істемейтінін таптым.
    Маған өзгерту керек:

    $ qqq = “ТАҢДАУ *, (((acos (sin ((.. $ ендік.” * pi () / 180)) * sin ((`latt` * pi () / 180)) + cos ((”. $ ендік. “* pi () / 180)) * cos ((` latt` * pi () / 180)) * cos (((”. $ longitude.“ - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) қашықтықтан FR 'regist` “;

  54. 75

    рахмет мырза өте жақсы сылап жатыр .. бірақ менде бір сұрақ бар, егер мен ондық нүктесіз шығарсам, онда не істей аламын ..?

    Алдын-ала рақмет.

  55. 76

    Сәлеметсіз бе, маған бұл мәселе бойынша сіздің көмегіңіз өте қажет болады.

    Мен веб-серверіме сұраныс жібердім http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ ендік
    -2.23389 = $ бойлық
    және 20 = мен алғым келетін қашықтық

    Сіз формуланы қолдана отырып, ол менің db-дегі барлық жолдарды шығарады

    $ results = DB :: select (DB :: raw (“SELECT *, (((acos (sin ((.. $ Enlem.” * pi () / 180)) * sin ((lat * pi () / 180) )) + cos ((“. $ ендік.” * pi () / 180)) * cos ((лат * pi () / 180)) * cos (((“. $ бойлық.” - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) қашықтық ретінде маркерлерден HAVING қашықтық> = “. $ Арақашықтық));

    [{«Id»: 1, «name»: «Frankie Johnnie & Luigo Too», «address»: «939 W El Camino Real, Mountain View, CA», «lat»: 37.386337280273, «lng»: - 122.08582305908, «Қашықтық»: 16079.294719663}, {«id»: 2, «name»: «Amici's East Coast Pizzeria», «address»: «790 Castro St, Mountain View, CA», «lat»: 37.387138366699, «lng»: -122.08323669434, «қашықтық»: 16079.175940152}, {«id»: 3, «name»: «Kapp's Pizza Bar & Grill», «address»: «191 Castro St, Mountain View, CA», «lat»: 37.393886566162, «Lng»: - 122.07891845703, «қашықтық»: 16078.381373826}, {«id»: 4, «name»: «Round Table Pizza: Mountain View», «address»: «570 N Shoreline Blvd, Mountain View, CA», «Лат»: 37.402652740479, «lng»: - 122.07935333252, «қашықтық»: 16077.420540582}, {«id»: 5, «name»: «Tony & Alba's Pizza & Pasta», «address»: «Escuela авеню, 619 View, CA «,» lat «: 37.394012451172,» lng «: - 122.09552764893,» қашықтық «: 16078.563225154}, {» id «: 6,» name «:» Oregano's Wood-Fire Pizza «,» address «:» 4546 El Camino Real, Los Altos, CA «,» lat «: 37.401725769043,» lng «: - 122.11464691162,» қашықтық «: 16077.937560795}, {» id «: 7,» name «:» Bars and grills «,» address «:» Уайтли көшесі, 24, Манчестер «,» лат «: 53.485118865967,» lng «: - 2.1828699111938,» арақашықтық «: 8038.7620112314}]

    Мен 20 мильдік жолдарды алғым келеді, бірақ ол барлық жолдарды алып келеді. Өтінемін, мен не істеп жатырмын?

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.