关于android下开发google map需要注意的若干问题
1:申请google map api key,这个是必须的,网上看看就知道。
2:软件的版本,android sdk和google map包分别对应的android api版本必须一致。
3:构建项目时就选择好 build target 为 google apis,如果开始你是选择 android 2.2(或者android的其他版本,我这里用的是目前最新的版本),那么以后在项目中再去添加maps.jar,且修改build target,程序运行容易出错。
build target 为 google apis 时,构建的工程会自动为我们生成相关的配置项,这个和选择 android 2.2 是略有不一样的,
比如:default.properties 文件最后的一行是:target=Google Inc.:Google APIs:8
而 android 2.2 工程下的是:target=android-8
另外在 AndroidManifest.xml 也自动加上了:uses-permission 、uses-library 等节点。
4:示例代码(仅展示一下地图,本身就支持拖动):
主 Activity 类:
package valsun.com;
import android.os.Bundle;
import android.util.Log;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class LocationActivity extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("welcome", "created map activity.");
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
main.xml 文件:
<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_view" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:enabled="true"
android:clickable="true" android:apiKey="这里换成你自己的api key" />
</LinearLayout>
default.properties 文件:
target=Google Inc.:Google APIs:8
AndroidManifest.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="valsun.com" android:versionCode="1" android:versionName="1.0">
<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=".LocationActivity" 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>
<uses-sdk android:minSdkVersion="8" />
</manifest>
测试通过!
还有一点:如果把Android工程转换为Google Maps的话,需要手动加入工程目录下的classpath:
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>