AndroidGoogleMapAPI使用的八個步驟_第1頁
AndroidGoogleMapAPI使用的八個步驟_第2頁
AndroidGoogleMapAPI使用的八個步驟_第3頁
AndroidGoogleMapAPI使用的八個步驟_第4頁
AndroidGoogleMapAPI使用的八個步驟_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論