WebGIS二次开发-7-地图控件加载

21 篇文章 0 订阅
17 篇文章 3 订阅

一、使用步骤

地图控件主要包括:

  • 导航(放大、缩小、复位)

  • 滚动条

  • 鼠标位置

  • 比例尺

  • 鹰眼

- 实例化控件对象
- 调用方法加载到map对象中

二、演示

2-1 、添加导航控件
//TIAN.js
const key = '8a5c2b00e94b49659861e064c37f778d'
/* 天地图矢量图层 */
const TianDiMap_vec = new ol.layer.Tile({
    title: "天地图矢量图层",
    source: new ol.source.XYZ({
        url: 'http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=' +
            key,
        wrapX: false
    })
})
/* 天地图注记图层 */
const TianDiMap_cva = new ol.layer.Tile({
    title: "天地图矢量注记图层",
    source: new ol.source.XYZ({
        url: 'http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=' +
            key,
        wrapX: false
    })
})
/* 天地图影像图层 */
const TianDiMap_img = new ol.layer.Tile({
    title: "天地图影像图层",
    source: new ol.source.XYZ({
        url: 'http://t0.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=' +
            key,
        wrapX: false
    })
})
/* 天地图影像注记图层 */
const TianDiMap_cia = new ol.layer.Tile({
    title: "天地图影像注记图层",
    source: new ol.source.XYZ({
        url: 'http://t0.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=' +
            key,
        wrapX: false
    })
})
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/include-openlayers-local.js"></script>
    <script src="../js/TIAN.JS"></script>
</head>

<body>
    <div id="map_container"></div>
    <script>
        /* 一、渲染地图 */
        const map = new ol.Map({
            target: 'map_container',
            layers: [TianDiMap_vec, TianDiMap_cva],
            view: new ol.View({
                projection: 'EPSG:4326', // 经纬度坐标系(默认是默卡托坐标系)
                center: [110, 30],
                zoom:4,
            }),
        })

        // 地图控件
        // 1. 视图跳转控件
        const ZoomToExtent = new ol.control.ZoomToExtent({
            extent: [110, 30, 160,30],
        })
        map.addControl(ZoomToExtent)
    </script>
</body>
</html>

2-2、添加zoomslider
<body>
    <div id="map_container"></div>
    <script>
        /* 一、渲染地图 */
        const map = new ol.Map({
            target: 'map_container',
            layers: [TianDiMap_vec, TianDiMap_cva],
            view: new ol.View({
                projection: 'EPSG:4326', // 经纬度坐标系(默认是默卡托坐标系)
                center: [110, 30],
                zoom:4,
            }),
        })

        // 地图控件
        /* 2. zoomslider */
        /* 实例化zoomslider */
        const zoomslider = new ol.control.ZoomSlider();
        map.addControl(zoomslider)
    </script>
</body>

2-3、鼠标显示坐标值
<body>
  <div id="map_container">
    //放置控件在html中的位置
        <div id="mouse-position">
        </div>
  </div>
</body>
<script>
       const mousePositionControl = new ol.control.MousePosition({
            /* 坐标格式 */
            coordinateFormat:ol.coordinate.createStringXY(4),
            projection:'EPSG:4326',
            /* 坐标信息显示样式类名,默认是'ol-mouse-position' */
            className:'custom-mouse-position',
            target:document.getElementById('mouse-position'),
            undefinedHTML:'&nbsp'
        })
        map.addControl(mousePositionControl)   
</script>
<style>
  /* 鼠标位置信息自定义样式设置 */
  .custom-mouse-position {
     color:#ff2d51;
     font-size: 16px;
     font-family: "微软雅黑";
  }
</style>

2-4、比例尺控件
/* 4、比例尺 */
const scaleLineControl = new ol.control.ScaleLine({
    /* 设置比例尺单位,degrees,imperial,us,nautical,metric */
    units:'metric'
})
map.addControl(scaleLineControl)

2-5、鹰眼
<style>
  .ol-custom-overviewmap{
    /* position: fixed; */
    right:0;
    bottom:0;
    top:auto;
    left:auto;
  }

  .ol-overviewmap-box{
    border:1px solid #ff2d51;

  }
</style>
const overviewMapControl = new ol.control.OverviewMap({
    /* 鹰眼控件样式  */
    className:'ol-overviewmap ol-custom-overviewmap',
    layers:[TianDiMap_vec, TianDiMap_cva],
    /* 鹰眼控件展开时功能按钮上的标识(网页的JS的字符编码) */
    collapseLabel:'\u00BB',
    /* 鹰眼控件折叠时功能按钮上的标识(网页的JS的字符编码) */
    label:'\u00AB',
    /* 初始为展开显示方式 */
    collapsed:false,
    view:new ol.View({
        projection:'EPSG:4326',
        minZoom:8,
        maxZoom:18
    })
})
map.addControl(overviewMapControl)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值