zoukankan      html  css  js  c++  java
  • 【“零起点”百度地图手机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啦,出来地图了~

  • 相关阅读:
    前端异常上报
    前端异常解析:Source Map
    前端操作剪切板不完全指北
    多系统之间模块相互引用的引发的深思
    浅谈vue原理(四)
    浅谈vue原理(三)
    浅谈vue原理(二)
    浅谈vue原理(一)
    vue中路由嵌套的作用
    常用的学习网站和小工具
  • 原文地址:https://www.cnblogs.com/milkmap/p/2496526.html
Copyright © 2011-2022 走看看