地图控件示例添加/删除工具条,比例尺控件(3)

2017年09月13日 10:22 | 3768次浏览 作者原创 版权保护

地图控件概述

百度地图上负责与地图交互的UI元素称为控件。百度地图API中提供了丰富的控件,您还可以通过Control类来实现自定义控件。

地图API中提供的控件有:

Control:控件的抽象基类,所有控件均继承此类的方法、属性。通过此类您可实现自定义控件。

NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。移动端提供缩放控件,默认位于地图右下方。

OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。

ScaleControl:比例尺控件,默认位于地图左下方,显示地图的比例关系。

MapTypeControl:地图类型控件,默认位于地图右上方。

CopyrightControl:版权控件,默认位于地图左下方。

GeolocationControl:定位控件,针对移动端开发,默认位于地图左下方。

向地图添加控件

可以使用Map.addControl()方法向地图添加控件。在此之前地图需要进行初始化。例如,要将标准地图控件添加到地图中,可在代码中添加如下内容:

var map = new BMap.Map("container");    

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    

map.addControl(new BMap.NavigationControl());

可以向地图添加多个控件。在本例中我们向地图添加一个平移缩放控件、一个比例尺控件和一个缩略图控件。在地图中添加控件后,它们即刻生效。

map.addControl(new BMap.NavigationControl());    

map.addControl(new BMap.ScaleControl());    

map.addControl(new BMap.OverviewMapControl());    

map.addControl(new BMap.MapTypeControl());    

map.setCurrentCity("北京"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用

添加删除工具条,比例尺控件示例代码

1),首先,我们要准备一个HTML容器用来显示地图,这里选用一个div元素,同时设置好宽度和高度。代码如下:

<div id="allmap" style="width: 600px;height: 500px"></div>

并且我们还要准备两个功能按钮,添加控件和删除控件

<div id="r-result">
  <input type="button" onclick="add_control();" value="添加控件" />
  <input type="button" onclick="delete_control();" value="删除控件" />
	</div>
<p>在地图的左上、右上分别展示完整、缩略样式的缩放平移控件;同时在地图的左上方展示比例尺控件,点击按钮查看效果</p>

2), 引入百度地图api的js库,就像我们页面如果想使用jquery一样需要引入jquery的js库,注意一定要填写自己在百度地图开放平台管理中心申请的ak

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

3), javascript初始化地图,并且实现添加、删除控件功能js代码

.com//V型知识库 www.vxzsk
<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");
	map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

	var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
	var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
	var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,仅包含平移和缩放按钮
	/*缩放控件type有四种类型:
	BMAP_NAVIGATION_CONTROL_SMALL:仅包含平移和缩放按钮;BMAP_NAVIGATION_CONTROL_PAN:仅包含平移按钮;BMAP_NAVIGATION_CONTROL_ZOOM:仅包含缩放按钮*/
	
	//添加控件和比例尺
	function add_control(){
		map.addControl(top_left_control);        
		map.addControl(top_left_navigation);     
		map.addControl(top_right_navigation);    
	}
	//移除控件和比例尺
	function delete_control(){
		map.removeControl(top_left_control);     
		map.removeControl(top_left_navigation);  
		map.removeControl(top_right_navigation); 
	}
</script>

add_control()和delete_control()两个js方法分别是上述两个按钮触发函数。

如果想在初始化百度地图的时候,控件也跟着初始化,而不是点击按钮出现,可把方法体里面的代码复制出来,具体实现代码如下

<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");
	map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

	var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
	var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
	var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,仅包含平移和缩放按钮
	/*缩放控件type有四种类型:
	BMAP_NAVIGATION_CONTROL_SMALL:仅包含平移和缩放按钮;BMAP_NAVIGATION_CONTROL_PAN:仅包含平移按钮;BMAP_NAVIGATION_CONTROL_ZOOM:仅包含缩放按钮*/
	
	//添加控件和比例尺
	
		map.addControl(top_left_control);        
		map.addControl(top_left_navigation);     
		map.addControl(top_right_navigation);    
	
	
</script>

4), 效果如下

如图点击按钮,百度地图上面出现了比例尺,工具条控件。

完整jsp界面示例代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
	<style type="text/css">
	body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
	</style>
	<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的ak"></script>
	<title>地图展示</title>
</head>
<body>
	<div id="allmap" style="width: 600px;height: 500px"></div>
	<div id="r-result">
		<input type="button" onclick="add_control();" value="添加控件" />
		<input type="button" onclick="delete_control();" value="删除控件" />
	</div>
	<p>在地图的左上、右上分别展示完整、缩略样式的缩放平移控件;同时在地图的左上方展示比例尺控件,点击按钮查看效果</p>
</body>
</html>
<script type="text/javascript">
	// 百度地图API功能 V型知识库 www.vxzsk.com
	var map = new BMap.Map("allmap");
	map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

	var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
	var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
	var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,仅包含平移和缩放按钮
	/*缩放控件type有四种类型:
	BMAP_NAVIGATION_CONTROL_SMALL:仅包含平移和缩放按钮;BMAP_NAVIGATION_CONTROL_PAN:仅包含平移按钮;BMAP_NAVIGATION_CONTROL_ZOOM:仅包含缩放按钮*/
	
	//添加控件和比例尺
	//function add_control(){
		map.addControl(top_left_control);        
		map.addControl(top_left_navigation);     
		map.addControl(top_right_navigation);    
	//}
	//移除控件和比例尺
	function delete_control(){
		map.removeControl(top_left_control);     
		map.removeControl(top_left_navigation);  
		map.removeControl(top_right_navigation); 
	}
</script>



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/186.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程