2015-12-17 64 views
-2

我不確定如何開始這個,如果在特定英里內顯示來自數據庫的行?

基本上在我的mysql數據庫中我有一個名爲「出租車」的列表「公司,基地,英里」所以公司名稱是公司名稱,基地是他們的主要辦公室僅郵政編碼,英里是他們去挑選某人的距離?

理想的情況下要使用谷歌地圖,將與ID的文本框=「啓動」,所以需要提取值(他們的皮卡郵編),並將其與所有公司的基礎比較?並顯示哪些可以拿起?

忘了提我試圖做到這一點在PHP 很抱歉,如果這沒有意義。

謝謝:)

+0

您能否解釋一下?這個文本框在哪裏?您是否正在製作「打電話出租車」類網站,以便在任何人按下開始時提醒離該乘客最近的公司? –

+0

是的,我在打電話,一個出租車網址:), 所以此刻我有3個文本框它們開始(皮卡郵編),結束(郵編旅程結束)和距離(萬里旅途) 所以當訪問者提出的郵政編碼中,它autofils距離文本框與它有多少英里,它顯示了谷歌地圖上的路線, 什麼,我想發生時,他們提交(當autofils的距離和顯示的路線)出租車公司的名單,誰可以拿起,他們可以選擇最便宜/最好的審查等 我認爲它應該像這樣開始 $ sql =「SELECT * FROM taxi WHERE base =>? – StuckonPHP

+0

基本郵政編碼將與取件郵政編碼一起檢查,如果它在該出租車公司里程(例如,基地郵政編碼是:AA42AA和皮卡是AA11AA及其10英里,並且他們接受15英里內的工作,那麼該出租車公司將顯示爲?可能的出租車公司從 – StuckonPHP

回答

1
function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) { 
    var R = 6371; // Radius of the earth in km 
    var dLat = deg2rad(lat2-lat1); // deg2rad below 
    var dLon = deg2rad(lon2-lon1); 
    var a = 
    Math.sin(dLat/2) * Math.sin(dLat/2) + 
    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * 
    Math.sin(dLon/2) * Math.sin(dLon/2) 
    ; 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c; // Distance in km 
    return d; 
} 

function deg2rad(deg) { 
    return deg * (Math.PI/180) 
} 

我使用上述功能在我的代碼塊這是比較少相同的邏輯,你的。從google map api獲取郵政編碼/地址的latlong,並獲取貴公司基地的latlong,並找到最近的一個。您也可以使用下面的查詢。

SELECT *, 


3956 * 2 * ASIN(SQRT(POWER(SIN((@orig_lat - 
abs( 
dest.lat)) * pi()/180/2),2) + COS(@orig_lat * pi()/180) * COS( 
abs 
(dest.lat) * pi()/180) * POWER(SIN((@orig_lon – dest.lon) * pi()/180/2), 2))) 

as distanceFROM hotels desthaving distance < @distORDER BY distance limit 10; 
+0

感謝您的回答:),我希望它能夠提出所有可以接送的出租車(我將代碼的PHP的票價等),所以它帶來了與公司的票價成本,所以他們可以選擇最便宜的? – StuckonPHP

+0

無論您是通過任何API獲取還是將其存儲在數據庫中,您都將擁有Taxis的實時位置數據? – Gogul

+0

出租車信息,如基地郵政編碼等將存儲在數據庫中,所以可以通過PHP的選擇功能與JavaScript工作距離? – StuckonPHP

相關問題