【“零起點”--百度地圖手機SDK】如何創建一張地圖


摘要:完全零基礎入門篇~~本文是安卓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%BD

3、新建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啦,出來地圖了~

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM