控制器可以使用在地图上,也可以使用在地图之外的元素如<div>中。
添加控制器有两种方式:
1.在map对象初始化时以js数组的形式把OpenLayers控制器传入
2.在map对象初始化后,调用addControl()来添加单个控制器或者addControls()传入一个控制器数组对象
当一个map对象被初始化后,默认会有4种控制器:
1.OpenLayers.Control.Navigation:
用来控制地图与鼠标事件的互动,如拖曳,缩放,滚动,双击。
2.OpenLayers.Control.PanZoom:
在地图的左上方添加一个平移与缩放的工具条
3.OpenLayers.Control.ArgParser:
使地图可以在缩放到指定大小时根据URL参数打开或关闭一些图层
4.OpenLayers.Control.Attribution:
允许通过layer向map添加属性
如果想要创建一个不包含任何控制器的地图,则在创建map对象时使用下面代码
map = new OpenLayers.Map('map_element', {
controls: [] //设置一个空的控制器数组以清除默认控制器
});
示例:向地图添加控制器
代码:
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>My OpenLayers Map</title>
<script type='text/javascript' src='OpenLayers.js'></script>
<script type='text/javascript'>
var map;
function init() {
//创建控制器数组
var navigation_control = new OpenLayers.Control.Navigation({});
var controls_array = [
navigation_control,
new OpenLayers.Control.PanZoomBar({}),
new OpenLayers.Control.LayerSwitcher({}),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.MousePosition({})
];
map = new OpenLayers.Map('map_element', {
controls: controls_array
});//初始化map时加入定义的控制器
var wms_layer = new OpenLayers.Layer.WMS(
'WMS Layer Title',
'http://vmap0.tiles.osgeo.or