Openlayer 3 的画图测量面积
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>画图测量面积</title><link rel="stylesheet" href="css/ol.css"><script src="js/jquery-1.11.3.js"></script><script src="js/ol.js"></script><style>#map{width:100%;height:100%;}.tooltip {position: relative;background: rgba(0, 0, 0, 0.5);border-radius: 4px;color: white;padding: 4px 8px;opacity: 0.7;white-space: nowrap;}.tooltip-measure {opacity: 1;font-weight: bold;}.tooltip-static {background-color: #ffcc33;color: black;border: 1px solid white;}.tooltip-measure:before,.tooltip-static:before {border-top: 6px solid rgba(0, 0, 0, 0.5);border-right: 6px solid transparent;border-left: 6px solid transparent;content: "";position: absolute;bottom: -6px;margin-left: -7px;left: 50%;}.tooltip-static:before {border-top-color: #ffcc33;}</style> </head> <body><div id="map"></div><script>var map=new ol.Map({target:'map',layers:[new ol.layer.Tile({source:new ol.source.OSM()})],view:new ol.View({center:[0,0],zoom:2})});//初始化地图var drawing_layer = new ol.layer.Vector({source: new ol.source.Vector(),style:new ol.style.Style({fill:new ol.style.Fill({color:"rgba(225,225,225,.2)"}),stroke:new ol.style.Stroke({color:"#ffcc33",width:2}),image:new ol.style.Circle({radius:7,fill:new ol.style.Fill({color:"#ffcc33"})})})});// 画面积计算的图层 map.addLayer(drawing_layer);var polygon_drawing_tool = new ol.interaction.Draw({source: drawing_layer.getSource(),type: 'Polygon',style: new ol.style.Style({fill: new ol.style.Fill({color: '#ffcc33'}),stroke: new ol.style.Stroke({color: '#ffcc33',lineDash: [10, 10],width: 3}),image: new ol.style.Circle({radius: 5,stroke: new ol.style.Stroke({color: 'rgba(0, 0, 0, 0.7)'}),fill: new ol.style.Fill({color: '#ffcc33'})})})});//绘图控件对象var listener;//绑定交互绘制工具开始绘制事件var measureTooltipElement;polygon_drawing_tool.on('drawstart',function(evt) {sketch = evt.feature;var tooltipCoord = evt.coordinate;listener = sketch.getGeometry().on('change', function(evt) {var geom = evt.target;var output = formatArea(/** @type {ol.geom.LineString} */ (geom));tooltipCoord = geom.getLastCoordinate();createMeasureTooltip();measureTooltipElement.innerHTML = output;measureTooltip.setPosition(tooltipCoord);});}, this);polygon_drawing_tool.on('drawend',function() {measureTooltipElement.className = 'tooltip tooltip-static';measureTooltip.setOffset([0, -7]);sketch = null;measureTooltipElement = null;createMeasureTooltip();ol.Observable.unByKey(listener);}, this);var formatArea = function(polygon) {var area=polygon.getArea();var output;if(area>10000){output=(Math.round(area/1000000*100)/100)+' '+'km<sup>2</sup>';}else{output=(Math.round(area*100)/100)+' '+'m<sup>2</sup>';}return output;};function createMeasureTooltip() {if (measureTooltipElement) {measureTooltipElement.parentNode.removeChild(measureTooltipElement);}measureTooltipElement = document.createElement('div');measureTooltipElement.className = 'tooltip tooltip-measure';measureTooltip = new ol.Overlay({element: measureTooltipElement,offset: [0, -15],positioning: 'bottom-center'});map.addOverlay(measureTooltip);}$(document).ready(function() {map.addInteraction(polygon_drawing_tool);});</script> </body> </html>
转载于:https://www.cnblogs.com/mina-huojian66/p/6143880.html
Openlayer 3 的画图测量面积相关推荐
- openlayer测量角度、测量面积、测量长度,直接可以使用,非常完全。
openlayer测量角度.测量面积.测量长度 代码基于https://blog.csdn.net/qq_39262215/article/details/109214946 增加角度测量功能,并对提 ...
- arcgis测量面积长度
//放大 function zoomBig() { map.setZoom(map.getZoom()+1); }; // 缩小 function zoomSmall() { map.setZoom( ...
- 可视化场景内任意绘制多边形并测量面积
一般测量功能主要表现在两方面,一是测量距离,二是测量面积.面积的测量是根据鼠标绘制的范围,通过地理坐标系的转换而计算出实际面积大小,距离的测量是根据鼠标在地图上绘制的点,实时计算出两点之间的实际距离. ...
- 地图测量面积工具app_全站仪的使用面积测量
测量与地图制作见习 全站仪使用 11 / 20 #2020 # 全 站仪是全站型电子速测仪的简称,是电子经纬仪.光学测距仪及微处理器相结合的光电仪器.其可直接测量距离.角度.坐标,根据三角函数原理,已 ...
- Leaflet中原生方式实现测量面积
场景 Leaflet中原生方式实现测距: Leaflet中原生方式实现测距_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面实现测量距离的基础上,实现测量面积效果如下 注: 博客: ...
- 【Cesium】【vue】空间查询——量距(测量距离)、量面(测量面积)
目录 一.量距 二.量面 三.清除测量 四.页面结构 注意 参考 一.量距 // 距离测量measureLineSpace() {this.removeMeasure();let _this = th ...
- cesium面积计算_GitHub - BulletYuan/bulletCesium: GIS可视化——基于Cesiumjs的一些工具类,测量距离、测量面积。持续更新......
bulletCesium created at 2018.8.13 基于Cesiumjs的一些工具类,持续更新. lastest - 2018.8.24 - bulletCesium-1.1.1 增加 ...
- 可测量面积的谷歌地球卫星软…
原文地址:可测量面积的谷歌地球卫星软件(Google Earth Plus 6.0.1.2032 Beta)作者:古道残车 很多人用过谷歌地球卫星软件,作为一款免费的实用软件,尤其是在方案设计和用地面 ...
- 比百度地图.api更方便的测量面积方法
最近呢,我在写一篇关于可达性的小论文,需要测量n块地方的面积,可是博主我又不是测绘专业的,只好查找使用百度地图来测量面积的方法,最终找到了一个利用百度地图测面积的小程序.可是,这个程序却没有搜索功能, ...
最新文章
- 工程师如何从技术转型做管理?
- Spark配置属性整理(非常全面)
- 华为笔记本Win11更新时由于驱动问题引起蓝牙鼠标经常断开问题解决方法
- Python机器学习:梯度下降法007使用scikit中的随机梯度下降法
- 李飞飞等6名华人入选ACM 2018 Fellow,无国内学者入选
- tapestry5 中文文档
- android 通过platform.pk8,platform.x509.pem生成jks签名文件
- 象棋 计算机配置,中国象棋电脑应用规范(五)
- 单点登录sso原理及代码实现
- PPT中表格的插入与结构调整
- python做估值模型_理解债券估值中的摊销/摊余成本,利用EXCEL+Python估值建模
- element ui 表格头部内容不换行
- NewStarCTF 公开赛赛道 WEEK2 pwn 砍一刀
- 【漏洞复现】CVE-2020-0796永恒之黑漏洞复现
- 学习笔记——神经网络压缩
- 开源软件 TOP 100
- 【KAFKA】kafka可视化工具kafkaTool 免费下载
- xvfb运行java脚本_使用xvfb-run(Selenium WebDriver)发行运行Firefox的问题 - java
- 【前端】相对定位实现十字居中(上下左右居中)
- 【老陈说事儿】【最科学最全面最详细】真正入行IT需要什么资质?
热门文章
- promise catchfinally
- python怎么用pip下载_python怎么用pip安装包
- 一点感想及AIX如何快速入门到精通(转)
- Docker学习总结(41)——三个技巧,将Docker镜像体积减小90%
- 项目管理学习总结(12)——世界上最好的十条研发管理经验
- App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程
- python自动控制库_python PyAUtoGUI库实现自动化控制鼠标键盘
- 后台模拟页面登陆_模拟炒股软件支付宝同花顺都可以快速体验炒股
- discuz mysql 优化_Discuz X系统:【效率机制】-【MySQL 优化】详解
- php返回ajax必须是数组,ajax返回数组,页面接收不到数据