百度地图应用开发(一)

最近对LBS比较感兴趣,在研究百度地图。先了解下百度地图的大概吧!

http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97

以上是百度地图在android平台上的开发指南。

基于百度地图的应用开发和google地图一样,需要一个Key,所以我们要申请一下,相对于google地图的Key来说,百度地图的Key的申请是很简单的。

申请Key的网址: http://dev.baidu.com/wiki/static/imap/key/  当然要求是你必须得注册百度。

在百度地图的应用开发中,在Manifest要添加如下权限:

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  2. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
  3. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  5. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  6. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
  7. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

    具体权限是什么大家可以查下文档,在这里就不多说了。另外还要加上android版本的支持,如下:

    1. <supports-screens android:largeScreens="true"
    2. android:normalScreens="true" android:smallScreens="true"
    3. android:resizeable="true" android:anyDensity="true"/>
    4. <uses-sdk android:minSdkVersion="3"></uses-sdk>

      当然还要导入支持百度地图开发的相关的包(指南上面有下载),以下是我的项目文件:

      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.baidu.mapapi.MapView android:id="@+id/bmapsView"
      android:layout_width
      ="fill_parent" android:layout_height="fill_parent"
      android:clickable
      ="true" />
      </LinearLayout>

      MainActivity.java

       1 package com.baidumap;
      2
      3 import com.baidu.mapapi.BMapManager;
      4 import com.baidu.mapapi.GeoPoint;
      5 import com.baidu.mapapi.MapActivity;
      6 import com.baidu.mapapi.MapController;
      7 import com.baidu.mapapi.MapView;
      8
      9 import android.app.Activity;
      10 import android.os.Bundle;
      11
      12 public class MainActivity extends MapActivity {
      13 private BMapManager mBMapMan;
      14 @Override
      15 public void onCreate(Bundle savedInstanceState) {
      16 super.onCreate(savedInstanceState);
      17 setContentView(R.layout.main);
      18 mBMapMan = new BMapManager(getApplication());
      19 mBMapMan.init("205114502786B06C4C95CEB0F55822F25E46AED2", null);
      20 super.initMapActivity(mBMapMan);
      21
      22 MapView mMapView = (MapView) findViewById(R.id.bmapsView);
      23 mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件
      24
      25 mMapView.setTraffic(true);
      26
      27 MapController mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
      28 GeoPoint point = new GeoPoint((int) (23.141238 * 1E6),
      29 (int) (113.342331 * 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
      30 mMapController.setCenter(point); //设置地图中心点
      31 mMapController.setZoom(12); //设置地图zoom级别
      32 }
      33
      34 @Override
      35 protected void onDestroy() {
      36 if (mBMapMan != null) {
      37 mBMapMan.destroy();
      38 mBMapMan = null;
      39 }
      40 super.onDestroy();
      41 }
      42 @Override
      43 protected void onPause() {
      44 if (mBMapMan != null) {
      45 mBMapMan.stop();
      46 }
      47 super.onPause();
      48 }
      49 @Override
      50 protected void onResume() {
      51 if (mBMapMan != null) {
      52 mBMapMan.start();
      53 }
      54 super.onResume();
      55 }
      56 @Override
      57 protected boolean isRouteDisplayed() {
      58 // TODO Auto-generated method stub
      59 return false;
      60 }
      61 }

        

      运行结果如下:

        

posted @ 2011-08-09 11:02  寒星晓月 专注移动互联网  阅读(46060)  评论(3编辑  收藏  举报