您的位置:首页 > 移动开发 > Android开发

零起点”--百度地图手机SDK如何创建一张地图

2012-05-11 18:11 218 查看
摘要:完全零基础入门篇~~本文是安卓SDK的入门篇,从头开始教大家如何创建一张安卓手机版的百度地图。-----------------------------------------------------------------------------一、环境的安装需要安装eclipse、android ADT等环境。详见:【百度地图-安卓SDK】从头开始写android程序http://www.cnblogs.com/milkmap/archive/2011/11/25/2263475.html 二、新建一个helloworld程序1、File->New->Android Project

2、输入项目名称->Next

3、选择android版本->next百度地图安卓SDK支持1.5以上的安卓版本。由于我的手机是2.2的,所以我勾选了android 2.2的选项。

4、输入oackage name->finish

5、右键点击工程->Run as->android application我是连接真机运行的,当然用户也可以使用虚拟机。不过使用虚拟机不能开启定位功能哦。

6、运行成功!

三、创建一张百度地图1、注册key:http://dev.baidu.com/wiki/static/imap/key/2、下载开发包:http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E7%9B%B8%E5%85%B3%E4%B8%8B%E8%BD%BD3、新建libs文件夹右键点击项目->new->folder

输入名称->finish

将开发包解压缩,会发现有两个文件。把baidumapapi.jar拷贝到libs根目录下;把libBMapApiEngine.so拷贝到libs\armeabi目录下。(armeabi目录的新建方式和libs类似)

右键单击项目->properties

Java Build Path->Libraries->Add JARs

选择刚才引入的jar文件->OK

4、找到androidManifest.xml文件,增加使用权限和版本支持的代码。androidManifest.xml全部源文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.baidu.milkmap"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MilkmapActivity"
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-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

<!-- android 版本支持 -->
<supports-screens android:largeScreens="true"
android:normalScreens="true" android:smallScreens="true"
android:resizeable="true" android:anyDensity="true"/>
<uses-sdk android:minSdkVersion="3"></uses-sdk>

</manifest>
5、添加地图控件项目->res->layout->main.xml

这是布局的xml文件,在这里增加地图控件的代码。main.xml文件全部源代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<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>
6、编写地图程序项目->src->milkmapActivity.java

这里需要import一些文件,然后让自己的mapactivity继承百度提供的MapActivity。继承的对象里面,要申明变量,再写方法。(注意,类名和文件名保持一致!比如,我的文件名是MilkmapActivity.java,那么我的地图类名就是MilkmapActivity)更换自己的key。引入管理API的一些方法。MilkmapActivity.java的全部源代码:
package com.baidu.milkmap;
import android.app.Activity;
import android.os.Bundle;

/** 引入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.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;

/** 继承MapActivity类 **/
public class MilkmapActivity extends MapActivity {

/** 申明变量 **/
BMapManager mBMapMan = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

/** 创建地图 **/
mBMapMan = new BMapManager(getApplication());
mBMapMan.init("1713A92A7A0C854D1B8717670EF8B6CA75696567", 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级别

      //mMapView.setSatellite(true); //卫星图
      //mMapView.setTraffic(true); //交通流量

}

@Override
protected boolean isRouteDisplayed() {
return false;
}

/** 引入方法管理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();
}
}
7、运行,点击绿色的运行按钮就行。

OK啦,出来地图了~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 百度地图