Android开发怎么利用Google 地图

 我来答
huanglenzhi
2015-05-09 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517181
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  自google 06年进入中国,在地图、移动领域的发展速度基本上都是每年几倍的增长。在最新的Android平台开发相关应用程序,如果能深入了解google map 将会对我们Android开发提供很大的帮助.以下是我总结的在Android开发中对google map的理解。
  1. 首先先要获取你的debug keystore位置:
  打开Eclipse--->Windows---> preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\sdhbk\.android\debug.keystore
  2.
D:\android-sdk-windows-1.5_r1\tools>keytool -list -alias androiddebugkey -keysto
re "C:\Documents and Settings\sdhbk\.android\debug.keystore" -storepass android
-keypass android
androiddebugkey, 2009-7-25, PrivateKeyEntry,
认证指纹 (MD5): DA:D5:6E:C2:80:D1:0F:0D:F8:2A:58:6A:74:7C:CE:2D
  3.
  打开
  填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
     感谢您注册 Android 地图 API 密钥!
  您的密钥是:
  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  4.    使用得到的apiKey:
  在layout中加入MapView
       <com.google.android.maps.MapView
           android:id="@+id/mapview"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g" />
  或者
  <view android:id="@+id/mv"
  class="com.google.android.maps.MapView"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_weight="1"
  android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"
  />
  5.Android在sdk1.5的预装的add-on中提供了一个Map扩展库com.google.android.maps,利用它你就可以给你的android应用程序增加上强大的地图功能了。这个库的位置在Your-SDK_DIR\add-ons\google_apis-3\libs.
一定要在manifest.xml中设置全相应的权限,比如:
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
要在manifest.xml中加上要用的maps库:
  <manifest xmlns:android=""
package="com.example.package.name">
...
<application android:name="MyApplication" >
  <uses-library android:name="com.google.android.maps" />
  ...
</application>
...
</manifest>
  需要说明的是这个库不是标准的android sdk的内容,你也可以自己从这里这里下载并放到你的sdk里面。
  Maps库分析
  Maps库提供了十几个类,具体可以参考这里, 包括Mapview,MapController,MapActivity等。
  Mapview是用来显示地图的view, 它也是派生自android.view.ViewGroup。
  地图可以以不同的形式来显示出来,如街景模式,卫星模式等,具体方法可以参考:
  setSatellite(boolean), setTraffic(boolean), and setStreetView(boolean)
  MapView只能被MapActivity来创建,这是因为mapview需要通过后台的线程来连接网络或者文件系统,而这些线程要由mapActivity来管理。
  需要特别说明的一点是,android 1.5中,map的zoom采用了built-in机制,可以通过setBuiltInZoomControls(boolean)来设置是否在地图上显示zoom控件。
  MapActivity是一个抽象类,任何想要显示MapView的activity都需要派生自MapActivity。并且在其派生类的onCreate()中,都要创建一个MapView实例,可以通过MapView constructor (then add it to a layout View with ViewGroup.addView(View)) 或者通过layout XML来创建。
  实例分析
  最后,按照惯例,还是用一个小程序来演示一下android中地图功能的开发。主要功能是实现了地图的缩放,添加了菜单,从而可以手动选择地图的显示模式等。
  Step 1: 新建一个android project, 注意这里要选择的build target为"Google APIs"
  Step 2: 修改menifest文件:
  < xml version="1.0" encoding="utf-8" >
<manifest xmlns:android=""
   package="com.map.prac"
   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=".MapViewPrac2"
         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="3" />
</manifest>
  Step 3: 修改layout文件,main.xml
  < xml version="1.0" encoding="utf-8" >
<LinearLayout xmlns:android=""
  android:id="@+id/main"
  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="                  "
    />
</LinearLayout>
这里需要将api key中的      改成你自己申请到的api key.
  Step 4: 修改代码:
  package com.map.prac;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
public class MapViewPrac2 extends MapActivity {
  private final String TAG = "MapPrac";
  private MapView mapView = null;
  private MapController mc;
  //Menu items
  final private int menuMode = Menu.FIRST;
  final private int menuExit = Menu.FIRST+1;
  final private int menuCommandList = Menu.FIRST + 2;
  private int chooseItem = 0;
  /** 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);
    mc = mapView.getController();
    mapView.setTraffic(true); //
    mapView.setSatellite(false);
    mapView.setStreetView(true);
    //GeoPoint gp = new GeoPoint((int)(39.269259 * 1000000), (int)(115.255762 * 1000000));//yixian
    GeoPoint gp = new GeoPoint((int)(39.95 * 1000000), (int)(116.37 * 1000000));//beijing
    //mc.animateTo(gp);
    //mc.setZoom(12);
    mc.setCenter(gp);
    //to display zoom control in MapView
    mapView.setBuiltInZoomControls(true);
  }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    Log.i(TAG,"enter onKeyDown");
    return super.onKeyDown(keyCode, event);
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, menuMode, 0, "Map Mode");
    menu.add(0, menuCommandList, 1, "Command List");
    menu.add(0, menuExit, 2, "Exit");
    return super.onCreateOptionsMenu(menu);
  }
  @Override
  public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
    switch(item.getItemId())
    {
    case menuMode:
      Dialog dMode = new AlertDialog.Builder(this)
      //.setIcon(R.drawable.alert_dialog_icon)
      .setTitle(R.string.alert_dialog_single_choice)
      .setSingleChoiceItems(R.array.select_dialog_items2, chooseItem, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          Log.i(TAG, "choose button is "+ whichButton);
          chooseItem = whichButton;
          /* User clicked on a radio button do some stuff */
        }
      })
      .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          /* User clicked Yes so do some stuff */
          Log.i(TAG,"item = "+chooseItem);
          switch(chooseItem)
          {
          case 0:
            mapView.setSatellite(false);
            break;
          case 1:
            mapView.setSatellite(true);
            break;
          case 2:
            mapView.setTraffic(true);
            break;
          case 3:
            mapView.setStreetView(true);
            break;
          default:
            break;
          }
        }
      })
      .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          /* User clicked No so do some stuff */
        }
      })
      .create();
      dMode.show();
      break;
    case menuCommandList:
      //create the dialog
      Dialog d = new AlertDialog.Builder(this)
      .setTitle(R.string.select_dialog)
      .setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          /* User clicked so do some stuff */
          String[] items = getResources().getStringArray(R.array.select_dialog_items);
          /*new AlertDialog.Builder(this)
              .setMessage("You selected: " + which + " , " + items[which])
              .show();*/
          Log.i(TAG,"you choose is: " + items[which]);
        }
      })
      .create();
      //show the dialog
      d.show();
      break;
    case menuExit:
      finish();
      break;
    default:
        break;
    }
    return super.onMenuItemSelected(featureId, item);
  }
  @Override
  protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
  }
}
关于google map的用法还有待各位Android开发人员在实际开发中的总结!
匿名用户
2015-05-08
展开全部
利用不了。。。已经退出了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式