CRM u Pjattaformi tad-DejtaAnalitiċi & Ittestjarmarketing Tools

Ikkalkula jew Staqsa Distanza Ċirku Kbir Bejn Punti ta' Latitudni u Lonġitudni Bl-użu tal-Formula Havesine (Eżempji PHP, Python, MySQL, MSSQL)

Dan ix-xahar kont qed nipprogramma ftit fil-PHP u l-MySQL fir-rigward tal-GIS. Waqt li nħares madwar ix-xibka, fil-fatt kelli diffikultà nsib ftit mill- Kalkoli ġeografiċi biex insib id-distanza bejn żewġ postijiet u għalhekk ridt naqsamhom hawn.

Mappa tat-Titjira Ewropa b'Distanza ta 'Ċirku Kbir

Il-mod sempliċi biex tkun ikkalkulata distanza bejn żewġ punti huwa billi tuża l-formula Pitagorika biex tikkalkula l-ipotenusa ta 'trijanglu (A² + B² = C²). Dan huwa magħruf bħala Distanza Ewklideja.

Dak huwa bidu interessanti iżda ma japplikax mal-Ġeografija billi d-distanza bejn il-linji tal-latitudni u l-lonġitudni huma distanzi mhux ugwali apparti. Hekk kif tersaq eqreb lejn l-ekwatur, il-linji tal-latitudni jinfirdu aktar. Jekk tuża xi tip ta 'ekwazzjoni ta' trijangolazzjoni sempliċi, tista 'tkejjel id-distanza b'mod preċiż f'post wieħed u terriblement ħażin fl-ieħor, minħabba l-kurvatura tad-Dinja.

Distanza taċ-Ċirku l-Kbir

Ir-rotot li jivvjaġġaw fuq distanzi twal madwar id-Dinja huma magħrufa bħala Distanza taċ-Ċirku l-Kbir. Jiġifieri... l-iqsar distanza bejn żewġ punti fuq sfera hija differenti mill-punti fuq mappa ċatta. Għaqqad dan mal-fatt li l-linji tal-latitudni u l-lonġitudni mhumiex ekwidistanti... u għandek kalkolu diffiċli.

Hawn spjegazzjoni tal-vidjo meraviljuża ta 'kif jaħdmu Ċrieki l-Kbar

Il-Formula Haversine

Id - distanza li tuża l - kurvatura tad - Dinja hija inkorporata fil - Formula Haversine, li juża t-trigonometrija biex jippermetti l-kurvatura tad-dinja. Meta tkun qed issib id-distanza bejn 2 postijiet fuq l-art (f'linja dritta), linja dritta hija verament ark.

Dan huwa applikabbli fit-titjira bl-ajru - qatt ħares lejn il-mappa attwali tat-titjiriet u innutajt li huma arkati? Dan għaliex huwa iqsar li ttir f'arka bejn żewġ punti milli direttament lejn il-post.

PHP: Ikkalkula Distanza Bejn 2 Punti ta 'Latitudni u Lonġitudni

Hawn il-formula PHP għall-kalkolu tad-distanza bejn żewġ punti (flimkien mal-konverżjoni Mile vs Kilometer) imqarreb għal żewġ postijiet deċimali.

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

Il-varjabbli huma:

  • $Latitudni1 – varjabbli għal-latitudni tal-ewwel post tiegħek.
  • $Lonġitudni1 – varjabbli għall-lonġitudni tal-ewwel post tiegħek
  • $Latitudni2 – varjabbli għal-latitudni tat-tieni post tiegħek.
  • $Lonġitudni2 – varjabbli għal-lonġitudni tat-tieni post tiegħek.
  • $unità – il-kontumaċja tkun mili. Dan jista 'jiġi aġġornat jew mgħoddi bħala kilometri.

Python: Ikkalkula Distanza Bejn 2 Punti ta' Latitudni u Lonġitudni

Xorta waħda, hawn il-formula Python għall-kalkolu tad-distanza bejn żewġ punti (flimkien mal-konverżjoni Mile vs Kilometer) imqarreb għal żewġ postijiet deċimali. Kreditu lil ibni, Bill Karr li huwa Xjentist tad-Data għalih OpenINSIGHTS, għall-kodiċi.

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)

Il-varjabbli huma:

  • latitudni1 – varjabbli għall-ewwel post tiegħek latitudni.
  • lonġitudni1 – varjabbli għall-ewwel post tiegħek lonġitudni
  • latitudni2 – varjabbli għat-tieni post tiegħek latitudni.
  • lonġitudni2 – varjabbli għat-tieni post tiegħek lonġitudni.
  • unità – il-kontumaċja tkun mili. Dan jista 'jiġi aġġornat jew mgħoddi bħala kilometri.

MySQL: L-Irkupru tar-Reġistri Kollha f'Medda Billi Tikkalkula Distanza F'Mili billi tuża Latitudni u Lonġitudni

Huwa wkoll possibbli li tuża SQL biex tagħmel kalkolu biex issib ir-rekords kollha f'distanza speċifika. F'dan l-eżempju, jien ser nistaqsi MyTable f'MySQL biex insib ir-rekords kollha li huma inqas minn jew ugwali għal $ distanza varjabbli (f'mili) għall-lokalità tiegħi f '$ latitudni u $ lonġitudni:

Il-mistoqsija biex jiġu rkuprati r-rekords kollha fi ħdan speċifiku distanza billi tiġi kkalkulata d-distanza f'mili bejn żewġ punti ta 'latitudni u lonġitudni huma:

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

Int ser ikollok bżonn tippersonalizza dan:

  • $ lonġitudni - din hija varjabbli PHP fejn qed ngħaddi l-lonġitudni tal-punt.
  • $ latitudni - din hija varjabbli PHP fejn qed ngħaddi l-lonġitudni tal-punt.
  • $ distanza - din hija d-distanza li tixtieq issib ir-rekords kollha inqas jew daqs.
  • tabella - din hija t-tabella ... tkun trid tibdel dik bl-isem tat-tabella tiegħek.
  • latitudni - dan huwa l-qasam tal-latitudni tiegħek.
  • lonġitudni - dan huwa l-qasam tal-lonġitudni tiegħek.

MySQL: L-Irkupru tar-Reġistri Kollha F'Medda Billi Tikkalkula Distanza F'Kilometri billi tuża Latitudni u Lonġitudni

U hawn il-mistoqsija SQL billi tuża kilometri fil-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."

Int ser ikollok bżonn tippersonalizza dan:

  • $ lonġitudni - din hija varjabbli PHP fejn qed ngħaddi l-lonġitudni tal-punt.
  • $ latitudni - din hija varjabbli PHP fejn qed ngħaddi l-lonġitudni tal-punt.
  • $ distanza - din hija d-distanza li tixtieq issib ir-rekords kollha inqas jew daqs.
  • tabella - din hija t-tabella ... tkun trid tibdel dik bl-isem tat-tabella tiegħek.
  • latitudni - dan huwa l-qasam tal-latitudni tiegħek.
  • lonġitudni - dan huwa l-qasam tal-lonġitudni tiegħek.

Użajt dan il-kodiċi fi pjattaforma tal-immappjar tal-intrapriża li użajna għal ħanut bl-imnut b'aktar minn 1,000 post madwar l-Amerika ta 'Fuq u ħadem tajjeb.

Microsoft SQL Server Distanza Ġeografika: STDistance

Jekk qed tuża Microsoft SQL Server, dawn joffru l-funzjoni tagħhom stess, STDistanza għall-kalkolu tad-distanza bejn żewġ punti bl-użu tat-tip tad-dejta tal-Ġeografija.

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

Il-ponta tal-kappell lil Manash Sahoo, VP u Perit ta’ Highbridge.

Douglas Karr

Douglas Karr huwa l - fundatur tal - Martech Zone u espert rikonoxxut dwar it-trasformazzjoni diġitali. Doug huwa Kelliem Pubbliku Ewlieni u tal-Marketing. Huwa l-VP u l-kofundatur ta ' Highbridge, ditta li tispeċjalizza fl-għajnuna lill-kumpaniji tal-intrapriżi biex jittrasformaw u jimmassimizzaw b'mod diġitali l-investiment fit-teknoloġija tagħhom billi jużaw teknoloġiji tal-Salesforce. Huwa żviluppa strateġiji ta 'kummerċ diġitali u prodott għal Teknoloġiji Dell, GoDaddy, Salesforce, Webtrends, u SmartFOCUS. Douglas huwa wkoll l-awtur ta ' Blogging Korporattiv għall-Manikini u ko-awtur ta ' Il-Ktieb tan-Negozju Aħjar.

Artikli relatati

78 Kummenti

  1. Grazzi ħafna talli taqsam. Dan kien xogħol faċli ta’ kopja u pejst u jaħdem tajjeb. Int ffrankajt ħafna ħin.
    FYI għal kull min itrasferixxi lejn C:
    double deg2rad(double deg) { return deg*(3.14159265358979323846/180.0); }

  2. Biċċa sabiħa ħafna ta 'kollokament - ħadmet sabiħ ħafna - kelli biss nibdel l-isem tat-tabella li żżomm il-lat-long. Jaħdem pjuttost malajr biex .. Għandi numru raġonevolment żgħir ta 'lat-longs (< 400) iżda naħseb li dan jitkabbar tajjeb. Sit sabiħ ukoll - għadni kif żidu mal-kont del.icio.us tiegħi u ser niċċekkja lura regolarment.

  3. Grazzi ħafna talli qsamt dan il-kodiċi. Ffrankatni ħafna ħin ta 'żvilupp. Ukoll, grazzi lill-qarrejja tiegħek talli rrimarkaw li dikjarazzjoni HAVING hija meħtieġa għal MySQL 5.x. Ta’ għajnuna kbira.

  4. Sibt ukoll li FEJN ma ħademx għalija. Biddlet għal HAVING u kollox jaħdem perfett. Għall-ewwel ma qrajtx il-kummenti u ktibtha mill-ġdid bl-użu ta' selezzjoni nested. It-tnejn se jaħdmu tajjeb.

  5. Oerhört utli, grazzi ħafna! Kont qed ikolli xi problemi bil-ġdid "HAVING", aktar milli "FEJN", imma ladarba qrajt il-kummenti hawn (wara madwar nofs siegħa ta 'tħin snieni fil-frustrazzjoni =P), sibt taħdem tajjeb. Grazzi ^_^

  6. Żomm f'moħħok li dikjarazzjoni magħżula bħal dik se tkun komputament intensiva ħafna u għalhekk bil-mod. Jekk għandek ħafna minn dawk il-mistoqsijiet, tista 'tħawwad l-affarijiet pjuttost malajr.

    Approċċ ħafna inqas intens huwa li tmexxi l-ewwel għażla (mhux raffinat) bl-użu ta' żona QUARE definita minn distanza kkalkulata jiġifieri "select * from tablename fejn latitudni bejn lat1 u lat2 u lonġitudni bejn lon1 u lon2". lat1 = targetlatitude – latdiff, lat2 = targetlatitude + latdiff, simili ma' lon. latdiff ~= distanza / 111 (għal km), jew distanza / 69 għal mili peress li grad 1 ta' latitudni huwa ~ 111 km (varjazzjoni żgħira peress li d-dinja hija kemmxejn ovali, iżda biżżejjed għal dan il-għan). londiff = distanza / (abs(cos(deg2rad(latitudni))*111)) — jew 69 għal mili (tista' fil-fatt tieħu kwadru kemmxejn akbar sabiex tagħti kont tal-varjazzjonijiet). Imbagħad ħu r-riżultat ta 'dak u għalfha fil-għażla radjali. Tinsiex tqis il-koordinati barra mill-konfini – jiġifieri l-firxa ta’ lonġitudni aċċettabbli hija -180 sa +180 u l-firxa ta’ latitudni aċċettabbli hija -90 sa +90 — f’każ li l-latdiff jew londiff tiegħek jgħaddi barra minn din il-medda . Innota li f'ħafna każijiet dan jista 'ma jkunx applikabbli peress li jaffettwa biss il-kalkoli fuq linja mill-oċean Paċifiku minn arblu għal arblu, għalkemm jaqsam parti minn chukotka u parti mill-alaska.

    Dak li nwettqu b'dan huwa tnaqqis sinifikanti fin-numru ta' punti li fuqhom tagħmel dan il-kalkolu. Jekk għandek miljun punt globali fid-database mqassma bejn wieħed u ieħor indaqs u trid tfittex fi żmien 100 km, allura l-ewwel tfittxija (mgħaġġla) tiegħek hija ta’ żona ta’ 10000 km sq u probabbilment se tagħti madwar 20 riżultat (ibbażat fuq distribuzzjoni uniformi fuq erja tal-wiċċ ta 'madwar 500M sq km), li jfisser li inti tmexxi l-kalkolu tad-distanza kumplessa 20 darba għal din il-mistoqsija minflok miljun darba.

      1. Parir meraviljuż! Fil-fatt ħdimt ma' żviluppatur li kiteb funzjoni li ġibdet il-kwadru ta 'ġewwa u mbagħad funzjoni rikorsisiva li għamlet 'kwadri' madwar il-perimetru biex tinkludi u teskludi l-punti li fadal. Ir-riżultat kien riżultat veloċi oerhört - seta' jevalwa miljuni ta 'punti f'mikrosekondi.

        L-approċċ tiegħi ta' hawn fuq huwa definittivament 'gred' iżda kapaċi. Grazzi mill-ġdid!

        1. Doug,

          Kont qed nipprova nuża mysql u php biex nevalwa jekk punt twil lat huwiex fi ħdan poligonu. Taf jekk il-ħabib żviluppatur tiegħek ippubblikax xi eżempji dwar kif twettaq dan il-kompitu. Jew taf xi eżempji tajbin. Grazzi mill-quddiem.

  7. Hi lil kulħadd, din hija l-istqarrija SQL tat-test tiegħi:

    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

    u Mysql qed jgħidli li d-distanza, ma teżistix bħala kolonna, nista' nuża l-ordni minn, nista' nagħmilha mingħajr FEJN, u taħdem, iżda mhux magħha...

  8. Dan huwa kbir, madankollu huwa eżatt kif l-għasafar jtiru. Ikun kbir li tipprova tinkorpora l-API tal-google maps għal dan b'xi mod (forsi bl-użu ta 'toroq eċċ.) Sempliċement biex tagħti idea billi tuża forma differenti ta' trasport. Għadni għad irid nagħmel funzjoni ta 'ttemprar simulata fil-PHP li tkun kapaċi toffri soluzzjoni effiċjenti għall-problema tal-bejjiegħ li jivvjaġġa. Imma naħseb li nista' nkun kapaċi nerġa' nuża ftit mill-kodiċi tiegħek biex nagħmel dan.

  9. Jumejn ta’ riċerka biex fl-aħħar insib din il-paġna li ssolvi l-problema tiegħi. Jidher li aħjar nneħħi l-WolframAlpha tiegħi u ngħolli l-matematika tiegħi. Il-bidla minn FEJN għal HAVING għandha l-iskrittura tiegħi li taħdem. GRAZZI

  10. Nixtieq li din kienet l-ewwel paġna li sibt fuq dan. Wara li ppruvajt ħafna kmandi differenti din kienet l-unika waħda li taħdem sew, u b'bidliet minimi meħtieġa biex taqbel mad-database tiegħi stess.
    Grazzi ħafna!

  11. Nixtieq li din kienet l-ewwel paġna li sibt fuq dan. Wara li ppruvajt ħafna kmandi differenti din kienet l-unika waħda li taħdem sew, u b'bidliet minimi meħtieġa biex taqbel mad-database tiegħi stess.
    Grazzi ħafna!

  12. grazzi talli poġġiet dan l-artiklu utli,  
    imma għal xi raġuni nixtieq nistaqsi
    kif tikseb id-distanza bejn coords ġewwa mysql db u coords mdaħħla f'php mill-utent?
    għal tiddeskrivi b'mod aktar ċar:
    1.l-utent irid daħħal [id] għall-għażla tad-dejta speċifikata mid-db u l-koordinati tal-utent innifsu
    2.il-fajl php tikseb id-data fil-mira (coords) billi tuża [id] u mbagħad ikkalkula d-distanza bejn l-utent u l-punt fil-mira

    jew tista 'sempliċement tikseb distanza mill-kodiċi hawn taħt?

    $qry = “AGĦŻEL *,(((acos(sin((“.$latitudni.”*pi()/180)) * sin((`Latitudni`*pi()/180))+cos((“. $latitudni.”*pi()/180)) * cos((`Latitudni`*pi()/180)) * cos(((“.$lonġitudni.”- `Lonġitudni`)*pi()/180) )))*180/pi())*60*1.1515*1.609344) bħala distanza MINN `MyTable` WHERE distanza >= “.$distanza.” >>>>nista '"nieħu" id-distanza minn hawn?
    grazzi mill-ġdid,
    Timmy S

  13. ok, dak kollu li ppruvajt mhux qed jaħdem. Jiġifieri, dak li għandi jaħdem, iżda d-distanzi huma 'l bogħod.

    Jista' xi ħadd jara x'inhu ħażin f'dan il-kodiċi?

    if(isset($_POST['sottomess'])){ $z = $_POST['zipcode']; $r = $_POST['raġġ']; echo “Riżultati għal “.$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. belt,z1.state MINN mrk m, zip z1, zip z2 FEJN m.zipcode = z1.zipcode U z2.zipcode = $z U (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 ) ) ) jew <= $e ") (mysql_error()); while($row = mysql_fetch_array( $sql )) { $store1 = $row['MktName']."”; $store = $row['LocAddSt'].””; $store .= $row['LocAddCity'].”, “.$row['LocAddState'].” “.$row['zipcode']; $latitudni1 = $row['lat']; $lonġitudni1 = $ringiela['lon']; $latitudni2 = $ringiela['y1']; $lonġitudni2 = $ringiela['x1']; $belt = $ringiela['belt']; $state = $row['state']; $dis = getnew($latitudni1, $lonġitudni1, $latitudni2, $lonġitudni2, $unit = 'Mi'); // $dis = distanza($lat1, $lon1, $lat2, $lon2); $verified = $row['verifikat']; if($verifikat == '1'){ echo “”; echo “”.$maħżen.””; echo $dis . ” mil(i) bogħod”; eku “”; } inkella { echo “”.$maħżen.””; echo $dis . ” mil(i) bogħod”; eku “”; } }}

    kodiċi functions.php tiegħi
    funzjoni getnew($latitudni1, $lonġitudni1, $latitudni2, $lonġitudni2, $unit = 'Mi') { $theta = $lonġitudni1 – $lonġitudni2; $distanza = (sin(deg2rad($latitudni1)) * sin(deg2rad($latitudni2))) + (cos(deg2rad($latitudni1)) * cos(deg2rad($latitudni2)) * cos(deg2rad($theta)) ); $distanza = acos($distanza); $distanza = rad2deg($distanza); $distanza = $distanza * 60 * 1.1515; switch($unit) { każ 'Mi': break; każ 'Km' : $distanza = $distanza * 1.609344; } ritorn (round($distanza,2)); }

    Grazzi bil-quddiem

  14. Ħej Douglas, artikolu kbir. Sibt l-ispjegazzjoni tiegħek tal-kunċetti ġeografiċi u l-kodiċi tassew interessanti. L-uniku suġġeriment tiegħi jkun li l-ispazju u l-indent tal-kodiċi għall-wiri (bħal Stackoverflow, pereżempju). Nifhem li trid tikkonserva l-ispazju, iżda l-ispazjar tal-kodiċi konvenzjonali / l-indentazzjoni tagħmilha ħafna aktar faċli għalija, bħala programmatur, biex naqra u tissekta. Xorta waħda, dik hija ħaġa żgħira. Kompli l-ħidma kbira.

  15. jidher aktar mgħaġġel (mysql 5.9) li tuża d-doppju tal-formula fl-għażla u fejn:
    $formula = “(((acos(sin((“.$latitudni.”*pi()/180)) * sin((`Latitudni`*pi()/180))+cos(((“.$latitudni. ”*pi()/180)) * cos((`Latitudni`*pi()/180)) * cos(((“.$lonġitudni.”- `Lonġitudni`)*pi()/180)))) *180/pi())*60*1.1515*1.609344)”;
    $sql = 'AGĦŻEL *, '.$formula.' bħala distanza MINN tabella FEJN '..$formula.' <= '.$distanza;

  16. Grazzi ħafna talli seqsam dan l-artikolu. Huwa utli ħafna.
    PHP għall-ewwel inħoloq bħala pjattaforma ta' skript sempliċi imsejħa "Personal Home Page". Illum il-ġurnata PHP (il-qosor għal Hypertext Preprocessor) hija alternattiva tat-teknoloġija tal-Microsoft Active Server Pages (ASP).

    PHP hija lingwa open source fuq in-naħa tas-server li tintuża għall-ħolqien ta' paġni tal-web dinamiċi. Jista 'jiġi inkorporat f'HTML. PHP normalment jintuża flimkien ma 'database MySQL fuq servers tal-web Linux/UNIX. Huwa probabbilment l-aktar lingwa tal-kitba popolari.

  17. Sibt hawn fuq is-soluzzjoni ma taħdimx sew.
    Għandi bżonn nibdel għal:

    $qqq = “SELECT *,(((acos(sin((“.$latitude.”*pi()/180)) * sin((`latt`*pi()/180))+cos((” . $latitudni . “*pi()/180)) * cos((`latt`*pi()/180)) * cos(((” . $lonġitudni . “- `longt`)*pi()/180) )))*180/pi())*60*1.1515) bħala distanza MINN `reġistru` “;

  18. Hello, jekk jogħġbok verament ikolli bżonn l-għajnuna tiegħek dwar dan.

    Jien għamilt talba biex nikseb lill-web-server tiegħi http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $latitudni
    -2.23389 = $lonġitudni
    u 20 = id-distanza li rrid nirkupra

    Madankollu billi tuża l-formula tiegħek, tirkupra r-ringieli kollha fid-db tiegħi

    $riżultati = DB::select( DB::raw(“SELECT *, (((acos(sin((“.$latitude.”*pi()/180)) * sin((lat*pi()/180) ))+cos((“.$latitudni.”*pi()/180)) * cos((lat*pi()/180)) * cos(((“.$lonġitudni.”- lng)*pi( )/180))))*180/pi())*60*1.1515*1.609344) bħala distanza MILL-markaturi HAVING distanza >= “.$distanza ));

    [{“id”:1,”name”:”Frankie Johnnie & Luigo Too”,”indirizz”:”939 W El Camino Real, Mountain View, CA”,”lat”:37.386337280273,”lng”:-122.08582305908, ”distanza”:16079.294719663},{“id”:2,”name”:”Amici's East Coast Pizzeria”,”indirizz”:”790 Castro St, Mountain View, CA”,”lat”:37.387138366699,”lng”: -122.08323669434,”distanza”:16079.175940152},{“id”:3,”name”:”Kapp's Pizza Bar & Grill”,”indirizz”:”191 Castro St, Mountain View, CA”,”lat”:37.393886566162, ”lng”:-122.07891845703,”distanza”:16078.381373826},{“id”:4,”name”:”Round Table Pizza: Mountain View”,”indirizz”:”570 N Shoreline Blvd, Mountain View, CA”, ”lat”:37.402652740479,”lng”:-122.07935333252,”distanza”:16077.420540582},{“id”:5,”name”:”Tony & Alba's Pizza & Pasta”,”indirizz”:”619 Escuela Ave, Mountain” View, CA”,”lat”:37.394012451172,”lng”:-122.09552764893,”distanza”:16078.563225154},{“id”:6,”name”:”Oregano's Wood-Fired Pizza”,”indirizz4546”:”37.401725769043” El Camino Real, Los Altos, CA”,”lat”:122.11464691162,”lng”:-16077.937560795,”distanza”:7},{“ id”:24,”name”:”The bars and grills”,”indirizz”:”53.485118865967 Whiteley Street, Manchester”,”lat”:2.1828699111938,”lng”:-8038.7620112314,”distanza”:XNUMX}]

    Irrid irkupra biss ringieli b'20 mil iżda ġġib ir-ringieli kollha. Jekk jogħġbok x'qed nagħmel ħażin

  19. Qed infittex mistoqsija simili iżda żidt xi ftit – fil-qosor dan huwa li niġbor il-koordinati kollha fi żmien 2 mili minn kull koordinata u mbagħad ngħodd kemm-il koordinati f'kull grupp u joħroġ grupp wieħed biss li għandu l-aktar koordinati – anke jekk għandek aktar minn grupp wieħed fost il-gruppi li għandhom l-aktar numru ta' koordinati - sempliċement toħroġ il-grupp każwali mill-gruppi bl-istess numru akbar -

What do you think?

Dan is-sit juża Akismet biex inaqqas l-ispam. Tgħallem kif il-kumment tiegħek huwa pproċessat.

Lura għall-buttuna ta 'fuq