OpenLayer3自定义测量控件MeasureTool


Posted in Javascript onSeptember 28, 2020

一直苦恼于OpenLayer3没有现成的测量工具,看了歪果仁做的图层控件,于是自己结合了官网上的measure实例和歪果仁的模板鼓捣出了一个测量工具控件。

下载地址

描述

基于Openlayers3所做的自定义控件,支持测量距离(line)和测量面积(area)以及geodesic测量

  • 加载css和js文件后直接引用即可
  • 使用JavaScript原生编写,不需要引入JQuery

使用效果如图:

OpenLayer3自定义测量控件MeasureTool

使用方式

在html页面中引入OpenLayer3的css和js文件后再加入下载的measuretool.css和measuretool.js

<link rel="stylesheet" href="measureTool.css" type="text/css">
<script type="text/javascript" src="measureTool.js"></script>

之后在初始化map之后加入MeasureTool工具:

var MeasureTool = new ol.control.MeasureTool({
 sphereradius : 6378137,//sphereradius
});
map.addControl(MeasureTool);

其中的参数sphereradius 是用来支持geodesic测量设置球体半径的,可根据不同的模型设置不同的半径大小,默认大小为6378137,在引入时也可以不传入该参数。

注:测量工具中的checkbox选中为使用geodesic测量,未选中为不使用geodesic测量,默认为未选中。

完整示例html代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <meta name="author" content="giser_yugang@163.com" />
 <title>ol3-MeasureTool使用示例(example)</title>
 <link rel="stylesheet" href="https://openlayers.org/en/v3.19.1/css/ol.css" type="text/css">
 <script src="https://openlayers.org/en/v3.19.1/build/ol.js"></script>
 <link rel="stylesheet" href="measureTool.css" type="text/css">
 <script type="text/javascript" src="measureTool.js"></script>

 <style>
  #map{
  height: 80%;
  width: 90%;
  }

  </style>
 </head>
 <body>
 <div id="map" class="map"></div>

 <script type="text/javascript">
  var map = new ol.Map({
  layers: [
   new ol.layer.Tile({
   source: new ol.source.OSM()
   })
  ],
  target: 'map',
  view: new ol.View({
   center: [11575000, 3602500],
   zoom: 14
  })
  });

  var MeasureTool = new ol.control.MeasureTool({
  sphereradius : 6378137,//sphereradius
  });
  map.addControl(MeasureTool);
 </script>

 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
Mar 08 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
jQuery Ajax 加载数据时异步显示加载动画
Aug 01 Javascript
js设置文字颜色的方法示例
Dec 30 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
JavaScript canvas实现围绕旋转动画
Nov 18 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
JS sort方法基于数组对象属性值排序
Jul 10 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
Sep 01 Javascript
Openlayers实现地图全屏显示
Sep 28 Javascript
Openlayers实现距离面积测量
Sep 28 #Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 #Javascript
JS sort排序详细使用方法示例解析
Sep 27 #Javascript
vue中实现点击变成全屏的多种方法
Sep 27 #Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 #Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 #Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
Sep 27 #Javascript
You might like
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
python切换hosts文件代码示例
2013/12/31 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
Python中几种导入模块的方式总结
2017/04/27 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
办公室前台岗位职责范本
2013/12/10 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
2014年母亲节寄语
2014/05/07 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
幼师求职自荐信
2015/03/26 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
React实现动效弹窗组件
2021/06/21 Javascript
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
python可视化之颜色映射详解
2021/09/15 Python
日元符号 ¥
2022/02/17 杂记