效果:

API Key的申请地址:http://lbsyun.baidu.com/apiconsole/key

申请注意事项:

安全码:以下界面的SHA1  fingerprint值+;+包名

比如:72dem98dme;com.map

、、、、、、、、、、、文件夹结构、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQyNTUyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

代码:

MainActivity.java

package com.mybdmap;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Toast; import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint; public class MainActivity extends Activity {
private Toast mToast;
private BMapManager mBMapManager;
private MapView mMapView = null; // 用MapController完毕地图控制 private MapController mMapController = null; // MKMapViewListener 用于处理地图事件回调 MKMapViewListener mMapListener = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 使用地图sdk前需先初始化BMapManager,这个必须在setContentView()先初始化 mBMapManager = new BMapManager(getApplicationContext()); // 第一个參数是API key,
// 第二个參数是经常使用事件监听。用来处理通常的网络错误,授权验证错误等。你也能够不加入这个回调接口
mBMapManager.init("替换为你自己的AK", new MKGeneralListener() { // 授权错误的时候调用的回调函数
@Override
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
showToast("API KEY错误, 请检查!");
}
} // 一些网络状态的错误处理回调函数
@Override
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
Toast.makeText(getApplication(), "您的网络出错啦!",
Toast.LENGTH_LONG).show();
}
}
}); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); mMapController = mMapView.getController(); // 设置地图是否响应点击事件 . mMapController.enableClick(true);
// 设置地图缩放级别
mMapController.setZoom(12); // 显示内置缩放控件
mMapView.setBuiltInZoomControls(true); // 保存精度和纬度的类,
GeoPoint p = new GeoPoint((int) (22.547923 * 1E6),
(int) (114.067368 * 1E6));
// 设置p地方为中心点
mMapController.setCenter(p);
mMapView.regMapViewListener(mBMapManager, new MKMapViewListener() { // 地图移动完毕时会回调此接口 方法 @Override
public void onMapMoveFinish() {
// showToast("地图移动完毕! ");
} // 地图载入完毕回调此接口方法
@Override
public void onMapLoadFinish() {
showToast("地图载入完毕!");
} /**
* 地图完毕带动画的操作(如: animationTo())后,此回调被触发
*/
@Override
public void onMapAnimationFinish() { } /**
* 当调用过 mMapView.getCurrentMap()后,此回调会被触发 可在此保存截图至存储设备
*/
@Override
public void onGetCurrentMap(Bitmap arg0) { } /**
* 点击地图上被标记的点回调此方法
*
*/
@Override
public void onClickMapPoi(MapPoi arg0) {
if (arg0 != null) {
showToast(arg0.strText);
}
}
});
} @Override
protected void onResume() {
// MapView的生命周期与Activity同步。当activity挂起时需调用MapView.onPause()
mMapView.onResume();
super.onResume();
} @Override
protected void onPause() {
// MapView的生命周期与Activity同步。当activity挂起时需调用MapView.onPause()
mMapView.onPause();
super.onPause();
} @Override
protected void onDestroy() {
// MapView的生命周期与Activity同步。当activity销毁时需调用MapView.destroy()
mMapView.destroy(); // 退出应用调用BMapManager的destroy()方法
if (mBMapManager != null) {
mBMapManager.destroy();
mBMapManager = null;
} super.onDestroy();
} /**
* 显示Toast消息
*
* @param msg
*/
private void showToast(String msg) {
if (mToast == null) {
mToast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
} else {
mToast.setText(msg);
mToast.setDuration(Toast.LENGTH_SHORT);
}
mToast.show();
} }

布局文件:

<?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" > <com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /> </LinearLayout>

权限:

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

所需的jar+so下载地址:http://download.csdn.net/detail/u013425527/8265569

兔子--android中百度地图的开发的更多相关文章

  1. android 基于百度地图api开发定位以及获取详细地址

    一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView ...

  2. android中百度地图定位的实现方法(仅适用于真机+WIFI联网环境)

    注意:此代码的环境是:真机(系统版本为Android4.2.2)+WIFI联网(才能实现最后的运行结果):使用虚拟机调试会出现各种问题. 第一步:下载SDK和申请Key 到百度的网站http://de ...

  3. android 中百度地图 关于地图缩放所调用的事件

    在做百度地图的时候 javascript 有个地图缩放的事件 但是在android 的API里面却没有,但是还好  官方给了一个MapStatusChangeListener,是这样介绍的 百度地图S ...

  4. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  5. Android studio 百度地图开发(2)地图定位

    Android studio 百度地图开发(2)地图定位 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  6. 深入浅出百度地图API开发系列(1):前言

    百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能 ...

  7. 深入浅出百度地图API开发系列(2):创建地图

    上一篇文章里,先介绍了一下百度地图API开发所涉及到的一些基础概念,包括投影,坐标系等基础概念,再有了这些基础后,我们可以开始开发自己的web地图了.先来个代码示例(建议大家都是用百度地图API大众版 ...

  8. 基于MFC与第三方类CWebPage的百度地图API开发范例

    在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...

  9. Android使用百度地图出现闪退及定位时显示蓝屏问题

     目录 1.Android使用百度地图出现闪退 2.Android使用百度地图定位出现蓝屏问题     1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.x ...

随机推荐

  1. excel 根据单元格内容自动调整列宽

      excel 根据单元格内容自动调整列宽 CreateTime--2018年5月28日08:49:40 Author:Marydon 1.情景展示 单元格宽度超过了列宽 2.解决方案 第一步:同时选 ...

  2. 机器学习数学基础- gradient descent算法(上)

    为什么要了解点数学基础 学习大数据分布式计算时多少会涉及到机器学习的算法,所以理解一些机器学习基础,有助于理解大数据分布式计算系统(比如spark)的设计.机器学习中一个常见的就是gradient d ...

  3. mybatis xml和dao扫描写法

    第一种:接口和xml不在同一个目录,需要在sqlSessionFactoryBean中额外 指定xml的路径: <!-- myBatis文件 --> <bean id="s ...

  4. 【APP接口开发】常用HTTP响应头状态码详解

    1.200 OK,客户端请求城成功 2.400 Bad Request ,客服端请求语法错误,服务器无法理解和处理 3.401 unauthorized,请求未通过认证 4.403 permissio ...

  5. Git使用教程(全)

    Git是什么? Git是目前世界上最先进的开源的分布式版本控制系统(没有之一),用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开 ...

  6. Python 字符串与数字拼接报错

    Python 不像 JS 或者 PHP 这种弱类型语言里在字符串连接时会自动转换类型,而是直接报错. 如: 上述是Python 字符串与数字拼接报错,解决办法是:使用bytes函数把int型转换为st ...

  7. 如何处理JSON中的特殊字符 介绍几种解决方案

    http://www.nowamagic.net/librarys/veda/detail/216JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值 ...

  8. C#指南,重温基础,展望远方!(10)C#枚举

    枚举类型是包含一组已命名常量的独特值类型. 需要定义包含一组离散值的类型时,可以定义枚举. 枚举使用一种整型值类型作为其基础存储, 并提供离散值的语义含义. 以下示例声明并使用名为“Color”的 e ...

  9. 微信公共服务平台开发(.Net 的实现)3-------发送文本消息

    首先建立一个微信消息类. class wxmessage { public string FromUserName { get; set; } public string ToUserName { g ...

  10. C#:复选框操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...