在本文中主要介绍百度地图UI控制功能,即控制地图是否有缩放、平移、双击放大、旋转、俯视的功能以及控制是否显示内置缩放组件、指南针位置等。在文中采用标签监听使每个控制功能的方法见名知义,代码原型来源百度demo,代码如下:

Activity:

package com.home;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.CheckBox;

import android.widget.RadioButton;

import com.baidu.mapapi.BMapManager;

import com.baidu.mapapi.map.MapController;

import com.baidu.mapapi.map.MapView;

import com.baidu.platform.comapi.basestruct.GeoPoint;

/**

* 演示地图UI控制功能

*/

public class UISettingActivity extends Activity {

/**

* MapView 是地图主控件

*/

private MapView mMapView = null;

/**

* 用MapController完成地图控制

*/

private MapController mMapController = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/**

* 使用地图sdk前需先初始化BMapManager. BMapManager是全局的,可为多个MapView共用,它需要地图模块创建前创建,

* 并在地图地图模块销毁后销毁,只要还有地图模块在使用,BMapManager就不应该销毁

*/

DemoApplication app = (DemoApplication) this.getApplication();

if (app.mBMapManager == null) {

app.mBMapManager = new BMapManager(this);

/**

* 如果BMapManager没有初始化则初始化BMapManager

*/

app.mBMapManager.init(DemoApplication.strKey,

new DemoApplication.MyGeneralListener());

}

/**

* 由于MapView在setContentView()中初始化,所以它需要在BMapManager初始化之后

*/

setContentView(R.layout.uisetting_main);

mMapView = (MapView) findViewById(R.id.bmapView);

/**

* 获取地图控制器

*/

mMapController = mMapView.getController();

/**

* 设置地图是否响应点击事件

*/

mMapController.enableClick(true);

/**

* 设置地图缩放级别

*/

mMapController.setZoom(12);

/**

* 设置地图俯角

*/

mMapController.setOverlooking(-30);

/**

* 将地图移动至天安门

* 使用百度经纬度坐标,可以通过http://api.map.baidu.com/lbsapi/getpoint/index

* .html查询地理坐标 如果需要在百度地图上显示使用其他坐标系统的位置,请发邮件至mapapi@baidu.com申请坐标转换接口

*/

double cLat = 39.945;

double cLon = 116.404;

GeoPoint p = new GeoPoint((int) (cLat * 1E6), (int) (cLon * 1E6));

mMapController.setCenter(p);

}

/**

* 是否启用缩放手势

*

* @param v

*/

public void setZoomEnable(View v) {

mMapController.setZoomGesturesEnabled(((CheckBox) v).isChecked());

}

/**

* 是否启用平移手势

*

* @param v

*/

public void setScrollEnable(View v) {

mMapController.setScrollGesturesEnabled(((CheckBox) v).isChecked());

}

/**

* 是否启用双击放大

*

* @param v

*/

public void setDoubleClickEnable(View v) {

mMapView.setDoubleClickZooming(((CheckBox) v).isChecked());

}

/**

* 是否启用旋转手势

*

* @param v

*/

public void setRotateEnable(View v) {

mMapController.setRotationGesturesEnabled(((CheckBox) v).isChecked());

}

/**

* 是否启用俯视手势

*

* @param v

*/

public void setOverlookEnable(View v) {

mMapController

.setOverlookingGesturesEnabled(((CheckBox) v).isChecked());

}

/**

* 是否显示内置绽放控件

*

* @param v

*/

public void setBuiltInZoomControllEnable(View v) {

mMapView.setBuiltInZoomControls(((CheckBox) v).isChecked());

}

/**

* 设置指南针位置,指南针在3D模式下自动显现

*

* @param view

*/

public void setCompassLocation(View view) {

boolean checked = ((RadioButton) view).isChecked();

switch (view.getId()) {

case R.id.lefttop:

if (checked)

// 设置指南针显示在左上角

mMapController.setCompassMargin(100, 100);

break;

case R.id.righttop:

if (checked)

mMapController.setCompassMargin(mMapView.getWidth() - 100, 100);

break;

}

}

@Override

protected void onPause() {

/**

* MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause()

*/

mMapView.onPause();

super.onPause();

}

@Override

protected void onResume() {

/**

* MapView的生命周期与Activity同步,当activity恢复时需调用MapView.onResume()

*/

mMapView.onResume();

super.onResume();

}

@Override

protected void onDestroy() {

/**

* MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy()

*/

mMapView.destroy();

super.onDestroy();

}

@Override

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

mMapView.onSaveInstanceState(outState);

}

@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

mMapView.onRestoreInstanceState(savedInstanceState);

}

}

布局XML:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="match_parent"

android:layout_height="50dip"

android:orientation="horizontal" >

android:id="@+id/zoom"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:onClick="setZoomEnable"

android:text="缩放" />

android:id="@+id/scroll"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:onClick="setScrollEnable"

android:text="平移" />

android:id="@+id/doubleClick"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:onClick="setDoubleClickEnable"

android:text="双击放大" />

android:layout_width="match_parent"

android:layout_height="50dip"

android:orientation="horizontal" >

android:id="@+id/rotate"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:onClick="setRotateEnable"

android:text="旋转" />

android:id="@+id/overlook"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:onClick="setOverlookEnable"

android:text="俯视" />

android:id="@+id/zoomControl"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="false"

android:onClick="setBuiltInZoomControllEnable"

android:text="缩放控件" />

android:layout_width="match_parent"

android:layout_height="50dip"

android:orientation="horizontal" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:paddingTop="10dip"

android:text="指南针位置" />

android:id="@+id/RadioGroup"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:orientation="horizontal"

android:text="指南针位置" >

android:id="@+id/lefttop"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:checked="true"

android:onClick="setCompassLocation"

android:text="左上角" />

android:id="@+id/righttop"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="setCompassLocation"

android:text="右上角" />

android:id="@+id/bmapView"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:clickable="true" />

Application类和Manifest同前文。

附上图片效果:

android百度地图禁止转动和俯视,百度地图之UI控制相关推荐

  1. android 百度地图禁止双击放大缩小,百度地图API 在使用点聚合时,如果放大、缩小或移动地图时,添加的文字标签会消失...

    问题:如题,百度地图API 在使用点聚合时,如果放大.缩小或移动地图时,添加的文字标签(label)会消失. 原因:API代码中的map.removeOverlay(marker),在这句话执行的时候 ...

  2. 百度android地图开发文档,简介-百度地图开发文档

    目录1 JavaScript API功能介绍 2 面向的读者 3 坐标转换 4 版本说明及申请API ak 5 获取JavaScript API服务方法 6 开发移动平台上的地图应用 7 Https ...

  3. [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题

        最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...

  4. Android获取当前位置,推荐使用百度地图SDK获取位置

    这里直接引用了百度V2.6出给出的DEMO实例,经过测试,在手机客户端可以获取到当前所在的位置 首先先看一下MainActivity.java package com.example.location ...

  5. android 支付宝 地图,利用百度地图实现支付宝“到位”功能(地图模式)

    Hello,大家好,郭老司机又来话痨啦((/- -)/.作为一个芝麻信用分762的穷苦青年,本想着,终于可以在支付宝上,光明正大的勾搭坦诚相见的妹子们,谁知道被和谐了,互联网套路啊(ノಠ益ಠ)ノ彡┻━ ...

  6. android app调用第三方地图路线规划导航(百度,高德,腾讯)

    android app调用第三方地图路线规划导航(百度,高德,腾讯) 因为直接使用高德的sdk提供的导航被投诉说不准,所以需要接第三方. 把BAT系的地图都接上了,有兄弟找到其他的地图调用方法告诉下小 ...

  7. 高德地图 web android,Android 调用第三方地图类App (高德 百度 百度网页版)

    Screenshot_20170509-152819.png 前言 最近项目中需要用到地图的功能,但是应用本身不是地图类应用,而且用地图只是为了分享和展示一个地点而已,所以完全没有必要去集成厚重的sd ...

  8. Android中级篇之百度地图SDK v3.5.0-基础地图[图解百度地图基础教程]

    基础地图[比官方更详细] 简介 开发者可利用SDK提供的接口,使用百度为您提供的基础地图数据.目前百度地图SDK所提供的地图等级为3-19级,所包含的信息有建筑物.道路.河流.学校.公园等内容.所有叠 ...

  9. android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...

    因为工作的需要,我在做软件的时候用到地图,并且需要从地图中搜索公交.商户等信息,因此选择百度地图.百度地图搜索的poi搜索正好符合我的需求,但是软件完成后发现在软件第一次执行的时候总是出错,百度地图无 ...

  10. android 接百度SDK遇到的坑(百度地图BD09经纬度转高德地图GCJ02经纬度)

    百度转高德==> /*** 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换* 即 百度 转 谷歌.高德** @param latLng* @returns*/public s ...

最新文章

  1. 20. Valid Parentheses
  2. AutoFac Ioc依赖注入容器
  3. Android中Google Drive显示黑屏问题分析
  4. 原生态的ajax 及json和gson学习资源
  5. js字符串截取函数substr substring slice使用对比
  6. Centos 开机无法输入密码的问题
  7. excel vba 从入门到精通_VBA词汇-基本元素篇
  8. P3807-[模板]卢卡斯定理
  9. 【C语言】无参函数调用实例
  10. 开启ntp_飒,NTP时钟服务器在银行大楼系统方案
  11. python文件和路径操作
  12. python语法学习第三天--列表
  13. MySQL高级学习(一) (吾爱破解)
  14. 域名注册处更改dns服务器,怎么修改DNS服务器_为什么要修改DNS服务器
  15. C++ ISBN 号码
  16. [江枫]In Memory Undo与logical standby database
  17. 器件选型电源篇-DC/DC器件选型
  18. 神武4虚拟机 进不去怎么办 无法登陆我们应如何解决?
  19. R语言 去掉NA求均值
  20. 惠普Z820安装win10系统攻略(固态作为系统盘)——思小瓜

热门文章

  1. 申请《App电子版权认证证书》或纸质《计算机软件著作权证书》
  2. CSP共空间模式详解
  3. 前端成长之路之打好根基
  4. 国产智多晶FPGA下载器(调试器)的驱动安装方法
  5. 2021莆田六中一高考成绩查询,莆田六中2018年高一新生录取名单完整版
  6. Vue学习笔记:获取文件唯一标识 md5值
  7. 水晶易表 Xcelsius 2008 安装指南学习资源
  8. 前端问题记录(持续更新...)
  9. java实现蒲丰投针求,用程序模拟蒲丰投针试验
  10. 计算机组装维修设置还原点,怎样恢复出厂设置组装电脑