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 弹出层插件实现代码
Oct 24 Javascript
基于jquery的跟随屏幕滚动代码
Jul 24 Javascript
Jquery 动态生成表格示例代码
Dec 24 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
jQuery模拟淘宝购物车功能
Feb 27 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
浅谈vue路径优化之resolve
Oct 13 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
Oct 25 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 Javascript
解决layui的input独占一行的问题
Sep 10 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静态调用非静态方法的应用分析
2013/05/02 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP单例模式详细介绍
2015/07/01 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
基于python requests库中的代理实例讲解
2018/05/07 Python
设置python3为默认python的方法
2018/10/31 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
女性时尚在线:IVRose
2019/02/23 全球购物
办公室主任主任岗位责任制
2014/02/11 职场文书
高中家长寄语
2014/04/02 职场文书
内勤主管岗位职责
2014/04/03 职场文书
车辆转让协议书
2014/04/15 职场文书
商铺门前三包责任书
2014/07/25 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
模范班主任事迹材料
2014/12/17 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
领导干部考核评语
2015/01/04 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
严以用权学习心得体会
2016/01/12 职场文书