OpenLayers可以对整个矢量图层统一设置样式,也可以单独对某个要素设置样式,本文介绍对整个矢量图层设置样式。

OpenLayers的ol.style.Style类用于设置样式,它需要结合另外三个类ol.style.Image、ol.style.Stroke、ol.style.fill分别设置点或圆的样式、边界线的样式、填充样式,另外ol.style.Text类用于设置要素注记。

来看一个示例:

样式效果:

graphicStyle.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>设置几何图形样式</title><link rel="stylesheet" href="../v5.3.0/css/ol.css" /><script src="../v5.3.0/build/ol.js"></script>
</head>
<body><div id="map"></div><label>Shape type &nbsp;</label><select id="type"><option value="Point">Point</option><option value="LineString">LineString</option><option value="Polygon">Polygon</option><option value="Circle">Circle</option><option value="Square">Square</option><option value="Box">Box</option><option value="None">None</option></select><script>let vectorSource = new ol.source.Vector();let vectorLayer = new ol.layer.Vector({source: vectorSource,// 设置图层样式style: new ol.style.Style({// 将点设置成圆形样式image: new ol.style.Circle({// 点的颜色fill: new ol.style.Fill({color: '#F00'}),// 圆形半径radius: 5}),// 线样式stroke: new ol.style.Stroke({color: '#0F0',lineCap: 'round',       // 设置线的两端为圆头width: 5                }),// 填充样式fill: new ol.style.Fill({color: '#00F'})})});let map = new ol.Map({target: 'map',                          layers: [new ol.layer.Tile({                 // 瓦片图层source: new ol.source.OSM()     // OpenStreetMap数据源}),vectorLayer],view: new ol.View({                     // 地图视图projection: 'EPSG:3857',center: [0, 0],zoom: 0})});let typeSelect = document.getElementById('type');let draw;function addInteraction(){let type = typeSelect.value;if(type !== 'None'){let geometryFunction;switch(type){   case "Square": type = 'Circle';// 生成规则的四边形的图形函数geometryFunction = ol.interaction.Draw.createRegularPolygon(4);break;case 'Box':type = 'Circle';// 生成盒形状的图形函数geometryFunction = ol.interaction.Draw.createBox();break;default:break;}// 初始化Draw绘图控件console.log(type);draw = new ol.interaction.Draw({source: vectorSource,type: type,geometryFunction: geometryFunction});// 将Draw绘图控件加入Map对象map.addInteraction(draw);}}typeSelect.addEventListener('change', () => {// 移除Draw绘图控件map.removeInteraction(draw);addInteraction();});addInteraction();</script>
</body>
</html>

openlayers 可以实现3d地图效果吗_OpenLayers教程:图形绘制之设置图形的样式相关推荐

  1. openlayers 可以实现3d地图效果吗_OpenLayers教程:地图标注

    地图标注是将空间位置点与该点的信息相关联,通过图标.文字等形式把点相关的信息展现到地图上. 随便打开一个电子地图就可以看到许多标注: 可以说地图没有了标注就丧失了一半信息,甚至是全部信息! 地图标注的 ...

  2. html怎么制作3D字体,用CSS3制作3D文字效果代码实例教程

    这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果. 阿里西西web开发网为大 ...

  3. 使用echarts生成漂亮的3D地图

    使用echarts生成漂亮的3D地图 echarts是非常好用的图表插件,本文使用echarts来生成一个漂亮的3D地图 效果 准备资料 第三方插件 <script type="tex ...

  4. 地图定位之3D 地图

    在 iOS7以后,手机上就可以实现3D 地图效果了.其实,实现3D 地图效果并不难,就是几行代码的事. 在 iOS7中引入了一个新的 MKMapCamera 类,它将一个 MKMapCamera 对象 ...

  5. 原生 js 实现类 3d 地图大屏展示自动高亮轮播、显示悬浮提示 tootip 的方案:svg + popper.js 定位引擎

    要实现的效果 如下图,3d 地图高亮自动轮播,展示白云区各个镇街的人口数局. 原由 为什么想到这个方案,是因为我在用 echarts-gl 实现 3d 地图效果的过程中,我发现通过 dispatchA ...

  6. openlayers 地图上加图标_OpenLayers教程:地图标注

    地图标注是将空间位置点与该点的信息相关联,通过图标.文字等形式把点相关的信息展现到地图上. 随便打开一个电子地图就可以看到许多标注: 可以说地图没有了标注就丧失了一半信息,甚至是全部信息! 地图标注的 ...

  7. echarts——实现3D地图+3D柱状图 效果——粗糙代码记录——技能提升

    最近看到同事在弄下面的这个图,这个图是从网上看到的,是某个网站的收费项目: 收费模板:¥29.9元购买,且必须是高级版+尊享版才能够购买这个... 死贵!!! 所以,最后的决定是通过echarts中的 ...

  8. Echarts实现3d 地图实现飞线效果

    Echarts实现3d 地图实现飞线效果 注意:重点关注data中的数据格式 在lines3D中symbol不能设置指定样式,echarts官网也没有这个参数,所以对于lines3D飞线如何实现飞机航 ...

  9. echarts:实现3D地图版块叠加动效散点+轮播高亮效果

    需求描述 如下图所示,展示3D效果的地图版块,并叠加显示动效散点: 实现思路 首先是3D地图版块效果的实现,可以参考广州3D地图:而动效散点的实现,可以参考地图发散分布. 这里再提一个经过尝试并不行的 ...

最新文章

  1. IJCAI 2020开幕,杰出论文奖、卓越研究奖、约翰·麦卡锡奖等8项大奖公布 | AI日报...
  2. Web应用NLB群集
  3. 使用R画桑基图(流程图)
  4. 图解WebGLThree.js工作原理【转】
  5. python发邮件11002_Python学习笔记(二)——数字类型的运算及其输入与格式化输出...
  6. 盖茨透露自己曾犯下4000亿美元的错:给了安卓机会
  7. 指纹识别开源竞赛启动,5000张指纹图像匹配
  8. linux卸载htop,linux下 htop 工具简介
  9. JavaScript function函数种类
  10. 【操作系统】输入输出系统(下下)-思维导图0.0
  11. [转载]Informix平安特征庇护数据的详细方法
  12. q 与 blockquote 的区别
  13. web python 取代js_web前端:JavaScript,只有你想不到
  14. 【SAP】 SAP自定义权限对象
  15. 【MATLAB】改变坐标轴范围
  16. Auto.js 实现钉钉实时抢红包
  17. 没有网络电脑计算机还能用吗,电脑连不上公用网络怎么办
  18. 用ASP.Net实现将Word文档转换为PDF格式
  19. 公众号留言板怎么开通
  20. 施工现场平面布置及其案例说明

热门文章

  1. 寄娱于学第2天——PHP骰子游戏篇--优化
  2. Mozilla 扩展开发环境设置
  3. 番茄花园该打,反垄断更该升级
  4. 方正魏新:我们走的产业路线比联想高端
  5. FFmpeg命令行map参数选择音视频流
  6. grep、egrep、fgrep的用法与特性详解
  7. C/C++程序从编译到最终生成可执行文件的过程分析
  8. 创智播客 大数据_华中人工智能主题产业园——武汉融创智谷
  9. Matlab常用函数流水账
  10. linux系统调用理解之摘录(2)