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下异步提交表单 异步跨域提交表单
Nov 17 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
May 03 Javascript
jQuery实现预加载图片的方法
Mar 17 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
javascript弹出拖动窗口
Aug 11 Javascript
JS表格组件神器bootstrap table详解(基础版)
Dec 08 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
JS实现可用滑块滑动的缓动图代码
Sep 01 Javascript
layui-select动态选中值的例子
Sep 23 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文件锁定写入实例解析
2014/07/14 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
JavaScript 高级语法介绍
2009/06/15 Javascript
不安全的常用的js写法
2009/09/15 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python实现二维数组输出为图片
2018/04/03 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
python用for循环求和的方法总结
2019/07/08 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
技术经济专业求职信
2014/09/03 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
房产分割协议书范文
2014/11/21 职场文书
大学生支教感言
2015/08/01 职场文书
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL