Openlayers实现地图的基本操作


Posted in Javascript onSeptember 28, 2020

本文实例为大家分享了Openlayers实现地图基本操作的具体代码,供大家参考,具体内容如下

1、新建一个html页面,引入ol.js和ol.css文件,然后在body中创建一个Div标签和4个Button按钮,用来实现地图的放大、缩小、平移等功能;

2、代码实现

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
 <script src="../lib/ol/ol.js"></script>
 <link href="../css/ol.css" rel="stylesheet" />
 <style type="text/css">
 #menu
 {
 float : left;
 position : absolute;
 bottom : 10px;
 font-size : 20px;
 z-index : 2000;
 }
 </style>
 <script type="text/javascript">
 window.onload = function () {
 //实例化map对象并加载地图
 var map = new ol.Map({
 //存放地图目标容器
 target: 'map',
 //加载图层
 layers: [
 //新建一个瓦片地图图层
 new ol.layer.Tile({
 //瓦片地图数据源
 source: new ol.source.OSM()
 })
 ],
 //初始化视图
 view: new ol.View({
 //视图中心点坐标
 center: [12550000, 3680000],
 //缩放等级
 zoom: 8,
 //最小缩放等级
 minZoom: 6,
 //最大缩放等级
 maxZoom: 12,
 //地图旋转30度
 rotation: Math.PI/6
 })
 });
 
 //获取地图的初始化信息
 var view = map.getView();
 var zoom = view.getZoom();
 var center = view.getCenter();
 var rotation = view.getRotation();
 
 //地图缩小
 document.getElementById("zoom-out").onclick = function () {
 //获取地图当前视图
 var view = map.getView();
 //获取地图当前缩放等级
 var zoom = view.getZoom();
 //每单击一次地图的缩放等级减一,以实现地图缩小
 view.setZoom(zoom - 1);
 };
 
 //地图放大
 document.getElementById("zoom-in").onclick = function () {
 //获取地图当前视图
 var view = map.getView();
 //获取地图当前缩放等级
 var zoom = view.getZoom();
 //每单击一次地图的缩放等级加一,以实现地图放大
 view.setZoom(zoom + 1);
 };
 
 //地图平移
 document.getElementById("panto").onclick = function () {
 //获取地图当前视图
 var view = map.getView();
 //指定要平移到的位置的坐标
 var position = ol.proj.fromLonLat([115.2341, 32.4652]);
 //重设地图中心点,实现平移
 view.setCenter(position);
 };
 
 //地图重置
 document.getElementById("restore").onclick = function () {
 //重置中心点位置为初始化位置
 view.setCenter(center);
 //重置旋转角度为初始化角度
 view.setRotation(rotation);
 //重置缩放等级为初始化缩放等级
 view.setZoom(zoom);
 };
 }
 </script>
</head>
<body>
 <div id="map">
 <div id="menu">
 <button id="zoom-out">缩小</button>
 <button id="zoom-in">放大</button>
 <button id="panto">平移至...</button>
 <button id="restore">重置</button>
 </div>
 </div>
</body>
</html>

3、运行结果

初始化界面

Openlayers实现地图的基本操作

单击缩小按钮,实现地图缩小

Openlayers实现地图的基本操作

单击放大按钮,实现地图放大

Openlayers实现地图的基本操作

单击平移至按钮,地图平移到指定的位置(阜阳附近)

Openlayers实现地图的基本操作

单击地图右上角的箭头按钮,使地图无旋转

Openlayers实现地图的基本操作

Openlayers实现地图的基本操作

单击重置按钮,地图回到初始状态

Openlayers实现地图的基本操作

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript之querySelector和querySelectorAll使用介绍
Dec 20 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
js弹出div并显示遮罩层
Feb 12 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
php简单数据库操作类的封装
Jun 08 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
vuejs父子组件之间数据交互详解
Aug 09 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
JS图片懒加载技术实现过程解析
Jul 27 Javascript
vue使用element-ui按需引入
May 20 Vue.js
TypeScript 运行时类型检查补充工具
Sep 28 #Javascript
基于openlayers实现角度测量功能
Sep 28 #Javascript
OpenLayer学习之自定义测量控件
Sep 28 #Javascript
Vue中父子组件的值传递与方法传递
Sep 28 #Javascript
JSONObject与JSONArray使用方法解析
Sep 28 #Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 #Javascript
Openlayers实现距离面积测量
Sep 28 #Javascript
You might like
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
简单的python后台管理程序
2017/04/13 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
使用python编写监听端
2018/04/12 Python
python获取代理IP的实例分享
2018/05/07 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Python语言进阶知识点总结
2019/05/28 Python
通过实例了解python property属性
2019/11/01 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Python用Jira库来操作Jira
2020/12/28 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
社区七一党员活动方案
2014/01/25 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
协议书与合同的区别
2014/04/18 职场文书
安全生产专项整治方案
2014/05/06 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书