Kusanthula & KuyesaCRM ndi Data PlatformZida Zamalonda

Werengani Kapena Funsani Kutalikirana Kwambiri Pakati pa Mapointi a Latitude ndi Longitude Pogwiritsa Ntchito The Haversine Formula (PHP, JavaScript, Java, Python, MySQL, MSSQL Zitsanzo)

Mwezi uno ndakhala ndikukonza mapulogalamu pang'ono Php ndi MySQL poyerekeza ndi GIS. Poyang'ana mozungulira ukonde, ndinali ndi nthawi yovuta kupeza zina Kuwerengera kwa malo kuti ndipeze mtunda wapakati pa malo awiri kotero ndimafuna kuwagawana pano.

Flight Map Europe Ndi Kutali Kwambiri

Njira yosavuta yowerengera mtunda pakati pa mfundo ziwiri ndikugwiritsa ntchito njira ya Pythagorean kuwerengera kuyerekezera kwamakona atatu (A² + B² = C²). Izi zimadziwika kuti Mtunda wa Euclidean.

Ichi ndi chiyambi chosangalatsa koma sichikugwira ntchito ku Geography popeza mtunda wapakati pa mizere ya latitude ndi longitude siwofanana mtunda wosiyana. Pamene mukuyandikira equator, mizere ya latitude imasiyana kwambiri. Ngati mugwiritsa ntchito equation yosavuta ya triangulation, imatha kuyeza mtunda molondola pamalo amodzi ndikulakwika pamalo ena, chifukwa cha kupindika kwa Dziko lapansi.

Kutali Kwambiri Kwambiri

Njira zoyenda mtunda wautali kuzungulira Dziko lapansi zimadziwika kuti Great Circle Distance. Ndiko… mtunda waufupi kwambiri pakati pa mfundo ziwiri pagawo umasiyana ndi mfundo za mapu athyathyathya. Phatikizani izi ndi mfundo yakuti mizere ya latitude ndi longitudo sizofanana… ndipo mumawerengetsa zovuta.

Nayi malongosoledwe osangalatsa amakanema momwe Great Circles amagwirira ntchito.

Mpangidwe wa Haversine

Mtunda wogwiritsa ntchito kupindika kwa Dziko lapansi umaphatikizidwa mu njira ya Haversine, yomwe imagwiritsa ntchito trigonometry kulola kupindika kwa Dziko lapansi. Mukapeza mtunda pakati pa malo awiri Padziko Lapansi (pamene khwangwala akuwulukira), mzere wowongoka kwenikweni ndi arc.

Izi zimagwiranso ntchito pamayendedwe apandege - kodi mudayang'anapo mapu enieni a ndege ndikuwona kuti ndi arched? Ndi chifukwa chakuti kuwuluka pakati pa mfundo ziwiri kumakhala kofupikitsa kusiyana ndi kumene kuli kumene.

PHP: Sungani Mtunda Pakati pa 2 Pointi ya Latitude ndi Longitude

Nayi njira ya PHP yowerengera mtunda pakati pa mfundo ziwiri (pamodzi ndi kutembenuka kwa Mile vs. Kilometer) kuzunguliridwa ku malo awiri a decimal.

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)); 
}

Zosinthazo ndi:

  • $Latitude1 - chosinthika chautali wamalo anu oyamba.
  • $Longitude1 - chosinthika chautali wamalo oyamba
  • $Latitude2 - kusintha kwa latitudo yanu yachiwiri.
  • $Longitude2 - chosinthika chalongitudi yamalo achiwiri.
  • $gawo - munthu wosasintha zikwi. Izi zitha kusinthidwa kapena kuperekedwa ngati makilomita.

Java: Werengetsani Mtunda Pakati pa 2 Points of Latitude ndi Longitude

public static double getDistanceBetweenPointsNew(double latitude1, double longitude1, double latitude2, double longitude2, String unit) {
    double theta = longitude1 - longitude2;
    double distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit.equals("miles")) {
        return Math.round(distance, 2);
    } else if (unit.equals("kilometers")) {
        return Math.round(distance * 1.609344, 2);
    } else {
        return 0;
    }
}

Zosinthazo ndi:

  • latitude1 - chosinthika chautali wamalo anu oyamba.
  • longitude1 - chosinthika chautali wamalo oyamba
  • latitude2 - kusintha kwa latitudo yanu yachiwiri.
  • longitude2 - chosinthika chalongitudi yamalo achiwiri.
  • Unit - munthu wosasintha zikwi. Izi zitha kusinthidwa kapena kuperekedwa ngati makilomita.

Javascript: Werengetsani Mtunda Pakati pa 2 Points of Latitude ndi Longitude

function getDistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2, unit = 'miles') {
    let theta = longitude1 - longitude2;
    let distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit == 'miles') {
        return Math.round(distance, 2);
    } else if (unit == 'kilometers') {
        return Math.round(distance * 1.609344, 2);
    }
}

Zosinthazo ndi:

  • latitude1 - chosinthika chautali wamalo anu oyamba.
  • longitude1 - chosinthika chautali wamalo oyamba
  • latitude2 - kusintha kwa latitudo yanu yachiwiri.
  • longitude2 - chosinthika chalongitudi yamalo achiwiri.
  • Unit - munthu wosasintha zikwi. Izi zitha kusinthidwa kapena kuperekedwa ngati makilomita.

Python: Werengetsani Mtunda Pakati pa 2 Points of Latitude ndi Longitude

Komabe, nayi chilinganizo cha Python chowerengera mtunda pakati pa mfundo ziwiri (pamodzi ndi kutembenuka kwa Mile vs. Kilometer) kuzunguliridwa ku malo awiri a decimal. Mbiri kwa mwana wanga, Bill Karr yemwe ndi Data Scientist OpenINSIGHTS, kwa kodi.

from numpy import sin, cos, arccos, pi, round

def rad2deg(radians):
    degrees = radians * 180 / pi
    return degrees

def deg2rad(degrees):
    radians = degrees * pi / 180
    return radians

def getDistanceBetweenPointsNew(latitude1, longitude1, latitude2, longitude2, unit = 'miles'):
    
    theta = longitude1 - longitude2
    
    distance = 60 * 1.1515 * rad2deg(
        arccos(
            (sin(deg2rad(latitude1)) * sin(deg2rad(latitude2))) + 
            (cos(deg2rad(latitude1)) * cos(deg2rad(latitude2)) * cos(deg2rad(theta)))
        )
    )
    
    if unit == 'miles':
        return round(distance, 2)
    if unit == 'kilometers':
        return round(distance * 1.609344, 2)

Zosinthazo ndi:

  • latitude1 - chosinthika cha malo anu oyamba latitude.
  • longitude1 - chosinthika cha malo anu oyamba kutalika
  • latitude2 - zosinthika zamalo anu achiwiri latitude.
  • longitude2 - zosinthika zamalo anu achiwiri kutalika.
  • Unit - munthu wosasintha zikwi. Izi zitha kusinthidwa kapena kuperekedwa ngati makilomita.

MySQL: Kubweza Zolemba Zonse Mkati Mosiyana Powerengera Kutalikirana Kwa Miles Pogwiritsa Ntchito Latitude ndi Longitude

Ndikothekanso kugwiritsa ntchito SQL kuwerengera zolembedwa zonse pamtunda wina. Muchitsanzo ichi, ndifunsa MyTable mu MySQL kuti ndipeze zolembedwa zonse zosachepera kapena zofanana ndi kusinthasintha kwa $distance (mu Miles) kumalo anga pa $latitude ndi $longitude:

Funso lopeza zolemba zonse mwapadera mtunda powerengera mtunda mtunda pakati pa magawo awiri a latitude ndi longitude ndi:

$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."

Muyenera kusintha izi:

  • $ kutalika - uku ndikusintha kwa PHP komwe ndikudutsa kutalika kwa mfundoyi.
  • $ madera - uku ndikusintha kwa PHP komwe ndikudutsa kutalika kwa mfundoyi.
  • $ mtunda - uwu ndi mtunda womwe mungafune kuti zolemba zonse zisakhale zochepa kapena zofanana.
  • gome - ili ndiye gome… mudzafunika kulisintha ndi dzina la tebulo.
  • latitude - uwu ndi gawo la kutuluka kwanu.
  • kutalika - uwu ndi gawo lakutali kwanu.

MySQL: Kubweza Zolemba Zonse Mkati Mosiyana Powerengera Mtunda Wamakilomita Pogwiritsa Ntchito Latitude ndi Longitude

Nali funso la SQL pogwiritsa ntchito ma kilomita ku MySQL:

$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."

Muyenera kusintha izi:

  • $ kutalika - uku ndikusintha kwa PHP komwe ndikudutsa kutalika kwa mfundoyi.
  • $ madera - uku ndikusintha kwa PHP komwe ndikudutsa kutalika kwa mfundoyi.
  • $ mtunda - uwu ndi mtunda womwe mungafune kuti zolemba zonse zisakhale zochepa kapena zofanana.
  • gome - ili ndiye gome… mudzafunika kulisintha ndi dzina la tebulo.
  • latitude - uwu ndi gawo la kutuluka kwanu.
  • kutalika - uwu ndi gawo lakutali kwanu.

Ndinagwiritsa ntchito nambala iyi papulatifomu yantchito yomwe tidagulitsa malo ogulitsira omwe ali ndi malo opitilira 1,000 ku North America ndipo imagwira ntchito bwino.

Distance ya Microsoft SQL Server Geographic: STDistance

Ngati mukugwiritsa ntchito Microsoft SQL Server, amapereka ntchito yawoyawo, STDistance powerengera mtunda pakati pa mfundo ziwiri pogwiritsa ntchito mtundu wa deta ya Geography.

DECLARE @g geography;  
DECLARE @h geography;  
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.STDistance(@h);  

Tip kwa Manash Sahoo, VP ndi Architect of Highbridge.

Douglas Karr

Douglas Karr ndiye woyambitsa wa Martech Zone komanso katswiri wodziwika pakusintha kwa digito. Douglas wathandizira kuyambitsa zoyambira zingapo zopambana za MarTech, wathandizira kulimbikira kopitilira $5 bil pakugula ndi kuyika kwa Martech, ndipo akupitiliza kukhazikitsa nsanja ndi ntchito zake. Iye ndi woyambitsa nawo Highbridge, kampani yofunsira zakusintha kwa digito. Douglas ndi mlembi wofalitsidwa wa kalozera wa Dummie komanso buku la utsogoleri wabizinesi.

Nkhani

78 Comments

  1. Zikomo kwambiri pogawana nawo. Iyi inali ntchito yosavuta kukopera ndi kumata ndipo imagwira ntchito bwino. Mwandipulumutsa nthawi yambiri.
    FYI kwa aliyense amene akutumiza ku C:
    iwiri deg2rad (iwiri deg) {kubwerera deg * (3.14159265358979323846 / 180.0); }

  2. Cholemba chabwino kwambiri - chinagwira ntchito bwino kwambiri - ndimangofunika kusintha dzina la tebulo lokhala ndi chidule. Zimagwira mwachangu ku .. Ndili ndi ma lat-long ochepa (<400) koma ndikuganiza kuti izi zitha kukula bwino. Nawonso tsamba labwino - ndangowonjezera pa akaunti yanga ya del.icio.us ndipo ndiziwonanso pafupipafupi.

  3. Ndinapezanso kuti KUTI sikunandigwire ntchito. Anasintha kukhala HAVING ndipo zonse zimagwira ntchito bwino. Poyamba sindinawerenge ndemangazo ndikuzilembanso pogwiritsa ntchito zisa. Onse agwira ntchito bwino.

  4. Zothandiza modabwitsa, zikomo kwambiri! Ndinali ndi mavuto ndi "KUKHALA" kwatsopano, osati "KUMENE", koma nditawerenga ndemanga pano (patatha pafupifupi theka la ola ndikukukuta mano ndikukhumudwa = P), ndidayamba kugwira ntchito bwino. Zikomo ^ _ ^

  5. Kumbukirani kuti mawu osankhidwa ngati awa amakhala owerengera kwambiri ndipo pang'onopang'ono. Ngati muli ndi mafunso ambiri, amatha kuwononga zinthu mwachangu.

    Njira yocheperako kwambiri ndiyo kusankha choyamba (chopanda pake) pogwiritsa ntchito dera la SQUARE lotanthauzidwa ndi mtunda wowerengeka mwachitsanzo, "sankhani * kuchokera ku dzina la tebulo pomwe latitude pakati pa lat1 ndi lat2 ndi longitude pakati pa lon1 ndi lon2". lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, mofanana ndi lon. latdiff ~= mtunda / 111 (kwa km), kapena mtunda/69 wamakilomita popeza 1 digiri ya latitude ndi ~ 111 km (kusiyana pang'ono popeza dziko lapansi ndi lozungulira pang'ono, koma lokwanira kutero). londiff = mtunda / (abs(cos(deg2rad(latitude))*111)) — kapena 69 wamakilomita (mutha kutenga masikweya okulirapo pang'ono kuti muwerengere zamitundu yosiyanasiyana). Kenako tengani zotsatira zake ndikuzidyetsa muzosankha za radial. Osayiwala kuwerengera zolumikizira zomwe zili kunja kwa malire - mwachitsanzo, kutalika kwa longitude yovomerezeka ndi -180 mpaka +180 ndipo kuchuluka kwa latitude yovomerezeka ndi -90 mpaka +90 - ngati latdiff kapena londiff yanu idutsa munjira iyi. . Dziwani kuti nthawi zambiri izi sizingakhale zothandiza chifukwa zimangokhudza kuwerengera pamzere kudzera panyanja ya pacific kuchokera pamtengo kupita kumtunda, ngakhale zimadutsa gawo la chukotka ndi gawo la Alaska.

    Zomwe timakwanitsa ndi izi ndikuchepetsa kwakukulu pamalingaliro omwe mumapanga kuwerengera uku. Ngati muli ndi mfundo miliyoni padziko lonse lapansi zomwe zidasanjidwa mofanana ndipo mukufuna kusaka mkati mwa 100 km, kusaka kwanu koyamba (mwachangu) kuli m'dera la 10000 sq km ndipo mwina kutulutsa zotsatira pafupifupi 20 (kutengera kugawa kwa Pamalo pafupifupi 500M sq km), zomwe zikutanthauza kuti mumayesa kuwerengera kovuta maulendo 20 pamafunsowa m'malo moyerekeza miliyoni.

      1. Malangizo odabwitsa! Ndidagwira ntchito ndi wopanga mapulogalamu omwe adalemba ntchito yomwe imakoka mkati mwa sikweya kenako ntchito yobwereza yomwe idapanga 'mabwalo' kuzungulira kuzungulira kuti aphatikize ndikupatula mfundo zotsalira. Zotsatira zake zinali zotsatira zofulumira kwambiri - amatha kuwunika mamiliyoni a mfundo mu ma microseconds.

        Njira yanga pamwambapa ndi 'yamwano' koma yokhoza. Zikomonso!

        1. mbwa,

          Ndakhala ndikuyesera kugwiritsa ntchito mysql ndi php kuti ndiwone ngati gawo lalitali lili mkati mwa polygon. Kodi mukudziwa ngati mnzanu wopanga mapulogalamu adasindikiza zitsanzo zilizonse za momwe mungakwaniritsire ntchitoyi. Kapena mukudziwa zitsanzo zabwino. Ndithokozeretu.

  6. Moni nonse, iyi ndi mayeso anga a 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

    ndipo Mysql akundiuza kuti mtunda, kulibe ngati gawo, nditha kugwiritsa ntchito dongosolo, ndikhoza kuzichita popanda KODI, ndipo zimagwira ntchito, koma osati ndi izo…

  7. Izi ndizabwino, komabe zimangokhala momwe mbalame zimauluka. Kungakhale bwino kuyesa kuphatikiza mapu a API a Google mwanjira ina (mwina kugwiritsa ntchito misewu etc.) Kungopereka lingaliro pogwiritsa ntchito njira zina zoyendera. Mpaka pano sindinapange ntchito yolowetsa yoyerekeza mu PHP yomwe ingatithandizire yankho lavuto la ogulitsa. Koma ndikuganiza kuti nditha kugwiritsanso ntchito nambala yanu kuti ndichite choncho.

  8. Masiku 2 ofufuza kuti mupeze tsambali lomwe limathetsa vuto langa. Zikuwoneka kuti ndibwino kuthana ndi WolframAlpha yanga ndikutsuka masamu anga. Kusintha KUKHALA KUKHALA KUKHALA kumakhala ndi script yanga yogwira ntchito. ZIKOMO

  9. Ndikulakalaka ili litakhala tsamba loyamba lomwe ndapeza patsamba ili. Pambuyo poyesa malamulo osiyanasiyana, ichi chinali chokhacho chofunikira kugwira ntchito moyenera, ndikusintha pang'ono kuti ndikwaniritse nkhokwe yanga.
    Zikomo kwambiri!

  10. Ndikulakalaka ili litakhala tsamba loyamba lomwe ndapeza patsamba ili. Pambuyo poyesa malamulo osiyanasiyana, ichi chinali chokhacho chofunikira kugwira ntchito moyenera, ndikusintha pang'ono kuti ndikwaniritse nkhokwe yanga.
    Zikomo kwambiri!

  11. zikomo potumiza nkhaniyi yothandiza,  
    koma pazifukwa zina ndikufuna kufunsa
    Momwe mungapititsire mtunda pakati pa zingwe mkati mwa mysql db ndi ma coord oyikika ku php ndiogwiritsa?
    kuti mumve bwino:
    1.user akuyenera kuyika [id] posankha deta yapadera kuchokera ku db ndi ma coord a ogwiritsa ntchito
    Fayilo ya php imapeza ma data (ma coord) ogwiritsa ntchito [id] kenako kuwerengera mtunda pakati pa wosuta ndi wolunjika

    kapena kodi mungangopeza mtunda kuchokera pa code ili pansipa?

    $ qry = “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) ngati mtunda KUCHOKERA `MyTable` KUMENE mtunda> =“. $ Mtunda. ” >>>> ndingathe "kutulutsa" mtunda kuchokera pano?
    Zikomonso,
    Wolemba Timmy S.

  12. chabwino, zonse zomwe ndayesa sizikugwira ntchito. Ndikutanthauza, zomwe ndili nazo zimagwira ntchito, koma mtunda uli kutali kwambiri.

    Kodi pali amene angawone cholakwika ndi code iyi?

    ngati (isset ($ _ POST ['submitted'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['utali wozungulira']; lembani "Zotsatira za". $ z; $ sql = mysql_query ("SANKHANI DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. mzinda, z1.state KUCHOKERA mrk m, zip z1, zip z2 KUMENE m.zipcode = z1.zipcode NDI z2.zipcode = $ z NDI (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 ") kapena kufa (mysql_error ()); pamene ($ row = mysql_fetch_array ($ sql)) {$ sitolo1 = $ mzere ['MktName']. "”; $ shopu = $ mzere ['LocAddSt']. ””; $ sitolo. = $ mzere ['LocAddCity']. ”,". $ row ['LocAddState']. ” ". $ Mzere ['zipcode']; $ latitude1 = $ mzere ['lat']; $ longitude1 = $ mzere ['lon']; $ latitude2 = $ mzere ['y1']; $ longitude2 = $ mzere ['x1']; $ mzinda = $ mzere ['mzinda']; $ state = $ mzere ['state']; $ dis = yatsopano ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi'); // $ dis = mtunda ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ row ['wotsimikizika']; ngati ($ verified == '1') {echo "”; lembani "". $ sitolo. ""; lembetsani $ dis. "Mtunda (ma) mtunda"; lembani ""; } china {echo "". $ sitolo. ""; lembetsani $ dis. "Mtunda (ma) mtunda"; lembani ""; }}}

    ntchito zanga.php code
    ntchito getnew ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi') {$ theta = $ longitude1 - $ longitude2; $ mtunda = (tchimo (deg2rad ($ latitude1)) * tchimo (deg2rad ($ latitude2))) + (cos (deg2rad ($ latitude1)) * cos (deg2rad ($ latitude2)) * cos (deg2rad ($ theta)) ); $ mtunda = ma acos ($ mtunda); $ mtunda = rad2deg ($ mtunda); $ mtunda = $ mtunda * 60 * 1.1515; sinthani ($ unit) {case 'Mi': break; mlandu 'Km': $ mtunda = $ mtunda * 1.609344; } kubwerera (kuzungulira ($ mtunda, 2)); }

    tithokozeretu

  13. Hei Douglas, nkhani yabwino. Ndapeza kusandulika kwanu kwamalingaliro achilengedwe ndipo malamulowa anali osangalatsa kwambiri. Lingaliro langa lokhalo lingakhale loti nditsegule nambala yolozera (monga Stackoverflow, mwachitsanzo). Ndikumvetsetsa kuti mukufuna kusunga malo, koma njira zapaintaneti zokhazokha zitha kupangitsa kuti zikhale zosavuta kwa ine, monga wolemba mapulogalamu, kuti ndiwerenge ndi kuzigawa. Mulimonse, ndi chinthu chaching'ono. Pitilizani ntchito yayikuluyi.

  14. Zikuwoneka mwachangu (mysql 5.9) kugwiritsa ntchito kawiri fomuyi posankha ndi pati:
    $ formula = “(((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) ";
    $ sql = 'SANKHANI *,'. $ formula. ' monga mtunda KUCHOKERA patebulo KUMENE '.. $ formula.' <= '. $ mtunda;

  15. Zikomo kwambiri chifukwa chometera nkhaniyi.zothandiza kwambiri.
    PHP poyamba idapangidwa ngati pulogalamu yosavuta yolemba yotchedwa "Tsamba Lanyumba Lathu". Masiku ano PHP (chidule cha Hypertext Preprocessor) ndi njira ina yaukadaulo wa Microsoft's Active Server Pages (ASP).

    PHP ndi chilankhulo chotseguka cha seva chomwe chimagwiritsidwa ntchito popanga masamba azithunzi. Ikhoza kuphatikizidwa mu HTML. PHP imagwiritsidwa ntchito limodzi ndi database ya MySQL pa ma seva a Linux / UNIX. Mwinanso chilankhulo chodziwika kwambiri.

  16. Ndapeza kuti mayankho ali pamwambawa sakugwira ntchito bwino.
    Ndikufuna kusintha kukhala:

    $ qqq = "SELECT *, (((acos (sin ((". $ latitude. "* pi () / 180)) * tchimo ((` latt` * pi () / 180)) + cos ((". $ latitude. "* pi () / 180)) * cos ((` latt` * pi () / 180)) * cos (((". $ longitude." - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) mtunda kuchokera KU `rejista '";

  17. Moni, chonde ndikufunikiradi thandizo lanu pa izi.

    Ndidapempha ku web-server yanga
    53.47792 = madera a kumpoto
    -2.23389 = madola akutali
    ndi 20 = mtunda womwe ndikufuna kuti ndipeze

    Komabe pogwiritsira ntchito fomuyi, imapeza mizere yonse mu db yanga

    $zotsatira = DB:: sankhani( DB::raw(“SANKHANI *, (((acos(sin((“.$latitude).pi()/180)) * tchimo((latpi()/180))+cos((“.$latitude.”pi()/180)) * cos((latpi()/180)) * cos(((“.$longitude.”- lng)pi()/180)))180/pi ())601.1515 * 1.609344) ngati mtunda KUCHOKERA zolembera KUKHALA mtunda>= “.$distance ));

    [{"Id": 1, "dzina": "Frankie Johnnie & Luigo Too", "adilesi": "939 W El Camino Real, Mountain View, CA", "lat": 37.386337280273, "lng": - 122.08582305908, "Distance": 16079.294719663}, {"id": 2, "name": "Amici's East Coast Pizzeria", "adilesi": "790 Castro St, Mountain View, CA", "lat": 37.387138366699, "lng": -122.08323669434, ”mtunda”: ​​16079.175940152}, {“id”: 3, ”dzina”: ”Kapp's Pizza Bar & Grill”, ”adilesi”: ”191 Castro St, Mountain View, CA”, ”lat”: 37.393886566162, "Lng": - 122.07891845703, "distance": 16078.381373826}, {"id": 4, "name": "Round Table Pizza: Mountain View", "adilesi": "570 N Shoreline Blvd, Mountain View, CA", "Lat": 37.402652740479, "lng": - 122.07935333252, "mtunda": 16077.420540582}, {"id": 5, "name": "Tony & Alba's Pizza & Pasta", "adilesi": ”619 Escuela Ave, Mountain Onani, CA "," lat ": 37.394012451172," lng ": - 122.09552764893," mtunda ": 16078.563225154}, {" id ": 6," dzina ":" Pizza Wotentha Wotchedwa Oregano "," adilesi ":” 4546 El Camino Real, Los Altos, CA "," lat ": 37.401725769043," lng ": - 122.11464691162," mtunda ": 16077.937560795}, {" id ”: 7," dzina ":" Mabala ndi ma grills "," adilesi ":" 24 Whiteley Street, Manchester "," lat ": 53.485118865967," lng ": - 2.1828699111938," mtunda ": 8038.7620112314}]

    Ndikufuna kupeza mizere ing'onoing'ono ndi 20 miles koma imabweretsa mizere yonse. Chonde ndikulakwitsa chiyani

  18. Ndikufunafuna funso lofananalo koma ndidakulirakulira pang'ono - mwachidule uku ndikuphatikiza ma coordinates onse mkati mwa ma 2 mamailosi ndikuwerengera kuti ndi angati omwe ali mgulu lililonse ndikutulutsa gulu limodzi lokha lomwe lili ndi makonzedwe ambiri - ngakhale muli ndi magulu angapo m'magulu omwe ali ndi magawo ambiri - ingotulutsani gulu losasintha m'magulu omwe ali ndi nambala yofanana -

Mukuganiza chiyani?

Tsambali likugwiritsa ntchito Akismet kuchepetsa spam. Phunzirani momwe deta yanu ikufotokozera.