
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.

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.
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); }
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.
Zikomo kwambiri Peter ndi Kerry! Ngati mukufuna kugwira ntchito pamapulojekiti a GIS, ndingapangire:
Zikomo kwambiri… 😀
Ndasanthula tsiku lonse kuti ndiwerenge kuwerengera mtunda ndipo ndidapeza harversine algorithm, zikomo kwa inu popereka chitsanzo cha momwe mungayikidwire mu sql. Zikomo ndikupatsani moni, Daniel
Wokondwa kuthandiza, njanji mnzanu!
Tsopano ndikufufuza 'mu Polygon' PHP ntchito yomwe itenge magawo angapo a latitude ndi longitude ndikuwona ngati mfundo ina ili mkati kapena kunja kwa polygon.
Ndapeza fayilo ya equation kuti mudziwe ngati mfundo mu polygon!
Ndikuganiza kuti SQL yanu imafunika kukhala ndi mawu.
m'malo mwa WHERE mtunda <= $ mtunda womwe mungafunike
gwiritsani mtunda wa HAVING <= $ mtunda
apo ayi zikomo pondipulumutsa nthawi ndi mphamvu zambiri.
Moni David,
Ngati mukuchita mtundu uliwonse wa GROUP BY statement, mudzafunika KUKHALA. Ine sindikuchita izo mu chitsanzo pamwamba.
Doug
Malingana ndi MySQL 5.x, simungagwiritse ntchito dzina lina PAMENE chiganizo CHOONA http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
Gwiritsani ntchito KUKHALA m'malo MWA WHERE pamafunso omwe ali pamwambapa
Zikomo kwambiri. Mwachita ntchito yayikulu ndicho chinthu chomwe ndikufuna. Zikomo kwambiri.
Zikomo kwambiri pogawana code iyi. Zinandipulumutsa nthawi yambiri yachitukuko. Komanso, zikomo kwa owerenga anu pofotokoza kuti HAVING statement ndiyofunikira pa MySQL 5.x. Zothandiza kwambiri.
Ndine wodala kukhala ndi owerenga anzeru kwambiri kuposa ine!
🙂
Njira yomwe ili pamwambayi ikundipulumutsa nthawi yambiri. Zikomo kwambiri.
Ndiyeneranso kusintha pakati pa mtundu wa NMEA ndi Ma Degree. Ndapeza fomula pa URL iyi pansi pa tsamba. http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html
Kodi pali amene amadziwa kutsimikizira izi?
Zikomo!
Harry
Moni,
Funso lina. Kodi pali njira ya zingwe za NMEA ngati ili pansipa?
1342.7500, N, 10052.2287, E
$GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B
zikomo,
Harry
Ndinapezanso kuti KUTI sikunandigwire ntchito. Anasintha kukhala HAVING ndipo zonse zimagwira ntchito bwino. Poyamba sindinawerenge ndemangazo ndikuzilembanso pogwiritsa ntchito zisa. Onse agwira ntchito bwino.
Zikomo kwambiri chifukwa cholemba mu mysql, ndimangofunika kusintha pang'ono (HAVING) 🙂
Ntchito yachinyengo
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 ^ _ ^
zikomo kwambiri zimagwira ntchito bwino
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.
Zolakwa zazing'ono mchitsanzo… zomwe zitha kukhala mkati mwa 50 km (osati 100) popeza tikuyang'ana "utali wozungulira" wa bwalo lathu.
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!
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.
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…
Sinthanitsani "PAKATI mtunda" ndi "KUKHALA mtunda".
Imagwira ngati chithumwa, zikomo, Douglas!
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.
Wawa Douglas,
zikomo kwambiri chifukwa cha nkhaniyi - mwangondipulumutsa nthawi yayitali.
samalira,
@alirezatalischioriginal
Nkhani yabwino! Ndapeza zolemba zambiri zofotokozera momwe tingawerengere mtunda pakati pa mfundo ziwiri koma ndimayang'ana kwenikweni chidule cha SQL.
Zikomo kwambiri zimagwira ntchito bwino
Zikomo kwambiri chifukwa cha fomula iyi. Zinandimeta kwakanthawi pantchito yamalo ogulitsira zomwe zimandidya.
Zikomo mtolo. Mzere wawung'ono wamakhodiwu wandipulumutsa nthawi yayitali pantchito yamalo ogulitsa!
# 1054 - Danga losadziwika 'mtunda' mu 'pomwe gawo'
kuvomereza
Chomwechonso kuno! Vuto ndi chiyani: - /? momwe mungathetsere "mtunda" - Vuto la Column? Tithandizeni chonde! 🙂
Yesani kugwiritsa ntchito KUKHALA m'malo mwa KUMENE
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
m'malo mwa WHERE gwiritsani ntchito:
Pokhala ndi mtunda <50
Zikomo Georgi. Ndimapitilizabe kupitirira gawo 'lamtunda' osapezeka. Ndikangosintha KUMENE ndikakhala kuti zidagwira ngati chithumwa!
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!
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!
Zikomo kwambiri!
Zikomo kwambiri!
Sindikuganiza kuti nambala iyi ikuwonekeranso. Mwina ndi firefox?
Ndangoyesa zonse mu Firefox ndi Chrome ndipo zikuwoneka. Yesaninso?
Wawa. Zikomo kwambiri. Izi zimagwira ngati chithumwa.
Zikomo kwambiri Douglas. Izi zikugwira ntchito bwino.
Ndikudziwa kuti fomuyi imagwira ntchito, koma sindikuwona komwe dziko lapansi limaganiziridwa. Kodi pali amene angandiwunikire chonde?
Tim, kuti mumve tsatanetsatane wa fomu ya Haversine (si code), onani nkhani ya Wikipedia: http://en.wikipedia.org/wiki/Haversine_formula
Zokongola! Izi zandithandiza kwambiri!
Zinthu zazikulu Douglas. Kodi mwayesapo kupeza njira yolumikizirana yomwe yapatsidwa Kutalika / Kutalika / Kuyika mfundo ziwiri?
Simunachite izi, Khanh!
Zikomo Douglas, SQL Query ndizomwe ndimafunikira, ndipo ndimaganiza kuti ndiyenera kuzilemba ndekha. Mwandipulumutsa kuchokera ku kutalika kwa kutalika kwa latitude kuphunzira curve!
Ndimapitilizabe Errormessage: Danga losadziwika 'Distance' mu 'pomwe gawo' pa Funso la MySQL.
Peter, chonde werengani ndemanga zina. Zikuwoneka kuti anthu ena amayenera kugwiritsa ntchito malembedwe ena PAKATI / KUKHALA.
Zikomo chifukwa cha nkhani yabwinoyi! Ndangoyesa nambala yanga pa DB yanga ndipo ndidagwira bwino ntchito!
Douglas, zikomo chifukwa chododometsa ichi. Ndakhala ndikuphwanya mutu wanga momwe ndingachitire izi patsamba langa la GPS. Mwandipulumutsa maola ambiri.
Zabwino kumva, Ash!
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.
osadandaula, ndazindikira momwe "ntchito" imagwirira ntchito mu php
$ dis = getDistanceBetweenPointsNew ($ userLati, $ userLongi, $ lati, $ longi, $ unit = 'Km')
Zikomo kwambiri!!
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
Zikomo chifukwa cha nkhaniyi. Kugwira ntchito bwino ndi nambala yanga. 🙂
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.
Zikomo! Ndasintha positi pang'ono ... koma ma equation amatenga malo ochulukirapo ndipo ndi otalika kwambiri kotero sindikutsimikiza kuti amathandiza kwambiri.
Zikomo kwambiri.
Pano tikugwiritsa ntchito ndi ntchito tikupeza mtunda wamtundu umodzi..pamene tikugwiritsa ntchito funso lomwe likubwera mtunda wina
Sindingathe kuwerengera mtunda pakati pa mayiko awiri
Zambiri ``
Izi ndimagwira ntchito zabwino za cosinus. Sindikudziwa masamu, koma zikomo!
Ntchito Yabwino… 🙂 (y)
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;
zikomo…
sakugwira ntchito ngati
“KUMENE kutali”
kugwira ntchito ngati
“ALI kutali”
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.
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 '";
Zikomo Kupendra!
zikomo sir mwakuchita bwino.. koma ndili ndi funso limodzi ngati ndikufuna kutulutsa popanda decimal point ndiye nditani..?
Ndithokozeretu.
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
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 -
Zikomo kwambiri chifukwa chogawana.