新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于google地圖的Android系統導航應用設計

        基于google地圖的Android系統導航應用設計

        作者: 時間:2013-10-21 來源:網絡 收藏


        四、GPS 定位功能實現


        全球衛星定位系統(Global Positioning System,GPS)是一個中距離圓型軌道衛星導航系統,它可以為地球表面超98%的地區提供準確的定位、測速和高精度的時間標準服務,在各個領域都有廣泛的應用。

        Android 支持GPS 服務的API.該服務可以用來獲取當前設備的地理位置,應用程序通過該API 獲得地理位置,并可以定時請求更新當前設備的地理定位信息。該系統將用到GPS API 中包幾個重要的功能類:

        LocATIonManager,用于管理Android 用戶定位服務;LocationProvider,提供多種定位方式供開發者選擇;Criteria,是應用通過LocationProvider 中設置的屬性來選擇合適的定位提供者。

        獲取用戶當前位置的步驟如下:
        1、在AndroidManifeST.xml 中聲明相應的權限:
        android:name="“android.permission.ACCESS_COARSE_LOCATION”" permission>
        2、獲取LocationManager 對象:
        LocationManager locationManager =(LocationManager)getSystemSERvice (Context.LOCATION_SERVICE);
        3、設置Criteria 對象:
        Criteria criteria = newCriteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(false);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        4、設置Provider:
        String provider = locationManager.getBestProvider(criteria,true);
        Location location= locationManager.getLastKnownLocation(provider);

        五、導航功能實現

        在正式版本的Android SDK 中,移除了原有M5 版本里面的DrivingDirection package,所以無法透過程序來規劃導航線路。因此導航功能的實現我們是通過載入web 導航網頁的方式實現的。Android 提供了一個名為WebView的控件來專門瀏覽網頁。

        WebView控件是基于WebKit 瀏覽器網頁排版引擎的一個java接口,它能夠完美支持html、javascript、css.有時我們可以把整個UI 甚至數據處理都交給WebView,配合PHP 等服務器端程序,這樣的Android 應用開發更為簡單UI 更為豐富。因此本系統的導航功能的主要工作就集中在編寫 Map Api javascript 版本的導航網頁以及WebView與javascript 的數據交互中。

        1、WebView 的定義及設置:

        首先要在XML 布局文件中定義WebView控件;然后在程序中裝載這個控件,設置屬性;最后通過loadUrl 方法實現網頁的載入。

        WebView 常用的類有:WebSettings、WebViewClient、WebChromeClient.
        WebSettings 用來設置WebView的一些屬性狀態,如:
        // 設置可以訪問文件
        webSettings.setAllowFileAccess(true);
        // 設置支持縮放
        webSettings.setBuiltInZoomControls(true);

        WebViewClient 專門輔助WebView處理各種通知、請求等事件類,通過WebView 的setWebViewClient 方法來指定一個WebViewClient 對象,如下:
        webView.setWebViewClient(newWebViewClient()
        {
        public boolean shouldOverrideUrlLoading(WebViewview,String url){
        view.loadUrl(url);
        return true;
        }
        })

        WebChromeClient 類專門用來輔助WebView對話框、網站圖標、網站Title、加載進度等。使用方法如下:
        webView.setWebChromeClient(newWebChromeClient()
        {
        @Override
        // 該方法為處理javascript 中的alert 事件
        public boolean onJsAlert (WebView view,String url,Stringmessage,
        JsResult result){
        // TODO Auto- generated method stub
        return super.onJsAlert(view,url,message,result);
        });
        設置完WebView后主要工作就是Html 網頁的編寫。

        2、編寫Html 網頁實現線路規劃:

        線路規劃的前提是必須要指定起始地址以及出行方式,本系統用戶是通過在Activity 中輸入地址和選擇出行方式來向系統提交信息。WebView 必須從應用中獲取信息,然后發送給Html,供javascript 調用并實現導航。
        在android 應用端,定義一個類保存用戶輸入的起始地址的經緯度信息:

        // 在javascript 腳本中調用得到LatlngData 對象
        public LatlngData getLatlngData()
        { return latlngData;
        }
        /* 定義一個latlngData 類,保存經緯度信息,經緯度由Geocoder.getFromLocationNAME()方法按照用戶輸入地址解析而得到。*/


        關鍵詞: 智能手機 Google Maps

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 福鼎市| 拜泉县| 吉林省| 巴里| 山东| 紫金县| 时尚| 平潭县| 离岛区| 长岛县| 安康市| 望江县| 义马市| 百色市| 浦县| 东兰县| 澄迈县| 孝昌县| 蒙城县| 凌海市| 富锦市| 海兴县| 孝义市| 平罗县| 灵台县| 公安县| 东海县| 哈巴河县| 遂宁市| 广宁县| 汽车| 肇庆市| 玉龙| 常德市| 安多县| 正蓝旗| 高唐县| 罗甸县| 千阳县| 东乌| 闽清县|