百度地图移动版API for android开发指南(一)

        在开发Android项目中需要用到百度地图,对它比较陌生,之前没有接触过,以下写的是我对百度地图的认识,也是在工作中学习到的一点心得。

        首先,给一些相关的资料,有了以下这些资料你就可以在Android平台上实现百度地图的功能啦。

        百度地图用于Android平台的下载资料

        百度地图用于Android开发指南

        百度地图用于Android类参考

        现在,以一个简单的例子为开篇。

        第一步:获取API Key

        用户在使用API之前需要获取百度地图移动版API Key,该Key与你的百度帐户相关联,需要有百度帐户,才能获得API Key。并且,该Key与你引用API的程序名称有关。具体流程请参照获取密钥

        第二步:把API添加到我的Android工程中

        将下载好的“API开发包”解压,这里以百度地图移动版API(Android v1.3.3)为例,解压后里面有三个文件,将baidumapapi.jar文件拷贝到工程根目录,这样做的好处是当你打包Android应用时,会一块将baidumapapi.jar打包进你的应用中;将libBMapApiEngine_v1_3_3.so文件拷贝到工程根目录下的libs\armeabi目录中,必须放在要求的目录中。添加JAR包,在需要使用百度地图移动版API的工程中右击,选择build path -> configure build path... -> Libraries中选择“Add JARs...”,选定baidumapapi.jar,确定后返回,这样就可以在你的程序中使用API了,最后一个文件是文本文件,百度手机地图sdk使用简要说明.txt。

       第三步:百度地图的“Hello,World”

        在AndroidManifest.xml文件中添加使用权限以及Android版本支持:如下:

    <uses-sdk android:minSdkVersion="3" />
    
    <!-- 使用权限 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
    <!-- 版本支持 -->
    <supports-screens android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:resizeable="true"
        android:anyDensity="true"/>


        让创建的地图Activity继承com.baidu.mapapi.MapActivity, 并import相关类

	import java.util.ArrayList;
	import java.util.List;
 
	import android.content.Context;
	import android.graphics.Canvas;
	import android.graphics.Paint;
	import android.graphics.Point;
	import android.graphics.drawable.Drawable;
	import android.location.Location;
	import android.os.Bundle;
	import android.util.Log;
	import android.view.View;
	import android.widget.Toast;
 
	import com.baidu.mapapi.BMapManager;
	import com.baidu.mapapi.GeoPoint;
	import com.baidu.mapapi.ItemizedOverlay;
	import com.baidu.mapapi.LocationListener;
	import com.baidu.mapapi.MKAddrInfo;
	import com.baidu.mapapi.MKDrivingRouteResult;
	import com.baidu.mapapi.MKGeneralListener;
	import com.baidu.mapapi.MKLocationManager;
	import com.baidu.mapapi.MKPlanNode;
	import com.baidu.mapapi.MKPoiResult;
	import com.baidu.mapapi.MKSearch;
	import com.baidu.mapapi.MKSearchListener;
	import com.baidu.mapapi.MKTransitRouteResult;
	import com.baidu.mapapi.MKWalkingRouteResult;
	import com.baidu.mapapi.MKSuggestionResult;
	import com.baidu.mapapi.MapActivity;
	import com.baidu.mapapi.MapController;
	import com.baidu.mapapi.MapView;
	import com.baidu.mapapi.MyLocationOverlay;
	import com.baidu.mapapi.Overlay;
	import com.baidu.mapapi.OverlayItem;
	import com.baidu.mapapi.PoiOverlay;
	import com.baidu.mapapi.RouteOverlay;
	import com.baidu.mapapi.TransitOverlay;
 
	public class MyMapActivity extends MapActivity 
	{
		@Override
		public void onCreate(Bundle savedInstanceState) 
		{
			super.onCreate(savedInstanceState);
			setContentView(R.layout.main);
		}
 
		@Override
		protected boolean isRouteDisplayed() 
		{
			return false;
		}
	}


        在布局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">
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="@string/hello" />
	<com.baidu.mapapi.MapView android:id="@+id/bmapsView"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
		android:clickable="true" />
</LinearLayout>


        初始化地图Activity/使用key
        在地图Activity中定义变量: BMapManager mBMapMan = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:

	mBMapMan = new BMapManager(getApplication());
	mBMapMan.init("我的Key", null);
	super.initMapActivity(mBMapMan);
 
	MapView mMapView = (MapView) findViewById(R.id.bmapsView);
	mMapView.setBuiltInZoomControls(true);  //设置启用内置的缩放控件
 
	MapController mMapController = mMapView.getController();  // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
	GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
        	(int) (116.404 * 1E6));  //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
	mMapController.setCenter(point);  //设置地图中心点
	mMapController.setZoom(12);    //设置地图zoom级别

        Override以下方法,管理API:

@Override
protected void onDestroy() 
{
    if (mBMapMan != null) 
    {
        mBMapMan.destroy();
        mBMapMan = null;
    }
    super.onDestroy();
}
@Override
protected void onPause() 
{
    if (mBMapMan != null) 
    {
        mBMapMan.stop();
    }
    super.onPause();
}
@Override
protected void onResume() 
{
    if (mBMapMan != null) 
    {
        mBMapMan.start();
    }
    super.onResume();
}

        完成上述步骤后,运行程序,结果如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值