版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【IT168技術(shù)】當(dāng)前,Android手機(jī)應(yīng)用的數(shù)量日益增多,其中很多應(yīng)用已成為人們生活中不行缺少的助手。在眾多的Android應(yīng)用中,其中LBS(基于地理位置的的應(yīng)用)深受人們的寵愛,主要緣由是人們只需要使用手機(jī),就能隨時查看LBSLBSAndroid開發(fā)有初步生疏的開發(fā)者。MapviewGoogleMapAPI,API得用戶當(dāng)前所在的位置。其次局部則包括如何在地圖上,用第三方的組件庫,實現(xiàn)氣球式顯示假設(shè)干指定位置的功能。1創(chuàng)立的Android工程首先翻開eclipse建立一個Android工程,其中相關(guān)參數(shù)設(shè)置如下:Projectname:MallFinderBuildTarget:GoogleAPIsPlatform–2.1APILevel7ApplicationName:MallFinderPackageName:com.shawnbe.mallfinderCreateActivity:MallFinderActivityMinimumSDK:7如以下圖所示:2GoogleMapAPIkeygooglemapapikey,因此需key,可以到如下地址進(jìn)展注冊:“://code.google/android/add-ons/google-apis/mapkey.html“://code.google/android/add-ons/google-apis/mapkey.html,其中md5密紋才能完成注冊,因此我們先學(xué)習(xí)如何生成MD5eclipse33安裝keytooleclipseHelp在安裝地址中輸入如下地址:“:///update“:///update,如以下圖eclipse4產(chǎn)生開發(fā)期間的MD5eclipsekeytool留意其位置回因操作系統(tǒng)不同而有不同WindowsVista:C:\Users\\.android\debug.keystoreWindowsXP:C:\DocumentsandSettings\\.android\debug.keystoreOSX和Linux:~/.android/debug.keystorekeystore,依據(jù)提示,選擇當(dāng)前系統(tǒng)所在的debug.keystore其中,輸入密碼默認(rèn)為android即可,并點Load加載。之后會在eclipse中消滅的keytool的視圖,如以下圖所示:androiddebugkey,md5“://code.google/android/maps-api-signup.html“://code.google/android/maps-api-signup.html,承受其協(xié)議,APIKeygooglemapapikey,KEY,在接下來的步驟中要使用5增加MapViewMapViewmain.xml如下代碼:<?xmlversion=<?xmlversion=“1.0“encoding=“utf-8“?><LinearLayoutxmlns:android=“://schemas.android/apk/res/androi““://schemas.android/apk/res/android“android:layout_width=“fill_parent“android:layout_height=“fill_parent“android:orientation=“vertical“><FrameLayoutandroid:layout_width=“fill_parent“android:layout_height=“fill_parent“><com.google.android.maps.MapViewandroid:id=“@+id/mapView“android:layout_width=“fill_parent“android:layout_height=“fill_parent“android:clickable=“true“android:apiKey=GOOGLEMAPAPIKEY“/></FrameLayout></LinearLayout>googlemapapikey。6設(shè)置相關(guān)的權(quán)限Map手機(jī)GPS獲得相AndroidManifest的設(shè)置。留意添加在標(biāo)簽后,但要在標(biāo)簽前。<uses-featureandroid:name=<uses-featureandroid:name=“android.hardware.location.gps“/><uses-permissionandroid:name=“android.permission.ACCESS_FINE_LOCATION“/><uses-permissionandroid:name=“android.permission.INTERNET“/>位置查找的權(quán)限(FINE_LOCATION)。在本文中,其實沒用到FINE_LOCATION,但只是告知開發(fā)者可以調(diào)整使用不同的地理位置供給者(providers)以供給準(zhǔn)確的位置效勞,假設(shè)要有比較準(zhǔn)確的地理位置效勞,那么可以設(shè)置android.permisson.ACCESS_FINE_LOCATION效勞。要留意的是在開發(fā)中,不要只想調(diào)用一般的位置效勞,可以使用一般的android.permission.ACCESS_COARSE_LOCATIONManifest件,所以參加如下代碼:<uses-library<uses-libraryandroid:required=“true“android:name=“com.google.android.maps“/>置為android:theme=“@android:style/Theme.NoTitleBar“Manifest<?xmlversion=“1.0“encoding=“utf-8“?><manifestxmlns:android=“://schemas.android/apk/res/android““://schemas.android/apk/res/android“package=“com.shawnbe.mallfinder“android:versionCode=“1“android:versionName=“1.0“><uses-sdkandroid:minSdkVersion=“7“/><applicationandroid:icon=“@drawable/ic_launcher“android:label=“@string/app_name“android:theme=“@android:style/Theme.NoTitleBar“><activityandroid:label=“@string/app_name“android:name=“.MallFinderActivity“><intent-filter><actionandroid:name=“ent.action.MAIN“/><categoryandroid:name=“ent.category.LAUNCHER“/></intent-filter></activity><uses-libraryandroid:required=“true“android:name=“com.google.android.maps“/></application><uses-featureandroid:name=“android.hardware.location.gps“/><uses-permissionandroid:name=“android.permission.ACCESS_FINE_LOCATION“/><uses-permissionandroid:name=“android.permission.INTERNET“/></manifest>7設(shè)置MapViewMapActivitypublicclassMallFinderActivityextendsMapActivity{由于繼承了MapActivity類,因此必需實現(xiàn)isRouteDisplayed方法,這個false@OverrideprotectedbooleanisRouteDisplayed{//TODOAuto-generatedmethodstubreturnfalse;}首先是聲明控件privateMapControllermapController;privateMapViewmapView;oncreatemapView=(MapView)findViewById(R.id.mapView);mapView=(MapView)findViewById(R.id.mapView);mapView.setBuiltInZoomControls(true);mapView.setSatellite(false);mapView.setStreetView(true);mapController=mapView.getController;mapController.setZoom(13);在上面的代碼中,設(shè)置了地圖顯示的方式為街道模式(通過設(shè)置mapview的setStreetViewtrue),并且通過mapView.setBuiltInZoomControls(true);13。行后效果如以下圖:8獲得當(dāng)前所在位置們連續(xù)聲明兩個參數(shù)變量如下:privateLocationManagerlocationManager;privateGeoPointcurrentLocation;分別聲明白LocationManagerGeoPoint經(jīng)緯度的計算)。再增加如下幾個方法:publicpublicvoidgetLastLocation{Stringprovider=getBestProvider;currentLocation=locationManager.getLastKnownLocation(provider);if(currentLocation!=null){setCurrentLocation(currentLocation);}else{Toast.makeText(this,“Locationnotyetacquired“,Toast.LENGTH_LONG).show;}}publicvoidanimateToCurrentLocation{if(currentPoint!=null){mapController.animateTo(currentPoint);}}publicStringgetBestProvider{locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);Criteriacriteria=newCriteria;criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);criteria.setAccuracy(Criteria.NO_REQUIREMENT);StringbestProvider=locationManager.getBestProvider(criteria,true);returnbestProvider;}publicvoidsetCurrentLocation(Locationlocation){intcurrLatitude=(int)(location.getLatitude*1E6);intcurrLongitude=(int)(location.getLongitude*1E6);currentLocation=newGeoPoint(currLatitude,currLongitude);currentLocation=newLocation(““);currentLocation.setLatitude(currentPoint.getLatitudeE6/1e6);currentLocation.setLongitude(currentPoint.getLongitudeE6/1e6);}并且在oncreate方法中,添加對以上方法的調(diào)用代碼如下:publicpublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mapView=(MapView)findViewById(R.id.mapView);mapView.setBuiltInZoomControls(true);mapView.setSatellite(false);mapView.setStreetView(true);mapController=mapView.getController;mapController=mapView.getController;mapController.setZoom(13);getLastLocation;animateToCurrentLocation;}locationManager定對地理位置供給者的查詢條件,在實際應(yīng)用中,開發(fā)者可以通過設(shè)置criteria.setAccuracycriteria.setPowerRequirement方法進(jìn)展查找。providerACCURACY_FINE,如下代碼所示:criteria.setAccuracy(Criteria.ACCURACY_FINE);providerGPSprovider進(jìn)展調(diào)試那樣將看到很好的效果。接下來代碼中使用currentLocation=locationManager.getLastKnownLocation(provider);setCurrentLocationprodiver獲得的地理位置信息LocationGeoPoint此外,由于我們的位置是會發(fā)生變化的,所以需要使用locationlocationListenerpublicclassMallFinderActivityextendsMapActivityimplementsLocationListener{同時我們需要實現(xiàn)LocationListener類的以下幾個方法:@Override@OverridepublicvoidonLocationChanged(Locationarg0){//TODOAuto-generatedmethodstub}@OverridepublicvoidonProviderDisabled(String
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考沖刺個人決心書
- 中秋晚會來賓致辭范文(10篇)
- 中學(xué)生競選班長演講稿
- 中班家訪小結(jié)
- 密度應(yīng)用課件教學(xué)課件
- 2025年高考語文復(fù)習(xí)知識清單第十章作文專題10議論文寫作課內(nèi)素材積累(學(xué)生版+解析)
- 渝長一標(biāo)段動火作業(yè)方案
- 超聲霧化課件教學(xué)課件
- 三年級數(shù)學(xué)計算題專項練習(xí)匯編及答案集錦
- 維修保證金協(xié)議書(2篇)
- 上海市2024-2025學(xué)年高一上學(xué)期期中數(shù)學(xué)試題(無答案)
- 山東省臨沂市莒南縣2024-2025學(xué)年九年級上學(xué)期11月期中道德與法治試題(含答案)
- 美國反無人機(jī)系統(tǒng)未來趨勢報告 THE U.S. COUNTER-UNMANNED AERIAL SYSTEMS MARKET REPORT 2024-2029
- 2024-2030年國內(nèi)不銹鋼行業(yè)市場發(fā)展分析及發(fā)展前景與投資機(jī)會研究報告
- 生氣王子課程設(shè)計
- 讓男方還房貸的協(xié)議書范文范本
- 2024-2030年全球家庭儲能市場運行剖析及發(fā)展現(xiàn)狀調(diào)研研究報告
- 2024招商銀行校園招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 經(jīng)濟(jì)師考試人力資源管理高級經(jīng)濟(jì)實務(wù)試卷及解答參考(2025年)
- 體育二年級上冊 安全地進(jìn)行游戲(教案)
- You Raise Me Up二部合唱簡譜
評論
0/150
提交評論