Android maps應用

     對於經常出外的人來講來到一個陌生的地方對於地點的不熟悉時常迷路那麼就須要藉助於一些地圖軟件來對本身當前的位置進行定位或者查看周邊的設施和一些交通 信息,那麼當前對於位置的服務一般有二種模式,其一是基於手機原有的GPS導航設備一般安裝第三方軟件進行位置的導航,對於這種而言的好處是基於衛星導航 相對於第二種而言不用再次消耗手機的流量二者可能相對來講導航的偏差相對而言會小不少,第二種是基於基站的定位,經過像谷歌與百度都有提供API開發者只 要經過相應的公司提供的API進行開發就能夠,此文采用的是谷歌的MAPS進行相應的開發。html

Android 地圖 API 密鑰

在進行MD5的查詢前必須知道debug.keystore的位置。android

步驟:api

打開eclipse 選擇 Windowsg下的Preferences選項,單擊android選項左邊的前頭打開選擇Bulid下面的地址debug.keystore地址app

clip_image001

而後打開一個DOS窗口輸入keytool -list -keystore 「d:\android\.android\debug.keystore」 -storepass android -keypass androideclipse

可是有時候可能出現下面的錯誤ide

錯誤一:佈局

clip_image003

解決方案:對系統環境中的PATH設置成你jdk安裝的目錄下的bin目錄,用戶調用keytool的功能在jdk中包含因此要對path進行設置讓用戶進行調用網站

錯誤二:有時候用戶使用eclipse的密鑰文件過時或者丟失會出現下圖的錯誤ui

clip_image004解決方案:google

若是是過時的話那麼你先查找到密鑰的位置進行刪除,刪除完成後在eclipse中左擊項目在彈出的菜單中選擇Android toolsg下的Export Android Application選項用戶會自動建立一個debug.keypass的文件,若是是未查找到密鑰的話就不用刪除直接跳到第二步

密碼三:

經過上述的操做可能生成的是一個20位的密鑰用戶進行申請的時候出現下圖的錯誤。

clip_image005

解決方案:若是出現這種錯誤的話那麼用戶只要在keytool -list -keystore 「d:\android\.android\debug.keystore」 -storepass android -keypass android基礎上在後面加上一個-v那麼就能夠解決而後複製裏面的MD5.

那麼經過上述用戶已經正確的獲得的MD5那麼用戶打開http://code.google.com/intl/zh-CN/android/maps-api-signup.html這個網站在下列的文本中輸入獲取到的MD5點擊獲取按鈕

clip_image006

出現下圖表示已經成功申請的密鑰

clip_image008


項目建立:

1、那麼用戶在開發地圖軟件前須要先建立一個項目

clip_image009

在Bulid Target選擇google APis

而後在AndroidManifest.xml添加以下的權限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.INTERNET" />

在application列中添加<uses-library android:name="com.google.android.maps" />

最後以下

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.ditu"

android:versionCode="1"

android:versionName="1.0">

<uses-sdk android:minSdkVersion="6" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.INTERNET" />

<application android:icon="@drawable/icon" android:label="@string/app_name">

<uses-library android:name="com.google.android.maps" />

<activity android:name=".DituActivity"

android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

2、在用戶的main.xml進行界面的編輯把申請成功的頁面下的這些代碼複製進main佈局文件中

clip_image010

最終main.xml代碼以下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<com.google.android.maps.MapView

android:id="@+id/map"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:enabled="true"

android:clickable="true"

android:apiKey="0jBkhv-X0NiZdNyTIVdmTHAkMPv**i8ydjI1*rg"

/>

</LinearLayout>

3、在源文件下輸入如下的代碼

package com.ditu;

//下列是用戶須要導入的包

import com.google.android.maps.MapActivity;

import com.google.android.maps.MapController;

import com.google.android.maps.MapView;

import android.os.Bundle;

//用戶須要讓本身的類繼承MapActivity

public class DituActivity extends MapActivity {

private MapView mapView;

private MapController mapController;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mapView = (MapView) findViewById(R.id.map);

mapView.setBuiltInZoomControls(true);

}

@Override

protected boolean isRouteDisplayed() {

// TODO Auto-generated method stub

return false;

}

}

相關文章
相關標籤/搜索