openlayers版本: v3.19.1-dist

  统计图效果:

       

  案例下载地址:https://gitee.com/kawhileonardfans/openlayers-example/tree/master/openlayers-%E7%BB%9F%E8%AE%A1%E5%9B%BE%E6%98%BE%E7%A4%BA(%E4%B8%AD%E5%9B%BD%E5%8C%BA%E5%9F%9F%E9%AB%98%E4%BA%AE)

  使用浏览器:谷歌80.0.3987.162(正式版本) (64 位)

  代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-Type" content="text/html; charset=UTF-8" />
        <title>openlayers-统计图显示(中国区域高亮)</title>
        <link href="v3.19.1-dist/ol.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <!-- 地图容器 -->
        <div id="mapCon" style="height: 95%;"></div>

        <!-- GDP图表容器 -->
        <div id="gdpChart" style="position: absolute;width:500px;height:380px"></div>
    </body>
    <script src="js/jquery-1.11.2.min.js" type="text/javascript"></script>
    <script src="v3.19.1-dist/ol-debug.js" type="text/javascript"></script>
    <script src="js/zondyClient.js" type="text/javascript"></script>
    <script src="js/echarts.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        var map;

        $(document).ready(function (){
            // 初始化天地图图层
            var layer1 = new Zondy.Map.TianDiTu({
                layerType: Zondy.Enum.Map.TiandituType.VEC,
                projection: ol.proj.get('EPSG:4326'),
                // 天地图key
                token: "e83d04f3e04272b8d9e91615e309fe36"
            });
            // 初始化地图容器
            map = new ol.Map({
                target: "mapCon",
                layers: [layer1],
                view: new ol.View({
                    center: [109.05167, 31.78305],// 地图中心点(天地图里面的经纬度)
                    zoom: 5,
                    minZoom: 5,// 最大缩放级别
                    maxZoom: 5,// 最小缩放级别
                    projection: "EPSG:4326"
                })
            });

            // 禁止鼠标拖动
            disabledMove();

            // 显示中国区域
            displayChina();

            // 创建图表对象
            var chart = new ol.Overlay({
                // 设置图表显示位置
                position: [109.05167, 31.78305],
                // 上面的经纬度就是图表的左上角、所以这里需要修补一下位置、类似css的top、margin(单位px)
                offset: [-260, -190],
                // 指定这个图表对象使用的是那个Div
                element: document.getElementById("gdpChart")
            });
            // 把图表对象添加到地图容器中
            map.addOverlay(chart);
            // 初始化GDP图表
            initCharts();
        });

        /** 禁止鼠标拖动 */
        function disabledMove(){
            let pan = getFun();
            pan.setActive(false);
            function getFun() {
                let pan;
                map.getInteractions().forEach(function(element, index, array) {
                    if(element instanceof ol.interaction.DragPan) {
                        pan = element;
                    }
                })
                return pan;
            }
        }

        /** 显示中国区域 */
        function displayChina(){
            var queryStruct = new Zondy.Service.QueryFeatureStruct();
            //是否包含几何图形信息
            queryStruct.IncludeGeometry = true;
            //是否包含属性信息
            queryStruct.IncludeAttribute = true;
            //是否包含图形显示参数
            queryStruct.IncludeWebGraphic = false;
            var queryParam = new Zondy.Service.QueryByLayerParameter("gdbp://MapGisLocal/OpenLayerVecterMap/ds/世界地图经纬度/sfcls/世界政区", {
                resultFormat: "json",
                struct: queryStruct
            });
            //设置查询分页号
            queryParam.pageIndex = 0;
            //设置查询要素数目
            queryParam.recordNumber = 20;
            //设置属性条件
            queryParam.where = "name='中国'";
            //实例化地图文档查询服务对象
            var queryService = new Zondy.Service.QueryLayerFeature(queryParam, {
                ip: "develop.smaryun.com",
                port: "6163"
            });
            queryService.query(function(result){
                //初始化Zondy.Format.PolygonJSON类
                var format = new Zondy.Format.PolygonJSON();
                //将MapGIS要素JSON反序列化为ol.Feature类型数组
                var features = format.read(result);

                //实例化一个矢量图层drawLayerr用于高亮显示结果
                var drawSource = new ol.source.Vector({
                    //是否在地图水平坐标轴上重复
                    wrapX: false
                });
                drawSource.addFeatures(features);
                drawLayer = new ol.layer.Vector({
                    source: drawSource,
                    style: new ol.style.Style({
                        //填充色
                        fill: new ol.style.Fill({
                            color: 'gray'
                        }),
                        //边线样式
                        stroke: new ol.style.Stroke({
                            color: 'rgba(255,204, 51, 1)',
                            width: 1
                        })
                    })
                });

                map.addLayer(drawLayer);
            }, function (){});
        }

        /** 初始化GDP图表 */
        function initCharts() {
            var myChart = echarts.init(document.getElementById("gdpChart"));
            var option = {
                color: ['#3398DB'],
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'shadow'
                    }
                },
                grid: {
                    left: '3%',
                    right: '4%',
                    bottom: '3%',
                    containLabel: true
                },
                xAxis: [
                    {
                        type: 'category',
                        data: ['上海', '北京', '深圳', '广州', '重庆', '苏州', '成都'],
                        axisTick: {
                            alignWithLabel: true
                        }
                    }
                ],
                yAxis: [
                    {
                        type: 'value'
                    }
                ],
                series: [
                    {
                        name: '2019年经济GDP(亿)',
                        type: 'bar',
                        barWidth: '60%',
                        data: [38155.32, 35371.30, 26927.09, 23628.60, 23605.77, 19235.80, 17012.65]
                    }
                ]
            };
            myChart.setOption(option);
        }
    </script>
</html>

openlayers-统计图显示(中国区域高亮)的更多相关文章

  1. ArcMap制图_显示指定区域地图内容

    摘要:有一张完整的中国地图,有时仅要求针对某一特定区域制图,那么如何在不进行裁剪的情况下仅显示该区域范围的要素内容? 步骤: 1.打开ArcMap,加载完整的中国地图: 2.将要显示的区域范围制作成一 ...

  2. CSS---解决内容过多就会出文本溢出(显示在区域外面,不换行的情况)

    当我们设置我的的div,或者其它文本框固定宽度之后,文本内容过多就会出文本溢出(显示在区域外面,不换行的情况). 这时我们可以使用Css中的几个属于来解.有以下的三个属于可以解决问题: 1,word- ...

  3. C# 使用winForm的TreeView显示中国城镇四级联动

    直接上代码吧,这里 MySql.Data.MySqlClient;需要到mysql官网下载mysql-connector-net-6.9.8-noinstall.zip   访问密码 6073 usi ...

  4. Django设置TIME_ZONE和LANGUAGE_CODE为中国区域

    Django默认的timezone是 TIME_ZONE = 'America/Chicago' LANGUAGE_CODE = 'en-us' 设置为中国区域: TIME_ZONE = 'Asia/ ...

  5. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

    原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...

  6. 得到ImageView中drawable显示的区域的计算方法

    我们都知道Imageview中有不同的拉伸比率,比如fitStart,centCrop这样的,所以imageview中的drawable不一定和imageview占有相同的位置和大小,那么怎么计算呢? ...

  7. 【FusionCharts学习-3】显示中国地图

    概述 使用FusionCharts显示中国地图 资源获取 地图下载地址:http://www.fusioncharts.com/download/maps/definition/   将下载的地图拷贝 ...

  8. css控制打印时只显示指定区域

      CreateTime--2017年9月26日08:16:04 Author:Marydon css控制打印时只显示指定区域 思路: 1.使用打印命令@media print: 2.控制执行打印命令 ...

  9. [原创.数据可视化系列之一]使用openlayers 3 显示聚合数据

    在地图上显示点数据是最常用的地图展示功能之一,但是如果很多点在地图上显示,或造成密密麻麻的一片,无法正常看清楚,这个时候,一般有两种解决方案,一种是根据数据重要程度进行标注,重要的显示大一些,不重要的 ...

随机推荐

  1. JAVAEE学习day04方法的定义和重载

    1.方法定义的格式 方法就是完成特定功能的代码块 修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...){ 方法体; return 返回值; } 修饰符: 初学者只需记住publ ...

  2. mongo请求超时

    no_cursor_timeout=True参数的使用 实例: import pymongo handler = pymongo.MongoClient().db.col with handler.f ...

  3. 记 2020蓝桥杯校内预选赛(JAVA组) 赛后总结

    目录 引言 结果填空 1. 签到题 2. 概念题 3. 签到题 4. 签到题 程序题 5. 递增三元组[遍历] 6. 小明的hello[循环] 7. 数位递增[数位dp] 8. 小明家的草地[bfs] ...

  4. JavaScript数组排序(冒泡排序、选择排序、桶排序、快速排序)

    * 以下均是以实现数组的从小到大排序为例 1.冒泡排序 先遍历数组,让相邻的两个元素进行两两比较 .如果要求小到大排:最大的应该在最后面,如果前面的比后面的大,就要换位置: 数组遍历一遍以后,也就是第 ...

  5. Web过滤器和监听器

    1.过滤器 1.1什么是过滤器 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...

  6. javaweb_HTML

    第一章:网页的构成 1.1概念:b/s与c/s 1.1.1 现在的软件开发的整体架构主要分为B/S架构与C/S架构: b/s:浏览器/服务器 c/s:客户端/服务器 客户端:需要安装在系统里,才可使用 ...

  7. github本地提交代码到远程仓库

    1.git工作状态: Workspace: 工作区  :等于平时放代码的地方 Index / Stage: 暂存区,临时存放你的改动,它只是一个文件,保存即将提交到文件列表信息 Repository: ...

  8. nop 配置阿里cdn 联通4g 页面显示不全 查看源代码发现被截断

    开发中遇见特别诡异的问题, 项目使用nop框架,pavilion主题,之后配置阿里cdn,然后在联通4g的情况下苹果手机网页显示不完全,nop首页和产品详情页都是如此,排查过程: 1.阿里cdn设置了 ...

  9. 自定义上下文菜单,contextmenu事件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 装numpy 环境:python3.4+ windows7 +64位系统

    机器学习实战python 因为图像处理的原因,初步学习机器学习,选用语言python,参考书籍<机器学习实战> 环境:python3.4+ windows7 +64位系统 首先,今天解决的 ...