2011年6月26日星期日

  Android Location and Maps

//未写完 1 Maps API Key申请

要使用Google提供的map服务,必须先申请一个Maps API Key。步骤如下:

Step1:申请MD5
(1)打开eclipse,然后选择Window-->Preferences-->Android-->Build,这时候我们可以查找debug.keystore的路径,如下图:

image

(2)将debug.keystore拷贝到keytool所在目录,如果安装JDK是按默认路径安装,keytool是在C:\Program Files\Java\jdk1.6.0_25\bin下。

(3)运行cmd,进入到keytool的目录下,输入 keytool -list -keystore debug.keystore,提示输入密码时直接回车,得到MD5。

Step2:利用MD5申请API Key。

登陆http://code.google.com/intl/zh-CN/android/maps-api-signup.html,输入获取的MD5,Generate API Key即可(需要gmail邮箱)。

注:申请API Key的官网文档见http://code.google.com/intl/zh-CN/android/add-ons/google-apis/mapkey.html

2 Maps开发

Map开发最好的学习资料:

(1)http://developer.android.com/guide/tutorials/views/hello-mapview.html

(2)Demo:<sdk>/add-ons/google_apis-<api-level>/samples/MapsDemo

(3)Package com.google.android.maps (<sdk>/add-ons/google_

apis-<api-level>/docs/reference/index.html) 2.1 建立工程

Android maps开发建立工程时需要选择Google API,如果没有相应版本的Google API,打开Windows>Android SDK and AVD Manager>Available package里面下载相应的add-ons,如下图:

image

下载完成后,在android-sdk-windows\add-ons\addon_google_apis_google_inc_10\docs\reference\index.html里面查阅map相关的API,也可以在官网(http://code.google.com/intl/zh-CN/android/add-ons/google-apis/reference/com/google/android/maps/package-summary.html)上查询。

2.2 编写mapView.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="Your Maps API Key"
    />

</RelativeLayout>
2.3 添加mapActivity

public class MappingOverlayActivity extends MapActivity {  
private MapView mapView;

@Override
public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        mapView = (MapView) findViewById(R.id.mapview); 

@Override
protected boolean isLocationDisplayed() {  
        return false;  
}

}

2.4 AndroidManifest.xml

(1)application element里面添加uses-library
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.package.name">
...
<application android:name="MyApplication" >
   <uses-library android:name="com.google.android.maps" />
...
</application>

(2)添加网络权限
<uses-permission android:name="android.permission.INTERNET" />

3 Location 4 Search 5 问题汇总及解决办法 5.1 geoCoder.getFromLocationName returns null 5.2 onLocationChanged never triggered 5.3 getLastKnownLocation Failed 5.4 addProximityAlert doesn’t fired 5.5 debug.keystor过期 6 Reference

Google Projects for Android
http://developer.android.com/guide/topics/location/index.html (android-sdk-windows\docs\guide\index.html>Dev Guide>Location and Maps)

没有评论:

发表评论