[原]SuperMap GIS(JavaScript) 拉框放大和缩小功能实现
时间: 2023-09-20 22:11:52 浏览: 171
SuperMap GIS(JavaScript)提供了两种方式来实现拉框放大和缩小功能。
第一种方式是使用 SuperMap Control 的 ZoomBox 控件,该控件可以在地图上绘制一个矩形框,然后放大或缩小到该矩形框所包含的区域。使用该控件的代码如下:
```
var zoomBox = new SuperMap.Control.ZoomBox();
map.addControl(zoomBox);
```
第二种方式是手动编写代码来实现拉框放大和缩小功能。具体实现步骤如下:
1. 监听地图的鼠标按下事件,记录下鼠标按下时的坐标。
```
map.events.register("mousedown", map, function(e) {
// 记录下鼠标按下时的坐标
startX = e.xy.x;
startY = e.xy.y;
});
```
2. 监听地图的鼠标抬起事件,记录下鼠标抬起时的坐标,并计算出矩形框的左上角和右下角坐标。
```
map.events.register("mouseup", map, function(e) {
// 记录下鼠标抬起时的坐标
endX = e.xy.x;
endY = e.xy.y;
// 计算出矩形框的左上角和右下角坐标
var left = Math.min(startX, endX);
var bottom = Math.min(startY, endY);
var right = Math.max(startX, endX);
var top = Math.max(startY, endY);
});
```
3. 构造一个新的矩形框的范围对象,并调用地图的 zoomToExtent 方法将地图缩放到该范围内。
```
var bounds = new SuperMap.Bounds(left, bottom, right, top);
map.zoomToExtent(bounds);
```
通过以上步骤,就可以实现拉框放大和缩小功能。
阅读全文