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 相关文章推荐
利用js动态添加删除table行的示例代码
Dec 16 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
深入理解ES6的迭代器与生成器
Aug 19 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
vue+axios实现post文件下载
Sep 25 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
Vue 实现拨打电话操作
Nov 16 Javascript
k8s node节点重新加入master集群的实现
Feb 22 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+MySQL的聊天室设计
2006/10/09 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
php curl模拟post请求小实例
2013/11/13 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python 调用HBase的简单实例
2016/12/18 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
python如何爬取网页中的文字
2020/07/28 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
自立自强的名人事例
2014/02/10 职场文书
综合内勤岗位职责
2014/04/14 职场文书
励志演讲稿范文
2014/04/29 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
西安大雁塔导游词
2015/02/10 职场文书
公司慰问信范文
2015/03/23 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
心理健康教育主题班会
2015/08/13 职场文书
python实现简单的聊天小程序
2021/07/07 Python