openlayers限制地图拖动区域

简介:

    现在做webgis基本都会用到openlayers或者leaflet。那么在显示地图的时候,特别是显示小区域地图的时候,由于地图区域较小,就会存在把地图拖动到显示区域之外的现象。那么该如何限制地图拖动的区域呢。   

    在openlayers2中有restrictedExtent属性,直接设置下即可。

var options = {
			controls : [
			            new OpenLayers.Control.Navigation()
			            ],
            projection: new OpenLayers.Projection("EPSG:4326"),
            maxResolution: 0.703125,
           // minScale:1/3500,
//            minScale:100,
			numZoomLevels :22 ,
			restrictedExtent: restrictedExtent,
            //maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
			//allOverlays : true
    };

	//初始化map对象
	this.map = new OpenLayers.Map('map',options);

但是在openlayers3中,由于没有直接的属性和接口使用,因此需要用别的方法。我用的方法就是在map的view对象中添加extent属性来限制。


map.setView(new ol.View({
			center: mapCenter,
			projection: this.projection,
			//extent : mapExtent,
			zoom: 18,
			minZoom: 16,
			maxZoom: 23,
			extent:[mapExtent[1]-0.0001,mapExtent[0]-0.0001,mapExtent[3]+0.0001,mapExtent[2]+0.0001]
		}));


相关文章
|
定位技术
百度地图:监听地图缩放自动显示和隐藏的富文本标签
百度地图:监听地图缩放自动显示和隐藏的富文本标签
213 0
墨刀实现区域内滚动效果
墨刀实现区域内滚动效果
|
8月前
|
测试技术 定位技术
【sgDragMoveTile】自定义组件:拖拽瓦片图、地图、大图,滚动条对应同步滚动
【sgDragMoveTile】自定义组件:拖拽瓦片图、地图、大图,滚动条对应同步滚动
|
资源调度 Java Python
如何在地图上寻找最密集点的位置?
最近我在工作中遇到了一个小的需求点,大概是需要在地图上展示出一堆点中的点密度最密集的位置。最开始没想到好的方法,就使用了一个非常简单的策略——所有点的坐标求平均值,这个方法大部分的时候好用,因为大部分城市所有点位基本上都是围绕某个中心点向四周发散的。但我们实际在线上使用的时候,遇到了两个特殊的case。
104 0
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
320 0
|
定位技术
百度地图开发(8):地图覆盖物实现纵横交错的交通网络
百度地图开发(8):地图覆盖物实现纵横交错的交通网络
56 0
|
定位技术
echarts. registerMap选项specialAreas将地图中的部分区域缩放到合适的位置,可以使得整个地图的显示更加好看
echarts. registerMap选项specialAreas将地图中的部分区域缩放到合适的位置,可以使得整个地图的显示更加好看
182 0
|
数据可视化 定位技术 开发者
地图的路网、边界等线条底图素材的获取方法
本文介绍获取定制地图中路网、水体等线条素材底图的免费方法~
557 1
|
定位技术
在地图上基于OpenLayers实现点/线/面静态的绘制显示
在地图上基于OpenLayers实现点/线/面静态的绘制显示
1230 0
在地图上基于OpenLayers实现点/线/面静态的绘制显示
|
定位技术 API
Leaflet中如何限制地图的拖动范围
本文讲解了在Leaflet中如何进行地图范围的控制,并通过代码的方式进行示例,并展示了最终效果。
778 0
Leaflet中如何限制地图的拖动范围