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获取父节点方法
Aug 20 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
自己编写的类似JS的trim方法
Oct 09 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
Web开发必知Javascript技巧大全
Feb 23 Javascript
AngularJS学习笔记之依赖注入详解
May 16 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
基于Bootstrap分页的实例讲解(必看篇)
Jul 04 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
vue路由跳转传参数的方法
May 06 Javascript
微信小程序实现图片选择并预览功能
Jul 25 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中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python得到windows自启动列表的方法
2018/10/14 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
C++的几个面试题附答案
2016/08/03 面试题
小学生自我鉴定
2013/10/12 职场文书
小学生评语大全
2014/04/18 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
三下乡个人总结
2015/03/04 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书