• Android百度地图开发(一)环境搭建


    1.百度地图官方API文档下载

    版本  使用说明 下载
    Android SDK
    通用资源下载

    《离线地图》提供新版离线地图(百度矢量地图)与旧版离线地图(百度栅格地图)下载。

    备注:

    • 自Android SDKv2.0.0版本开始,离线地图功能使用百度矢量地图。请下载新版离线地图,即登陆网站直接选择手机品牌,型号,城市即可下载。
    • Android SDKv1.3.5版本及以前版本,离线地图功能使用百度栅格地图,请下载旧版离线地图。旧版下载入口与方法详见:http://www.cnblogs.com/milkmap/archive/2012/05/21/2511928.html
    离线地图
    Android SDKv2.2.0
    (矢量地图版)

    1. 若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。

    2. 该版本SDK提供矢量版地图。

    3. Lib库和示例代码下载包中均含有readme.txt,可阅读参考,有助您的开发。

    4. 若使用离线地图,请下载矢量版离线地图。注意:请参阅开发指南_离线地图说明,导入至BaiduMapSdk文件夹。

    5. 注意:自v2.1.3版本起,SDK采用了全新的Key验证体系,如果您选择使用v2.1.3及以后的版本,需申请全新的Key。(点击查看申请流程

    Android SDKv2.2.0 lib库

    Android SDKv2.2.0 类参考

    Android SDKv2.2.0 示例代码

     全部下载  

    Android SDKv1.3.5
    (栅格地图版)

    若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。

    该版本提供栅格版底图。

     Android SDKv1.3.5 lib库

    Android SDKv1.3.5 类参考

    Android SDKv1.3.5 示例代码

    Android SDKv1.3.5开发指南

     全部下载

    2.申请密钥key

    http://developer.baidu.com/map/android-mobile-apply-key.htm

    3.建立项目

    4.导入jar包

    将实例中的libs文件夹拷贝到项目中,然后选中baidumapapi.jar,右键--〉build path-->add to build path

    5.在activity_main.xml中添加一个view用来显示地图

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <!-- 添加显示地图的控件 -->
    
        <com.baidu.mapapi.MapView
            android:id="@+id/bmapView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true" />
    
    </LinearLayout>

    6.编写MainActivity.java对功能进行实现

    package com.arlen.baidu_hello;
    
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.Toast;
    
    import com.baidu.mapapi.BMapManager;
    import com.baidu.mapapi.GeoPoint;
    import com.baidu.mapapi.MKGeneralListener;
    import com.baidu.mapapi.MapActivity;
    import com.baidu.mapapi.MapController;
    import com.baidu.mapapi.MapView;
    
    public class MainActivity extends MapActivity {
    
        // 添加百度地图的相关控件
        private MapView mapView;
        private BMapManager bMapManager; // 加载地图的引擎
        // 百度地图的key
        private String keyString = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";
        // 在百度地图上添加一些空间,比如放大或者缩小
        private MapController mapComtroller;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mapView = (MapView) findViewById(R.id.bmapView);
            bMapManager = new BMapManager(MainActivity.this);
    
            // 必须要加载key
            bMapManager.init(keyString, new MKGeneralListener() {
                @Override
                public void onGetPermissionState(int arg0) {
                    // TODO Auto-generated method stub
                    if (arg0 == 300) {
                        Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1)
                                .show();
                    }
                }
    
                @Override
                public void onGetNetworkState(int arg0) {
                    // TODO Auto-generated method stub
    
                }
            });
    
            this.initMapActivity(bMapManager);
            mapView.setBuiltInZoomControls(true); // 表示可以设置缩放功能
            mapComtroller = mapView.getController();
            // 需要定义一个经纬度
            GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1E6),
                    (int) (116.404 * 1E6));
            // 设置一个中心点
            mapComtroller.setCenter(geoPoint);
            // 设置缩放级别
            mapComtroller.setZoom(12);
    
        }
    
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
    
            if (bMapManager != null) {
                bMapManager.destroy();
                bMapManager = null;
            }
        }
    
        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
    
            if (bMapManager != null) {
                bMapManager.start();
            }
        }
    
        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            if (bMapManager != null) {
                bMapManager.stop();
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        protected boolean isRouteDisplayed() {
            // TODO Auto-generated method stub
            return false;
        }
    
    }

    7.修改AndroidManifest.xml文件,指定用户权限及对不同屏幕的支持

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.arlen.baidu_hello"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="18" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.arlen.baidu_hello.MainActivity"
                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>
        <uses-permission android:name="android.permission.CALL_PHONE" >
        </uses-permission>
    
        <supports-screens
            android:anyDensity="true"
            android:largeScreens="true"
            android:normalScreens="false"
            android:resizeable="true"
            android:smallScreens="true" />
    
    </manifest>

    8.至此,所有的工作基本完成,下面是运行效果图:

    模拟器:

    真机测试:

  • 相关阅读:
    Python 爬虫入门(一)
    Dubbo、Zookeeper集群搭建及Rose使用心得(二)
    Dubbo、Zookeeper集群搭建及Rose使用心得(一)
    JAVA 加密算法初探DES&AES
    Android 蓝牙模块基础操作
    IntelliJ IDEA 使用随笔
    Maven+SSM框架实现简单的增删改查
    记录一次bug解决过程:数据迁移
    SSM框架+Plupload实现断点续传(Spring+SpringMVC+MyBatis+Plupload)
    JAVA开发环境
  • 原文地址:https://www.cnblogs.com/zhangtingkuo/p/3358266.html
Copyright © 2020-2023  润新知