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插件jbox使用iframe关闭问题
Feb 09 Javascript
javascript 变量作用域 代码分析
Jun 26 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
EASYUI TREEGRID异步加载数据实现方法
Aug 22 Javascript
浅谈JavaScript function函数种类
Dec 29 Javascript
javascript中Object使用详解
Jan 26 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
JS锚点的设置与使用方法
Sep 05 Javascript
vue-resource 拦截器使用详解
Feb 21 Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 Javascript
vue中多路由表头吸顶实现的几种布局方式
Apr 12 Javascript
谈谈node.js中的模块系统
Sep 01 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中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python 登录网站详解及实例
2017/04/11 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
详解django中使用定时任务的方法
2018/09/27 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
python开发入门——列表生成式
2020/09/03 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
销售辞职报告范文
2014/01/12 职场文书
销售业务员岗位职责
2014/01/29 职场文书
酒店销售经理岗位职责
2014/01/31 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
红色革命电影观后感
2015/06/18 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis