示例功能

    该示例底图显示一个天地图世界地图,实现显示地图域当前信息功能。

示例实现

    本示例需要使用 【include-openlayers-local.js】 ,通过 ol.view()类的 getResolution()方法实现显示当前分辨率功能;通过 ol.map()类的方法实现显示当前地图范围功能;通过 ol.map()类的 getView()方法实现显示当前视口范围功能;

实现步骤

Step 1. 引用开发库:
    本示例通过本地离线 【include-openlayers-local.js】 脚本引入开发库;

Step 2. 创建地图容器:
    创建id="mapCon"的 div 作为地图容器,并设置其样式;

Step 3. 创建地图容器:
    创建地图对象,设置地图的必要参数,将 layers 属性设置为天地图地图图层;

Step 4. 获取当前视图分辨率:
    通过 ol.view()类的 getResolution()方法实现显示当前分辨率功能;

Example:

    //获取最大分辨率var view = map.getView()var curResolution = view.getResolution()

Step 5. 获取当前地图视窗范围:
    通过 ol.map()类的 getSize()方法实现显示当前地图的视窗范围(单位:像素);

Example:

    //获取视窗范围var viewSize = map.getSize()var viewStr = viewSize[0] + ',' + viewSize[1]

Step 6. 获取当前地图范围:
    通过 ol.view()类的 calculateExtent(opt_size)方法实现显示当前地图范围功能;

Example:

    //获取地图范围var ex = view.calculateExtent(viewSize)var mapstr = Number(ex[0]).toFixed(0) + ',' + Number(ex[1]).toFixed(0) + ',' + Number(ex[2]).toFixed(0) + ',' + Number(ex[3]).toFixed(0)

关键接口

1.【地图视图类】ol.View

【method】getResolution():获取地图视图的分辨率

【method】calculateExtent(opt_size):计算当前地图视图的地图范围

2.【地图类】ol.map

【method】getSize():获取当前地图的大小

完整代码

<!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><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><!--当前示例页面样式表引用--><link rel="stylesheet" href="./static/demo/openlayers/example/style.css" /><script include="jquery" src="./static/libs/include-lib-local.js"></script><script src="./static/libs/include-openlayers-local.js"></script><style type="text/css">#mapCon {width: 100%;height: 95%;position: absolute;}label {position: absolute;color: white;font-size: 6px;font-weight: 500;font-family: cursive;line-height: 10px;margin: 5px 5px;}</style><script type="text/javascript">var map = nullvar TiandiMap_vect = nullvar TiandiMap_vectcia = nullvar tdk = '4c27d6e0e8a90715b23a989d42272fd8' //天地图密钥function init() {//初始化地图容器map = new ol.Map({target: 'mapCon', //地图容器div的IDcontrols: ol.control.defaults({attributionOptions: {collapsible: true,},}),view: new ol.View({center: [12000000, 4000000], //地图初始中心点maxZoom: 28, //最大瓦片显示级数minZoom: 1, //最小瓦片显示级数zoom: 6, //地图初始显示级数}),})//加载天地图瓦片图层数据TiandiMap_vect = 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=' + tdk,wrapX: false,}),})TiandiMap_vectcia = 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=' + tdk,}),})map.addLayer(TiandiMap_vect)map.addLayer(TiandiMap_vectcia)updateInfo()map.getView().on('propertychange', updateInfo)window.addEventListener('resize', updateInfo)}function updateInfo() {var view = map.getView()//获取最大分辨率var curResolution = view.getResolution()var viewSize = map.getSize()//获取地图范围var ex = view.calculateExtent(viewSize)var mapstr = Number(ex[0]).toFixed(0) + ',' + Number(ex[1]).toFixed(0) + ',' + Number(ex[2]).toFixed(0) + ',' + Number(ex[3]).toFixed(0)var viewStr = viewSize[0] + ',' + viewSize[1]document.getElementById('resolution').innerText = '分辨率:' + Number(curResolution).toFixed(3)document.getElementById('maprange').innerText = mapstrdocument.getElementById('viewrange').innerText = '视窗范围:' + viewStr}</script></head><body onload="init()"><div id="mapCon"></div><fieldset style="position: absolute;width: 200px;height: 75px;top: 18px;left: 50px;background-color: black;opacity: 0.5;border-radius: 10px;padding: 10px 6px;"><label id="resolution">分辨率:</label><br /><label id="viewrange">视图范围:</label><br /><label>地图范围:</label><br /><label id="maprange" style="margin-top:0px"></label><br /></fieldset></body>
</html>

GIS开发/WebGIS开发零基础入门:地图域当前信息(附代码)相关推荐

  1. 【Web前端开发】《零基础入门学习Web开发》(HTML5CSS3)(小甲鱼)

    1 P1:凉凉好像挺厉害的奥?      听完了! 2 P2:HTML是用来描述网页的一种语言 官方:超文本标记语言   Hyper Text Markup Language 使用标签来描述网页    ...

  2. 贪吃蛇的使命之零基础入门贪吃蛇游戏(附演示地址)

    作者: C you again,从事软件开发 努力在IT搬砖路上的技术小白 公众号: [C you again],分享计算机类毕业设计源码.IT技术文章.游戏源码.网页模板.程序人生等等.公众号回复 ...

  3. 自学也能学得会的《零基础入门学习Web开发》(HTML5 CSS3)

    1 Web开发是什么 很多读者可能还不明白,Web开发到底是什么. 其实,我们所说的Web开发通常相当于前端开发与后端开发的组合. 前端开发主要通过HTML.CSS.JavaScript. AJAX. ...

  4. 零基础入门jQuery视频教程

    零基础入门jQuery最新版开发.NET富客户端应用(选择器.DOM操作.事件和动画.Ajax应用.插件.Mobile) 课程分类:.NET+Jquery 适合人群:初级 课时数量:35课时 用到技术 ...

  5. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  6. 我是如何零基础入门前端开发的(2021 版)

    大家好,我是若川.最近组织了源码共读活动<1个月,200+人,一起读了4周源码>,已经有超50+人提交了笔记,群里已经有超1200人,感兴趣的可以点此链接扫码加我微信 ruochuan12 ...

  7. 【视频回放与课件】零基础入门AI开发

    今天上午,受广州图书馆邀请,在第一讲<零代码上手人工智能>的基础上,以<零基础入门AI开发>为主题,分四步解锁人工智能学习的概念与开发工具,让您在一小时内轻松掌握人工智能开发要 ...

  8. 视频教程-5小时零基础入门小程序云开发-微信开发

    5小时零基础入门小程序云开发 码农一枚,非著名全栈开发人员.分享自己的一些经验,学习心得,希望后来人少走弯路,少填坑. 多年全栈开发经验,擅长小程序,java,安卓,web前端开发. 邱石 ¥29.0 ...

  9. 零基础入门学习python笔记-day1:程序开发谋定而后动

    流程图 更复杂的开发需要用到思维导图哦~ 思维导图侧重于设计,流程图更侧重于实现. 学习资料:小甲鱼零基础入门学习python https://www.bilibili.com/video/BV1c4 ...

最新文章

  1. Keras输出网络结构图
  2. 【 MATLAB 】信号处理工具箱之 dct 简介及案例分析
  3. Qt之QSlider
  4. go语言定义二维数组
  5. RPC框架系列——Protocol Buffers
  6. 天下为公:TCP堵塞控制
  7. SpringBoot2.0之四 简单整合MyBatis
  8. 浙江富润拟12亿并购泰一指尚 跨界互联网及大数据
  9. hdu 1217 Arbitrage (最小生成树)
  10. 并发 (一)——基本概念
  11. mysql 定位字符串的位置
  12. Java对接支付宝(alipay)电脑网站生成二维码扫码支付 alipay.trade.page.pay统一收单下单并支付页面接口
  13. 深挖AI价值与温度,AETA地震预测AI算法大赛开启
  14. 人工神经网络概念及组成,人工神经网络基本概念
  15. 笔记本键盘被锁定了怎么办?笔记本如何解锁键盘?
  16. 毕业设计__系友录ByJavaweb
  17. 如何读取通用配置文件conf?
  18. 数学建模常用数据汇总!!!
  19. win10 系统版本号获取的三种方法
  20. library sort(图书馆排序)

热门文章

  1. 使用matlab实现ISD悬架离散仿真分析
  2. leetcode 219
  3. 2019_GDUT_新生专题I选集——C
  4. 数学建模美赛前期准备
  5. Java+Selenium3自动化入门9-Selenium中截图方法-TakeScreenshot
  6. 篮球比赛表式计时器_篮球比赛计时器.docx
  7. 机器学习中的数学原理——对数似然函数
  8. Thinkpad T470p 在 Ubuntu 20.04 启用指纹识别
  9. 关于身份证号码位数转换计算方式
  10. 反卷积原理 + pytorch反卷积层参数output_padding