openlayers-统计图显示(中国区域高亮)
openlayers版本: v3.19.1-dist
统计图效果:
使用浏览器:谷歌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-统计图显示(中国区域高亮)的更多相关文章
- ArcMap制图_显示指定区域地图内容
摘要:有一张完整的中国地图,有时仅要求针对某一特定区域制图,那么如何在不进行裁剪的情况下仅显示该区域范围的要素内容? 步骤: 1.打开ArcMap,加载完整的中国地图: 2.将要显示的区域范围制作成一 ...
- CSS---解决内容过多就会出文本溢出(显示在区域外面,不换行的情况)
当我们设置我的的div,或者其它文本框固定宽度之后,文本内容过多就会出文本溢出(显示在区域外面,不换行的情况). 这时我们可以使用Css中的几个属于来解.有以下的三个属于可以解决问题: 1,word- ...
- C# 使用winForm的TreeView显示中国城镇四级联动
直接上代码吧,这里 MySql.Data.MySqlClient;需要到mysql官网下载mysql-connector-net-6.9.8-noinstall.zip 访问密码 6073 usi ...
- Django设置TIME_ZONE和LANGUAGE_CODE为中国区域
Django默认的timezone是 TIME_ZONE = 'America/Chicago' LANGUAGE_CODE = 'en-us' 设置为中国区域: TIME_ZONE = 'Asia/ ...
- 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注
原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...
- 得到ImageView中drawable显示的区域的计算方法
我们都知道Imageview中有不同的拉伸比率,比如fitStart,centCrop这样的,所以imageview中的drawable不一定和imageview占有相同的位置和大小,那么怎么计算呢? ...
- 【FusionCharts学习-3】显示中国地图
概述 使用FusionCharts显示中国地图 资源获取 地图下载地址:http://www.fusioncharts.com/download/maps/definition/ 将下载的地图拷贝 ...
- css控制打印时只显示指定区域
CreateTime--2017年9月26日08:16:04 Author:Marydon css控制打印时只显示指定区域 思路: 1.使用打印命令@media print: 2.控制执行打印命令 ...
- [原创.数据可视化系列之一]使用openlayers 3 显示聚合数据
在地图上显示点数据是最常用的地图展示功能之一,但是如果很多点在地图上显示,或造成密密麻麻的一片,无法正常看清楚,这个时候,一般有两种解决方案,一种是根据数据重要程度进行标注,重要的显示大一些,不重要的 ...
随机推荐
- C++ 小练习,一个整型数字的处理
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //输入一个任意位数的int整数,并判断该整数的位数,并输出每一位数(每个数字中间用空 ...
- 小白的docker极简入门(二)、5分钟教你玩转docker安装
0-前言 上一篇中,我们已经安装后Linux了,我们需要在Linux下安装docker,然后才能在docker中安装和部署各种应用 同样,5分钟教你完成docker正确安装和使用, 不是纸上谈兵,不是 ...
- Java的反射基础技术
今天本人给大家讲解一下Java的反射基础技术,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!! 什么是反射? 反射它是根据字节码文件可以反射出类的信息.字段. ...
- 【Weiss】【第03章】练习3.2
[练习3.2] 给你一个链表L和另一个链表P,它们包含以升序排列的整数.操作printlots(L,P)将打印L中那些由P所指定的位置上的元素. 例如,如果p=1,3,4,6,那么,L的第一.第三.第 ...
- [Alg] 文本匹配-单模匹配与多模匹配
实际场景: 网站的用户发了一些帖子S1, S2,...,网站就要审核一下这些帖子里有没有敏感词. 1. 如果网站想查一下帖子里有没有一个敏感词P,这个文本匹配要怎么做更快? 2. 如果网站想查一下帖子 ...
- Scikit-Learn 源码研读 (第二期)基类的实现细节
目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...
- 【原创】面试官:谈谈你对mysql联合索引的认识?
引言 本文预计分为两个部分: (1)联合索引部分的基础知识 在这个部分,我们温习一下联合索引的基础 (2)联合索引部分的实战题 在这个部分,列举几个我认为算是实战中的代表题,挑出来说说. 正文 基础 ...
- python+selenium之悠悠博客学习笔记
1 Python之自动化测试框架selenium学习 offical website 悠悠之selenium浅谈·博客园 悠悠软件测试系列 1.1 基础环境准备 1.1.1 python包下载工具的安 ...
- [SQL]CASE WHEN的用法及总结
CASE WHEN的用法及总结 一.已知数据按照另外一种方式进行分组,分析 二.用一个SQL语句完成不同条件的分组 三.在Check中使用Case函数 四.根据条件有选择的UPDATE 五.两个表数据 ...
- sqoop面试题
1.1 Sqoop 在工作中的定位是会用就行1.1.1 Sqoop导入数据到hdfs中的参数 /opt/module/sqoop/bin/sqoop import \ --connect \ # 特殊 ...