Google Maps 工程的小问题

关于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"/>

 

关于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"/>

 

猜你喜欢

转载自squall140.iteye.com/blog/1661535