vue3中Cesium离线地图

news2024/11/16 23:29:48

最近的需求需要在vue3发布Cesium离线地图,之前openlayers我是在本地开启http server发布的地址可以使用,但是Cesium会报跨域错误,在网上查了一下,后用的是nginx代理,下面我记录一下自己的方法。

1.判断是否联网

export function checkConnectionStatus() {  
  return  new Promise((resolve, reject) => {
  var img = new Image();
  var start = new Date().getTime();
  //一张外网图片 用来判断网络类型
  img.src = 'http://www.baidu.com/img/bdlogo.gif' + "?time=" + start;
  img.onload = function () {
    resolve(true)
    // 加载出图片 那么就认定为是外网
    console.log("外网网络")
  }
  img.onerror = () => {
    resolve(false)
    console.log("内网网络")
  };
  })
}

2.联网与否加载地图

import { checkConnectionStatus} from "@/utils/date.js";
// 是否联网
  async function Whethernetwork() {
        await checkConnectionStatus().then(online => {
            if (online==true||online==false) {
 //加载地图,cesiumContainer.value是div
                initMap(mapElement.value,cesiumContainer.value,online);
                console.log('Google is online:', online);   
            }
        })
  }

3.加载地图

function initMap(container, cesiumContainer,online) {
isOnlineStatus.value=online;
const cesiumViewer = new Cesium.Viewer(cesiumContainer, {
            infoBox: false,
            geocoder: false, // 搜索功能
            homeButton: false, // 视角恢复功能
            sceneModePicker: false, // 2d、3d切换功能
            baseLayerPicker: false, // 地图底色选择功能
            navigationHelpButton: false, // 帮助功能
            animation: false, // 动画功能
            timeline: false, // 时间线功能
            fullscreenButton: false,// 全屏功能   
           // requestRenderMode: true, // 减少Cesium渲染新帧总时间并减少Cesium在应用程序中总体CPU使用率
            // 如场景中的元素没有随仿真时间变化,请考虑将设置maximumRenderTimeChange为较高的值,例如Infinity
            maximumRenderTimeChange: Infinity,
            shadows:true,
            showldAnimate:true,//模型显示动画

        });
     cesiumViewer.imageryLayers.addImageryProvider( 
     //判断加载地图 
            isOnlineStatus.value?new Cesium.UrlTemplateImageryProvider({
                url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
                maximumLevel: 18,
          }):new Cesium.UrlTemplateImageryProvider({
                url:  `http://localhost:80/satellite/mapabc/satellite/{z}/{x}/{y}.jpg`,
                
            })

        )}

4.使用nginx代理
参考这位大佬的文章
在这个文件配置
在这里插入图片描述

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # location / {
         #    root    index;
         #    index  index.html index.htm;
        # }
         #关键
   location /satellite{
    #D:/rhhkmap/这是地图路径
               alias   D:/rhhkmap/;
               autoindex on;
		add_header Access-Control-Allow-Origin *;
		add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
		add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";

           }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

           }

本地瓦片地图路径
在这里插入图片描述

效果图
在这里插入图片描述

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

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

相关文章

Linux、Windows、Mac 系统安装 Nginx 及配置命令全攻略

一、Linux 系统安装 Nginx 及配置 (一)安装依赖包 在 Linux 系统中安装 Nginx 前,首先需要安装依赖包。以下是常见的依赖包安装命令: yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 若安装过程中出现错…

力扣高频SQL 50题(基础版)第三十二题

文章目录 力扣高频SQL 50题(基础版)第三十二题1789.员工的直属部门题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第三十二题 1789.员工的直属部门 题目说明 表:Employee ------------------…

Yolov8训练时正常,但验证时Cuda out of memory问题的解决方案(非完全解决)

【问题描述】 在Yolov8训练时,训练中正常,但每轮训练中做验证时报错Cuda out of memory: 【解决方案】 往下翻有具体的报错信息: 可知是显存爆了。在没有条件更换训练显卡的情况下,笔者尝试增加with torch.no_grad…

TiDB Hackathon 2024丨用 TiDB 构建未来的 AI 创新应用, 瓜分超 ¥210,000 奖金池!

2024 TiDB Future App Hackathon 来啦!这是第八届 TiDB Hackathon,TiDB Hackathon 自举办以来,已累计参赛人数超过 3000 人 !回顾去年的 TiDB Hackathon 赛事,有来自 88 个国家近 1500 名小伙伴参加,提交了…

IDEA某个项目被同事提交的代码导致不能进入Debug了,不是IDEA的问题。千万要避坑!

刚开始我发现突然不能进入debug了,打上去后就立马边灰了,我以为是我IDEA的问题,后来我换了其他项目都能正常进入debug. 而且后续,这个项目的其他同事也都不能进入debug了。 我就怀疑是项目中有人提交了代码导致的。 后来查…

必备插件自取 vue3.0 在vscode提升编码效率

一些vue开发中用到的插件,抽空总结一下,一是方便自己查看,另外是供其他需要的同学参考。在开发vue项目中,无论用什么编辑器一些好用的插件对我们来讲或许是必要的,因为好的插件既能方便我们编码,又能提升开…

文件解析漏洞--IIS--Vulhub

文件解析漏洞 一、IIS解析漏洞 用windowserver2003安装IIS测试 1.1 IIS6.X 方法一:目录解析 在网站下建立文件夹的名字为.asp/.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 1.txt文件里是asp文件的语法查看当前时间 方…

PSO求解函数最小值的MATLAB例程|MATLAB源代码

本篇文章适合PSO入门,进阶的可能会觉得太简单的。 目录 PSO例程作用运行结果代码函数解释 例程修改tips PSO Particle Swarm Optimization,粒子群优化算法,通过模拟鸟群或鱼群的行为来寻找最优解。在计算时通过对一群粒子的位置和速度进行迭…

Stable Diffusion Windows本地部署超详细教程(手动+自动+整合包三种方式)

2022年作为AIGC(Artificial Intelligence Generated Content)时代的元年,各个领域的AIGC技术都有一个迅猛的发展,给工业界、学术界、投资界甚至竞赛界都注入了新的“AI活力”与“AI势能”。 其中在AI绘画领域,Stable D…

内部类练习题

代码: public static void main(String[] args) {A anew A();a.f(); } class A{private String name"A";public void f(){class B{private String name"B";public void show(){System.out.println("A姓名为:"A.this.name…

智慧校园实训管理:打造高效实验项目管理系统

在智慧校园的实训管理框架中,实验项目管理功能是培养学生实践能力和创新精神的关键一环。这一功能通过数字化手段,实现了实验项目的全流程管理,从项目设计、资源调配、过程监控到成果评估,确保了实训活动的高效开展和教学质量的稳…

LabVIEW打开的视频格式IMAQ AVI Open

LabVIEW打开的视频格式IMAQ AVI Open LabVIEW所支持的视频解码器是有限的,不能支持所有的视频解码器。如果解码器选择的不正确,会出现的错误。 错误提示信息如下: Error -1074396009 occurred at IMAQ AVI Open Possible reason(s): An inter…

人工智能大模型发展带来的风险挑战和对策

经过近70年的发展,人工智能技术发展经历了三次起伏,2022年以来,以ChatGPT、Sora等为代表的预训练大模型持续取得突破,推动着人工智能技术从感知向认识,从分析判断式向生成式,从专用向通用进入快速发展的新阶…

提供一个下载国外DockerHub镜像的办法

由于众所周知的一些问题,国内现在下载国外的镜像比较难。尤其是比较新的版本的时候。 比如阿里云加速器的镜像库,skywalking-oap的最新版本也只有8.9,有时候不满足业务需要。官网目前最新10.0.1。很多情况下我们需要9以上版本。 提供几个办…

tomcat使用问题:安装后无法访问localhost:8080

一、tomcat 未启动 所以http://localhost:8080打不开; 二、环境变量未配置 tomcat图标显示已启动,但http://localhost:8080还是打不开,可能是环境变量没有配置好,关于怎么配置环境变量网上到处都是,一下仅供参考: …

halcon_C#联合halcon打开摄像头

1. 创建halcon项目 -> 2.测试连接 -> 3. 在halcon中打开摄像头成功 -> 4. 插入代码 -> 5. 导出为.cs文件 6. 创建VS项目 -> 7.将action部分代码嵌入winform -> 8. 编写代码 -> // 导入HalconDotNet命名空间,这是用于Halcon图像处理的…

MySQL存储引擎和

MySQL存储引擎 在数据库中保存的是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,最关注的一个问题是使用什么存储引擎。MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种…

redis面试(四)ZSet数据结构

Sorted Set 有序集合ZSet,但是有序集合的英文明明是sorted sets。 那这个“Z”代表什么意思,这点官网没有解释,但是gitHub上有人问过,作者是这样回答的 Hello. Z is as in XYZ, so the idea is, sets with another dimension: t…

Selenium与WebDriver:Errno 8 Exec格式错误的多种解决方案

概述 在使用Selenium和WebDriver进行网页自动化时,可能会遇到各种错误。其中一个常见问题是执行格式错误(Errno 8 Exec format error)。这个错误通常在运行ChromeDriver时出现,错误提示涉及路径中的某个文件,如THIRD_…

WordPress建站教程:零基础新手小白如何B2B外贸建站

如果你想通过独立站拿询盘获取订单,那么必须先要有一个自己的网站,所以建站是你绕不过去的一件事。对于零基础的新手小白来说,如何从零开始搭建一个B2B外贸网站呢?本文将为你提供一份详细的WordPress建站教程,帮助你从…