基于google地圖的Android系統導航應用設計
class LatlngData
{ String startLatlng;
String endLatlng;
public LatlngData()
{
this.startLatlng=“”;
this.endLatlng =“”;
}
public String getStartLatlng()
{
return startLatlng;
}
public String getEndLatlng()
{
return endLatlng;
}
}
// 通過(guò)LatlngDataInterface () 方法將數據類(lèi)綁定給javascript,這樣javascript 就能夠獲// 得了用戶(hù)的數據了。
public class DataJavaScriptInterface{
public LatlngData LatlngDataInterface(){
latlngData = getLatlngData();
return latlngData;
}
在Html 網(wǎng)頁(yè)中編寫(xiě)以下代碼獲得數據,并通過(guò)格式轉換使數據能夠為線(xiàn)路規劃所接受,代碼如下:
var latlngData = window.demo.LatlngDataInterface();
// 獲取起點(diǎn)和終點(diǎn)位置的經(jīng)緯度信息為String 格式
startLatlng = latlngData.getStartLatlng();
endLatlng = latlngData.getEndLatlng();
// 把String 格式經(jīng)緯度轉換為Float 格式
startLat = parseFloat(startLatlng.substring(0,8));
startLng = parseFloat(startLatlng.substring(10,18));
endLat = parseFloat(endLatlng.substring(0,8));
endLng = parseFloat(endLatlng.substring(10,18));
通過(guò)DirectionsService 對象計算路線(xiàn)(使用各種交通方式)。
此對象與Google Maps API Directions Service 進(jìn)行通信,該服務(wù)將接收路線(xiàn)請求并傳回計算結果??梢宰孕刑幚磉@些路線(xiàn)結果,也可以使用DirectionsRenderer 對象渲染這些結果:
function calcRoute(){
start = beginLatlng;
end = endLatlng;
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request,function(response,status){
if(status == google.maps.DirectionsStatus.OK){
var warnings = document.getElementById(“warnings_panel”);
warnings.innerHTML = “” + response.routes [0].warnings + “”;
directionsDisplay.setDirections(response);
showSteps(response);
}
});
}
通過(guò)上述的操作我們基本上實(shí)現了線(xiàn)路規劃,在此基礎上我們能夠添加更多的功能,如語(yǔ)音導航、路況提示、周邊配套設施提示等,使用戶(hù)獲得更好的用戶(hù)體驗。最終效果如下圖所示:

圖3 最終效果圖
六、結束語(yǔ)
智能手機導航應用無(wú)疑將會(huì )有廣闊的市場(chǎng)前景,能夠為用戶(hù)提供更多有用信息的導航軟件將是未來(lái)該應用方向的必然趨勢,Google Maps 作為最早的網(wǎng)上電子地圖服務(wù),其強大的功能和開(kāi)放的API ,使得我們能夠在其基礎上二次開(kāi)發(fā)出很好的應用。具有很大的商用價(jià)值。該系統還存在網(wǎng)頁(yè)載入速度較慢、語(yǔ)音提示功能等問(wèn)題,還有待進(jìn)一步研究和開(kāi)發(fā)。
評論