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 相关文章推荐
基于jquery的用鼠标画出可移动的div
Sep 06 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
display和visibility的区别示例介绍
Feb 26 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
May 27 Javascript
浅谈json取值(对象和数组)
Jun 24 Javascript
javascript ES6中箭头函数注意细节小结
Feb 17 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
May 30 Javascript
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
浅谈es6语法 (Proxy和Reflect的对比)
Oct 24 Javascript
浅谈react性能优化的方法
Sep 05 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
Vue中component标签解决项目组件化操作
Sep 04 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集成百度Ueditor 1.4.3
2014/11/23 PHP
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
班级学雷锋活动总结
2014/06/26 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL