OpenLayers3, 缩放、平移、复位操作

news2024/11/25 6:28:31

文章目录

  • 一、前言
  • 二、代码示例


一、前言

本文基于OpenLayers3实现地图缩放、平移和复位操作

二、代码示例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>缩放、平移、复位操作</title>
    <link href="../../libs/ol3/ol.css" rel="stylesheet" type="text/css"/>
    <script src="../../libs/ol3/ol.js" type="text/javascript"></script>
    <!--导入本页面外部样式表-->
    <link href="../../css/style.css" rel="stylesheet" type="text/css"/>
    <!--  引入第三方插件库 -->
    <script src="../../libs/jquery-1.11.2.min.js" type="text/javascript"></script>
    <style type="text/css">
        #mapCon {
            width: 100%;
            height: 90%;
            position: absolute;
        }
        #menu {
            float: left;
            position: absolute;
            bottom: 10px;
            z-index: 2000;
        }
        .tooltip-inner {
            white-space: nowrap;
        }
    </style>
</head>
<body>
<div class="ToolLib">
    <input type="button" class="ButtonLib" id="zoom-out" value="单击缩小"/>
    <input type="button" class="ButtonLib" id="zoom-in" value="单击放大"/>
    <input type="button" class="ButtonLib" id="panto" value="平移到中国"/>
    <input type="button" class="ButtonLib" id="restore" value="复位"/>
</div>
<div id="map" title="地图显示" style="padding: 5px">
</div>

<script type="text/javascript">
var tdktk = '****' // 天地图tk
  var TiandiMap_vec = new ol.layer.Tile({
    title: "天地图矢量图层",
    source: new ol.source.XYZ({
      url: "http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=" + tdktk,
      wrapX: false
    })
  });
  var Tianditu_cva = new ol.layer.Tile({
    title: "天地图矢量注记图层",
    source: new ol.source.XYZ({
      url: "http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=" + tdktk,
      wrapX: false
    })
  });
  //实例化Map对象加载地图
  var map = new ol.Map({
    //地图容器div的ID
    target: 'map',
    //地图容器中加载的图层
    layers: [TiandiMap_vec, Tianditu_cva],
    //地图视图设置
    view: new ol.View({
      //地图初始中心点
      center: [0, 0],
      //地图初始显示级别
      zoom: 2,
      //最小级别
      minZoom: 1,
      //最大级别
      maxZoom: 12
      //设置旋转角度
      //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);
    //地图放大一级
  };
  view.setZoom(zoom + 1);
  //平移功能(移到到武汉市)
  document.getElementById('panto').onclick = function () {
    //获取地图视图
    var view = map.getView();
    var wh = ol.proj.fromLonLat([105, 35]);
    //平移地图
    view.setCenter(wh);
    view.setZoom(5);
  };
  //复位功能(复位到初始状态)
  document.getElementById('restore').onclick = function () {
    //初始中心点
    view.setCenter(center);
    //初始旋转角度
    view.setRotation(rotation);
    //初始缩放级数
    view.setZoom(zoom);
  };

  //为内置的缩放控件与旋转控件添加tooltip提示信息
  $('.ol-zoom-in, .ol-zoom-out').tooltip({
    //tooltip在右侧显示
    placement: 'right'
  });
  //tooltip在左侧显示
  $('.ol-rotate-reset, .ol-attribution button[title]').tooltip({
    placement: 'left'
  });
</script>

</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2061492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【YOLO5 项目实战】(4)红外目标检测

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO5 项目实战】&#xff08;1&#xff09;YOLO5 环境配置与测试 【YOLO5 项目实战】&#xff08;2&#xff09;使用自己的数据集训练目标检测模型 【YOLO5 项目实战】&#xff08;3&#xff09;P…

12 程序控制语句:循环控制(while、do-while、for、多重嵌套循环、死循环)

目录 1 while 循环 1.1 基本语法 1.2 流程图 1.3 计数循环 1.3.1 实现原则 1.3.2 案例&#xff1a;循环输出语句 1.3.3 案例&#xff1a;循环输出数字 7~15 1.3.4 案例&#xff1a;倒序输出数字 56 ~ 43 1.3.5 案例&#xff1a;输出 10&#xff08;包括 10&…

SAP 预扣税配置步骤文档【Withholding Tax]

1. 配置预扣税的基本概念 预扣税是对某些支付进行扣除的税&#xff0c;可能适用于各种财务交易&#xff08;例如&#xff0c;供应商支付、股息支付等&#xff09;。预扣税通常包括几种类型&#xff0c;如个人所得税、企业所得税和其他税务种类。 2. 配置步骤 以下是一般的预…

Notion使用详解

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 Notion是一款集笔记、任务管理、知识库、文档协作等多功能于一体的生产力工具。其灵活性和可定制性使得它在个人和团队协作中都非常受欢迎。本教程将详细介绍如何使用Notion的基本功能&#xff0c;帮助你快速上手并充分…

Open3D mesh 模型切片

目录 一、概述 1.1简述 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始mesh 3.2切片后的mesh Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一…

Python高光谱遥感数据处理与机器学习深度应用

高光谱遥感信息对于我们认识世界具有重要意义。尽管大部分物质在人眼中看似无异&#xff0c;然而高光谱遥感的观察下&#xff0c;它们呈现出独特的"光谱特征"。这种能够窥见事物的"本质"能力具备着革命性的潜能&#xff0c;对精准农业、地球观测、艺术分析…

php与nginx的高速缓存

memcache PHP的加速模块 本部分是对php的内存加速的配置 1. memcache安装 609 phpize # 生成./configure文件610 yum install -y autoconf # 安装包611 ls612 phpize613 ls614 ./configure615 make && make install616 ls /usr/local/php/lib/php/extensions…

网络UDP报文详细解析

目录 一、简介二、详细介绍三、其他相关链接1、TCP报文段的详细图总结2、TCP三次握手和四次挥手详解3、socket通信原理及相关函数详细总结4、网络包IP首部详细解析 一、简介 本文主要介绍UDP报文格式。 二、详细介绍 UDP是一种无连接、不可靠的用户数据报协议&#xff0c;其…

【软件文档大全】软件开发常用文档(程序开发过程-实施-运维-安全-交付-资质-标书)

软件项目常用文档有哪些&#xff1f; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&#xff0c;产品需求规格说明书&#xff0c;需求调研计划&#xff0c;用户需求调查单&#xff0c;用户需求说明书&#xff0c;概要设计说明书&#xff0c;技术解决方案…

2.pandas--读取文件夹中所有excel文件进行合并

文章目录 代码对应的本地文件文件夹目录三个文件夹中的内容test01.xlsxtest02.xlsxtest03.xlsx 三个文件合并后得到merge.xlsx文件文件内容 生成result.xlsx文件内容 代码 import glob import pandas as pddf_merge pd.DataFrame() # 创建一个空的DataFramefolder_path &qu…

接口隔离原则(Interface Segregation Principle

接口隔离原则&#xff08;Interface Segregation Principle&#xff09; 基本介绍 1&#xff09;客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上2&#xff09;先看一张图 3&#xff09;类 A 通过接口 Interface1 依赖类 B&#…

五、3 单目操作符关系操作符

1、单目操作符 1&#xff09;&#xff01; 2&#xff09;& 3&#xff09;sizeof sizeof是操作符&#xff0c;不是函数 strlen是库函数&#xff0c;用来求字符串长度 4&#xff09;~ 5&#xff09; 6&#xff09;*&#xff08;与指针配合使用&#xff09; 7&#xff09;强…

新零售社交电商系统案例分析

新零售社交电商系统&#xff0c;是互联网、大数据、人工智能等技术与传统零售深度融合的产物。它通过整合线上线下渠道和数据&#xff0c;提供全方位、多渠道、个性化的购物体验。这一系统强调线上线下一体化&#xff0c;通过实时库存管理、智能推荐、无缝购物体验等功能&#…

【JavaEE】SpringBoot 统一功能处理:拦截器、统一数据返回与异常处理的综合应用与源码解析

目录 SpringBoot 统⼀功能处理拦截器拦截器快速⼊⻔拦截器详解拦截路径拦截器执⾏流程 登录校验定义拦截器注册配置拦截器 DispatcherServlet 源码分析(了解)初始化(了解) DispatcherServlet的初始化1. HttpServletBean.init()2. FrameworkServlet.initServletBean() WebApplic…

Leetcode JAVA刷刷站(75)颜色分类

一、题目概述 二、思路方向 在Java中&#xff0c;要实现这个排序算法&#xff0c;我们可以使用三指针的方法&#xff0c;也称作荷兰国旗问题&#xff08;Dutch National Flag Problem&#xff09;。这个方法使用三个指针来分别追踪数组中小于、等于和大于中间值的元素的边界。在…

未设置辅助手机的谷歌账号停用,申诉回来后登录需要手机验证,验证两次后成功恢复。

谷歌账号被停用后怎么办&#xff1f;果断申诉&#xff0c;申诉方法和模板等见我前面的文章或视频。 通常申诉以后1-2天会反馈结果&#xff0c;而且大部分&#xff08;80%以上&#xff09;会第一次就被审批通过&#xff0c;如下图所示&#xff1a; 当收到上面这样的邮件&#x…

OSError:[WinError -2146959355] 服务器运行失败

其实就是 找不到指定的程序&#xff0c;看报错&#xff0c;提示返回失败&#xff0c;最后通过设置wps由系统启动&#xff0c;解决报错 首先打开电脑&#xff0c;找到桌面上的【WPS文档】&#xff0c;右键&#xff0c;在打开的菜单中&#xff0c;选择【属性】选项 在弹出的属性…

GPT-4o: 引领多模态AI识别技术的革命【文末附GPT-4o教程】

GPT-4o简介 在人工智能技术的飞速发展中&#xff0c;图像识别已成为其核心能力之一。随着技术的不断演进&#xff0c;AI的图像处理能力已经从简单的内容识别&#xff0c;发展到能够将视觉信息转化为深入的文字描述。OpenAI最新发布的GPT-4o模型&#xff0c;正是这一进步的杰出…

AI + 3D 机器人视觉领域综合资源库

随着人工智能技术的不断发展,3D 机器人视觉领域已经成为了一个备受关注的研究方向。在这个领域中,研究者们致力于探索如何让机器人更好地理解三维空间,从而实现更加智能和灵活的操作。为了方便大家学习和研究,这里介绍一个全面的资源库——Awesome Robotics 3D,它汇集了最…

Bootstrap UI 编辑器

以下是 15 款最好的 Bootstrap 编辑器或者是在线编辑工具。 1. Bootstrap Magic 这是一个 Bootstrap 主题生成器&#xff0c;使用最新的 Bootstrap 3 版本和 Angular JS 版本&#xff0c;提供一个鲜活的用户修改预览。它包括了各种各样的导入&#xff0c;一个颜色选择器和智能…