zoukankan      html  css  js  c++  java
  • Openlayer3中应用的技术

    ol3-ext有很多很丰富的效果,可以不用重复造轮子,ol3-ext示例大全:http://viglino.github.io/ol3-ext/

    在本次项目中使用到了ol3-ext的两个功能:图层管理器和辅助工具栏

    1.图层管理器

    实现的功能有:

    1)设置图层显示与隐藏

    2)设置图层组显示与隐藏

    3)设置图层透明度

    4)设置图层顺序

    5)当前比例尺不显示的图层灰色显示

    代码:

    复制代码
        // A group layer for base layers
        var baseLayers = new ol.layer.Group(
            {
                title: '图层',
                openInLayerSwitcher: true,
                layers: [
                    new ol.layer.Tile({
                        title: "OSM",
                        source: new ol.source.OSM({
                            attributions: []
                        })
                    }),
                    vectorLayerXB,
                    vectorLayerXBLabel,
                    vectorLayerCun,
                    vectorLayerXiang,
                    vectorLayerXian,
                    vectorLayerShi,
                    vectorLayerSheng,
                    vectorLayerGuo,
                    vectorTemp
                ]
            });
    
        var layerSwitcherControl = new ol.control.LayerSwitcher();
        map.addControl(layerSwitcherControl);
    复制代码

     2.辅助工具栏

    代码:

    复制代码
        //初始化辅助工具栏
        this.mainbar = new ol.control.Bar();
    
        // Edit control bar
        var editbar = new ol.control.Bar(
            {
                toggleOne: true,    // one control active at the same time
                group: false            // group controls together
            });
        this.mainbar.addControl(editbar);
    
        //线测量
        var lineMeasure = new ol.control.TextButton(
            {
                html: '<i class="material-icons">show_chart</i>',
                title: "线测量",
                handleClick: function () {
                    var ToolManager = require('../../mapzone-ol3-plugin/mzTool/mzToolManager.js');
                    var manager = ToolManager.getToolManager(this.map_);
                    manager.getTool('测量').setMeatureType('LineString');
                }
            });
    
        editbar.addControl(lineMeasure);
    
        //面测量
        var lineMeasure = new ol.control.TextButton(
            {
                html: '<i class="material-icons">panorama_wide_angle</i>',
                title: "面测量",
                handleClick: function () {
                    var ToolManager = require('../../mapzone-ol3-plugin/mzTool/mzToolManager.js');
                    var manager = ToolManager.getToolManager(this.map_);
                    manager.getTool('测量').setMeatureType('Polygon');
                }
            });
    
        editbar.addControl(lineMeasure);
    
        //完成本次测量
        var finishDrawing = new ol.control.TextButton(
            {
                html: '<i class="fa fa-check"></i>',
                title: "完成",
                handleClick: function () {
                    var ToolManager = require('../../mapzone-ol3-plugin/mzTool/mzToolManager.js');
                    var manager = ToolManager.getToolManager(this.map_);
                    manager.getTool('测量').interaction.finishDrawing();
                }
            });
    
        editbar.addControl(finishDrawing);
    
        //取消本次测量
        var cancleDrawing = new ol.control.TextButton(
            {
                html: '<i class="fa fa-times"></i>',
                title: "取消",
                handleClick: function () {
                    var ToolManager = require('../../mapzone-ol3-plugin/mzTool/mzToolManager.js');
                    var manager = ToolManager.getToolManager(this.map_);
                    manager.getTool('测量').interaction.abortDrawing_();
                }
            });
    
        editbar.addControl(cancleDrawing);
    
    
        //清除测量结果
        var clearMeasureResult = new ol.control.TextButton(
            {
                html: '<i class="fa fa-paint-brush"></i>',
                title: "清除测量结果",
                handleClick: function () {
                    var ToolManager = require('../../mapzone-ol3-plugin/mzTool/mzToolManager.js');
                    var manager = ToolManager.getToolManager(this.map_);
                    manager.getTool('测量').clearMeasureResult();
                    manager.getTool('测量').setMeatureType(manager.getTool('测量').measureType);
                }
            });
    
        editbar.addControl(clearMeasureResult);
    
        //加载辅助工具栏
        this.interaction.map_.addControl(this.mainbar);
  • 相关阅读:
    Java并发教程(Oracle官方资料)
    java中的字符集和编码
    一篇文章看懂Java并发和线程安全
    mysql中,如何查看数据库中当前可用的校勘?字符集默认的collation?
    mysql数据库中,查看当前支持的字符集有哪些?字符集默认的collation的名字?
    mysql数据库中,通过一条insert into语句,同时插入多个值
    jenkins第一次登陆,输入完密码之后,卡在了SetupWizard[jenkins]处
    mysql数据库,如何在登录mysql之后执行操作系统上的SQL脚本?
    mysql在命令行中,指定要连接的数据库?
    mysql中如何在命令行中,执行一个SQL脚本文件?
  • 原文地址:https://www.cnblogs.com/yejianyong/p/7756546.html
Copyright © 2011-2022 走看看