OpenLayers3, 导出图片

news2024/11/28 18:58:42

文章目录

  • 一、前言
  • 二、代码实现
  • 三、总结


一、前言

本文基于OpenLayers3,canvas转图片实现地图导出图片的功能。

二、代码实现

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>导出PNG图片</title>
    <link href="../../libs/ol3/ol.css" rel="stylesheet" type="text/css"/>
    <script src="../../libs/ol3/ol.js" type="text/javascript"></script>
    <script src="../../libs/other/FileSaver.min.js" type="text/javascript"></script>
    <link href="../../css/style.css" rel="stylesheet" type="text/css"/>
    <style>
        #mapCon {
            width: 100%;
            height: 90%;
            position: absolute;
        }
    </style>
</head>
<body>
<div class="ToolLib">
    <input type="button" class="ButtonLib" id="export-png" value="下载 PNG"/>
</div>
<div id="map" title="地图显示" style="padding: 5px">
</div>

<script>
  var tdttk = '****'; //天地图秘钥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=" + tk,
      wrapX: false,
      crossOrigin: "Anonymous"
    })
  });
  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=" + tk,
      wrapX: false,
      crossOrigin: "Anonymous"
    })
  });
  var map = new ol.Map({
    layers: [TiandiMap_vec, Tianditu_cva,
      new ol.layer.Vector({
        source: new ol.source.Vector({
          url: "../../data/geojson/countries.geojson",
          format: new ol.format.GeoJSON()
        })
      })
    ],
    target: 'map',
    controls: ol.control.defaults({
      attributionOptions: ({
        collapsible: false
      })
    }),
    view: new ol.View({
      center: [0, 0],
      zoom: 2
    })
  });

  document.getElementById('export-png').addEventListener('click', function () {
    map.once('postcompose', function (event) {
      var canvas = event.context.canvas;
      canvas.toBlob(function (blob) {
        saveAs(blob, 'map.png');
      });
    });
    map.renderSync();
  });
</script>
</body>
</html>

在这里插入图片描述

三、总结

以上为基于openlayer3 实现导出图片的简单案例,希望对您有帮助~

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

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

相关文章

Stable Diffusion 3 Medium开源,创作自由一触即发!

前言 HyperAl超神经现已上线「ComfyUl Stable Diffusion3工作流在线教程」&#xff0c;已经为大家搭建好了环境&#xff0c;使用时无需输入任何命令&#xff0c;一键克隆即可启动。 该教程将Stable Diffusion3 Medium强大的文生图能力与ComfyUl直观、简洁的工作流强强结合&am…

Prettier+Vscode setting提高前端开发效率

文章目录 前言Prettier第一步&#xff1a;下载依赖&#xff08;团队合作&#xff09;或下载插件&#xff08;独立开发&#xff09;第二步&#xff1a;添加.prettierrc.json文件**以下是我使用的****配置规则** 第三步&#xff1a;添加.prettierignore文件**以下是我常用的****配…

1000人规模冗余设置

1000人规模冗余设置 步骤①&#xff1a;Vlan Trunk Eth-trunk 底层配置 #eth-trunk配置&#xff1a; sw1 &#xff1a; int eth-trunk 2 mode lacp-static trunkport gi 0/0/2 trunkport gi 0/0/3 sw2 &#xff1a; int eth-trunk 2 mode lacp-static trunkport gi 0/…

PythonStudio 控件使用常用方式(三十三)TMonthCalendar

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

Mysql删除几亿条数据表中的部分数据

1、需求 老项目&#xff0c;实时数据还是用mysql去存储的&#xff0c;而且又没有定时去清理数据的程序。目前这些实时数据只需保留近半年的即可。 其他几张实时表数据量没有这么夸张。 我随即用 delete from table_name where id < 39000000 limit 10000 但是几亿条记录…

[DL]深度学习_扩散模型

扩散模型原理 深入浅出扩散模型 一、概念简介 1、Denoising Diffusion Probalistic Models&#xff0c;DDPM 1.1 扩散模型运行原理 首先sample一个都是噪声的图片向量&#xff0c;这个向量的shape和要生成的图像大小相同。通过Denoise过程来一步一步有规律的滤去噪声。Den…

【第69课】Java安全JWT攻防Swagger自动化算法签名密匙Druid未授权

免责声明 本文发布的工具和脚本&#xff0c;仅用作测试和学习研究&#xff0c;禁止用于商业用途&#xff0c;不能保证其合法性&#xff0c;准确性&#xff0c;完整性和有效性&#xff0c;请根据情况自行判断。 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0…

【逆向】打开页面403,加密值如何有其它页面内正则提取并更新

一、问题出现 # import requests # url https://www.regulations.gov/search?sortBypostedDate&sortDirectiondesc # response requests.get(url) # print(response.text) 正常页面打开没有自己看到的内容。 F12找到新的地址 import requests# headers { # accep…

使用VRoid Studio二次元建模,创建专属于自己的二次元卡通人物模型,创建完全免费开源且属于自己VRM模型

最终效果 文章目录 最终效果什么是VRoid Studio官网地址下载安装VRoid Studio1、可以去它的官网下载2、steam安装 创建模型配置参数 导出模型使用别人的VRM模型这里我分享几个不错的模型&#xff0c;大家可以自行去下载 完结 什么是VRoid Studio 如果你玩过能捏脸的游戏你就能…

免费体验!快速生成超逼真真人美图的Stable Diffusion模型!

前言 所有的AI设计工具&#xff0c;模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ 环境安装 1、安装Python 下载地址&#xff1a;https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe。 备注&#xff1a;把安装目录加入环境变量&…

AI打造独居女性生活漫画Vlog,这份涨粉秘籍不容错过!

在快节奏与高压的现代生活中&#xff0c;独居女性的日常成为了许多人向往的一片宁静之地。她们以独特的方式享受着自我成长与生活的美好&#xff0c;而这些细微却动人的瞬间&#xff0c;正是我们创作爆款Vlog的灵感源泉。 在这个数字化时代&#xff0c;我们用科技捕捉并重新诠释…

一些常见的测试类型及介绍

在刚开始学习软件测试的时候&#xff0c;总是看到很多种测试类型&#xff0c;除了下图软件测试分类外&#xff0c;还有一些常见的测试类型名称。 1.接口测试 接口测试用于检测外部系统与所测系统之间以及内部各个子系统之间的交互点&#xff0c;定义特定的交互点&#xff0c;通…

Ubuntu下载安装教程|Ubuntu最新长期支持(LTS)版本24.04 LTS下载安装

安装Ubuntu Ubuntu最新长期支持(LTS)版本24.04 LTS Ubuntu 24.04 LTS | 概览 Ubuntu长期支持(LTS)版本&#xff0c;LTS意为“长期支持”&#xff0c;一般为5年。LTS版本将提供免费安全和维护更新至 2029年4月。 Ubuntu 24.04 LTS&#xff08;代号“Noble Numbat”&#xff0c;…

【EI检索稳定】2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)

由悉尼科技大学和西南交通大学联合主办&#xff0c;四川大学、中南大学社会计算研究中心、西南财经大学、武汉理工大学协办的2024年第四届数字化社会与智能系统国际学术会议将于2024年11月22-24日在中国郑州举行。会议主题主要聚焦智能系统在数字化社会中的相关技术和应用发展。…

RM电控RTOS

OS即&#xff08;operating system&#xff09;操作系统&#xff0c;比如我们常用的windows系统&#xff0c;mac系统&#xff0c;android系统&#xff0c;ios系统&#xff0c;linux系统等&#xff0c;都属于操作系统。操作系统的本质是一个特殊的软件&#xff0c;它直接管理硬件…

一文彻底搞懂Transformer - FFNN(前馈神经网络)

Transformer 神经网络&#xff1a; 神经网络&#xff08;Neural Networks&#xff09;是一种模仿生物神经网络的结构和功能的数学或计算模型。它由大量的人工神经元&#xff08;也称为节点或处理单元&#xff09;相互连接而成&#xff0c;这些神经元之间通过带有权重的连接进行…

罗德与施瓦茨(RS)FSW50,FSW85,FSW67信号和频谱分析仪

Rohde & Schwarz FSW50,FSW67,FSW85信号和频谱分析仪 高性能罗德与施瓦茨 (R&S) FSW50 信号和频谱分析仪专为方便、准确和快速而设计。其独特的触摸屏、直观的多视图结果显示和优化的用户指南使 R&S FSW50 分析仪的操作高效便捷。凭借其无与伦比的相位噪声、无与伦…

数学生物学-2-离散时间模型(Discrete Time Models)

上一篇介绍了一个指数增长模型。然而&#xff0c;我们也看到&#xff0c;在现实情况下&#xff0c;细菌培养的增长是在离散的时间&#xff08;在这种情况下是小时&#xff09;进行测量的&#xff0c;种群并没有无限增长&#xff0c;而是趋于以S形曲线趋于平稳&#xff0c;称为“…

[ACL 2024] Revisiting Knowledge Distillation for Autoregressive Language Models

Contents IntroductionMethodRethinking Knowledge Distillation for Autoregressive LMsImproving Knowledge Distillation with Adaptive Teaching Modes ExperimentsReferences Introduction 作者提出 Autoregressive KD with Adaptive Teaching Modes (ATKD)&#xff0c;通…

Go语言开发通过本地数据xdb文件​查询获取IP地址的归属地区及运营商名称

说明&#xff1a; 用本地数据&#xff0c;离线识别ip属地&#xff0c;用于显示用户ip属地&#xff0c;不依赖第三方的api接口&#xff0c;本地数据包解析&#xff0c;解析速度快10微秒级别的查询效率。返回数据固定格式&#xff1a;国家|区域|省份|城市|ISP&#xff0c;例如&a…