离线地图最终解决方案

离线地图最终解决方案

前言

​ 能找到这个帖子的朋友应该是公司要求做离线地图,但是没了解过的吧,我前一段也是公司要求做离线地图但是我没了解过,我就去搜了很多文章,找了很多方案,最后和leader定下来了两个方案,一个是使用一张固定缩放的图片,然后将像素转化为px来做撒点的效果,另一个就是使用瓦片地图框架openlayers来实现瓦片地图,后文将一一介绍两个方法。

  • 方法1:用一张固定缩放的图片将像素转化成px来做撒点的效果
  • 方法2:用地图框架openlayers来实现瓦片地图

1.使用openlayers来实现瓦片地图

为什么使用 openlayers而不是使用leaflet,原因是我找到的教程很多是openlayers的,我看leaflet的很多功能都是社区做的,这样会增大我的学习量,所以我没有选

openlayers官网

首先解决地图问题

如果你要用原版地图的话,就可以直接使用地图下载工具瓦片地图下载工具,这只支持你下载原版地图,还有就是每个地图公司的坐标系可能存在不一样,本文是用腾讯地图来做的,为什要用腾讯一会儿说。

为什么要用腾讯地图?

因为腾讯地图有一个东西叫做自定义地图样式的工具,据网上帖子来说,你可以通过控制台去抓取到你自定义样式的地图的瓦片文件,然后用一些工具去批量抓取,但是实测百度地图更新了,抓不到了就很烦!

  • 用上面的那个地图下载工具下载的地图格式有点问题,你需要给文件夹改成下面这样的格式

在这里插入图片描述

地图存放到服务器

如果给本地搞个Tomcat什么的起个服务会很麻烦,这里也是用一个非常快捷的办法直接解决

  • http-server

  • //首先先去下载
    npm install httpserver
    
  • //上一步下载完毕后,在你瓦片的分级目录里面打开cmd直接启动服务
    http-server
    
  • 下面会输出一堆东西,不用管他,你只需要知道那个是你的ip+端口就行了,将你的ip+端口复制走,等下要用

使用openlayers加载离线地图,用Vue项目为例

//小声bb : 其实到这里下面的步骤基本就是复制另一个帖子了 这个帖子也给了我很多帮助

openlayers 实战离线地图

安装openlayers
  • npm install ol
    
  • //或者直接用js引入
    <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.8.1/build/ol.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.8.1/css/ol.css">
复制下面代码
<template><div style="width: 100%;height: 100%"><div class="map" id="map"></div><el-card id="popup" class="popup"><div class="popupContainer"></div></el-card></div>
</template><script>
import 'ol/ol.css';
import Map from 'ol/Map';
import Feature from 'ol/Feature';
import VectorSource from 'ol/source/Vector';
import Overlay from 'ol/Overlay';
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
import View from 'ol/View';
import {transform} from 'ol/proj';
import XYZ from 'ol/source/XYZ'
import Point from 'ol/geom/Point';
import GeoJSON from 'ol/format/GeoJSON';
import {Fill, Stroke, Icon, Style} from 'ol/style'
import markerImg from '@/assets/img/markerIcon.png'
export default {name: "openlayersMap",data () {return {mapObj: null,mapDom: null,mapPointList: [],pointLayerSource:null,pointLayer: null,markerIcon: markerImg}},mounted() {this.initMap()},methods: {// 清除地图 某些情况 地图容器会存在两个 导致地图无法正常显示 这个问题折腾了我半天。// 找了半天官方貌似也没有提供 对应的 api,自己动手了。mapClear (){if (this.mapDom) {this.mapDom.innerHTML = ''this.mapDom = null}},// 初始化地图initMap () {// 先尝试清除this.mapClear()// 获取地图容器this.mapDom = document.getElementById('map')// 初始化地图配置this.mapObj = new Map({target: this.mapDom, // 地图容器view: new View({//设置你的地图初始中心点center: [117.990969, 36.635013], // 地图中心点zoom: 10, // 缩放projection: 'EPSG:4326' // 坐标系})})// 添加一个使用离线瓦片地图的层const offlineMapLayer = new TileLayer({source: new XYZ({//这里的url就是你要改的地方url: 'http://192.168.3.6:8081' +

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

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

相关文章

天地图入门使用

“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。集成了来自国家、省、市&#xff08;县&#xff09;各级测绘地理信息部门&#xff0c;以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源&#xff0c;如果做的项目是政府部门、企事业单位尽量选…

javaee spring 自动注入,如果满足条件的类有多个如何区别

如图IDrinkDao有两个实现类 方法一 方法二 Resource(name“对象名”) Resource(name"oracleDrinkDao") private IDrinkDao drinkDao;

如何手动添加 WIFI 网络步骤

电脑手动添加WiFi网络步骤&#xff1a; 1.右键控制面板 2.进入控制面板 3.进入网络和Internet&#xff0c;点击设置新的连接或网络 4.点击手动连接到无线网络 5.输入网络SSID及秘钥 若需要自动连接请勾选自动启动此连接。 若WiFi不广播也自动连接请勾选即使网络未进行广播也连接…

【电脑设置wifi大揭秘】随身wifi怎么用?

随身wifi什么&#xff1f;一句话就是一种迷你版无线路由器&#xff0c;安装在台式机上也可充当无线网卡。目前&#xff0c;市面上的随身wifi有小度wifi、360随身wifi、wifi宝等。作为线上入口&#xff0c;互联网大佬们自然不会放手。 一、随身WiFi怎么用&#xff1f; 实际上&am…

计算机wifi怎么打不开,设置wifi的网址打不开怎么办?

问&#xff1a;设置wifi的网址(网站)打不开&#xff0c;无法对wifi进行设置&#xff0c;请问怎么解决这个问题&#xff1f; 答&#xff1a;wifi的设置网址打不开&#xff0c;多半是你操作有误引起的&#xff0c;极少数情况下是wifi路由器有问题导致的&#xff0c;这个问题的解决…

Windows下用某品牌随身WiFi搭建一个钓鱼热点

*本文原创作者&#xff1a;Leslie___Cheung &#xff0c;本文属于原创博客&#xff0c;未经许可禁止转载。 *本文内容仅代表作者观点且只做测试展示&#xff0c;目的是提醒读者注意 WiFi 联网安全&#xff0c;严禁将内容用于不法用途。 目录 前言 01 搭建过程 第一步&a…

随身wifi折腾日记 (刷armbian搭建服务器,内网穿透部署网站)

随身wifi折腾日记 跳转博客,观感更佳 商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source. 协议(License)&#xff1a;署名-非商业性使用-…

网络基础 ----------- 电脑设置为wifi站点

在上大学的时候最难受的就是&#xff0c;没有无线&#xff0c;但是电脑有宽带&#xff0c;那么怎么将电脑变成路由器哪 1、首先查看你的无线网卡是否支持开无线 通过命令win R 快捷件进入命令窗口输入 &#xff1a; 、 netsh wlan show drivers //查看你的无线网卡是否支持…

把电脑设置为免费的WIFI热点

你还以为那些网络上的免费WIFI软件有多么神奇吗&#xff1f;你还在想用电脑WIFI却不想使用那些“流氓软件”而纠结吗&#xff1f;本篇以尽可能简单的方式&#xff0c;教你如何【靠自己】来把电脑设置为WIFI热点。&#xff08;哈哈&#xff0c;从此以后麻麻再也不用担心我会被流…

网络基础 ----------- 电脑设置为wifi站点

在上大学的时候最难受的就是&#xff0c;没有无线&#xff0c;但是电脑有宽带&#xff0c;那么怎么将电脑变成路由器哪 1、首先查看你的无线网卡是否支持开无线 通过命令win R 快捷件进入命令窗口输入 &#xff1a; 、 netsh wlan show drivers //查看你的无线网卡是否支…

笔记本电脑无线Wifi热点设置工具

这个不是C语言&#xff0c;是批处理命令行了&#xff0c;本身在Win7以上的系统内&#xff0c;笔记本电脑内置的无线网卡就可以被虚拟成无线Wifi热点&#xff0c;而不需要那些小软件&#xff0c;自己本身就可以DIY&#xff0c;就写了一个&#xff0c;还是很有实用价值的&#xf…

新的计算机的wifi连接无线网络连接,如何设置电脑优先连接无线WIFI网络

办公室网络多的情况下电脑自动连接到一些信号不好的WIFI影响我们正常的办公&#xff0c;手机也是一样的&#xff0c;在多种情况下限制了我们畅游互联网。下面是学习啦小编收集整理的如何设置电脑优先连接无线WIFI网络&#xff0c;希望对大家有帮助~~ 设置电脑优先连接无线WIFI网…

如何设置无线网络中计算机的ip,电脑wifi怎么设置 电脑wifi设置教程详解

现在很多人的日常娱乐方式主要是看看视频、上上网等,和过去不一样的是,现在大家上网不只是用电脑,更多的是智能手机和 平板电脑 。但是他们是无法接入 网线 的,单纯用流量的话费用非常高,所以就离不开WiFi的使用了。很多人家中也有电脑,但是可能不知道如何让自己的电脑给…

关于msvcp140.dll丢失的解决方法,分享最简单详细的解决方法

今天&#xff0c;我将为大家详细介绍一种常见的问题——msvcp140.dll丢失&#xff0c;并提供四种不同的解决方法。希望通过这次分享&#xff0c;能够帮助大家解决这个问题&#xff0c;提高电脑使用效率。 首先&#xff0c;让我们来了解一下msvcp140.dll文件。msvcp140.dll是Mi…

/PROC/[PID]各目录项的UID、GID是怎么来的

/PROC/[PID]各目录项的UID、GID是怎么来的 文章目录 /PROC/[PID]各目录项的UID、GID是怎么来的第一层&#xff1a;伪文件系统inode_operation.getattr.lookup 第二层&#xff1a;进程的dumpable属性物理上对应哪个字段这个字段什么时候更新 最近遇到一个好玩的现象&#xff1a;…

lab8 lock

PreRead 第六章3.5节&#xff1a;物理内存分配器8.1-8.3 文章目录 PreReadMemory allocatortaskshints思路 Buffer cachetaskhints思路实现 这次的lab&#xff0c;本质上都是通过将锁的粒度减小来获得性能的提升 第一个task&#xff0c;可以简单地按cpu划分&#xff0c;因为本…

GiD 前处理 实例

目录 Blog Links一、前言二、创建 1/8 半球体2.1 创建圆弧及圆球面2.2 创建半球面等分点2.3 连接等分线2.4 生成 1/8 半球体 三、创建整个球体四、划分网格五、尾声六、参考文献 Blog Links DalNur | 博客总目录 GiD 实用教程 GiD 前处理 实例 GiD 自定义 简介 GiD 后处理 …

Linux 建立用户和修改用户UID,GID

预设用户名为tom&#xff0c;UID222&#xff0c;GID222 首先我们来创建一个用户&#xff0c;创建用户命令&#xff1a; useradd tom&#xff08;useradd 用户名&#xff09; 创建好用户名后&#xff0c;再来创建用户的密码&#xff0c;于是接着创建密码&#xff0c;创建密码命…

Android中UID、GID和PID的讲解

一、概述 在实际的开发中经常会碰到各种ID&#xff0c;这是由于在计算机的发展过程中&#xff0c;需要对程序执行的每一步做标记&#xff0c;通过这些标记的关联便于系统的统一管理。像PID、UID、GID、和EUID等&#xff0c;其实对于这些ID不需要刻意记忆&#xff0c;只需要了解…

Linux中的UID、GID和SID

一、 UID和GID vi /etc/passwd查看用户配置情况 GID 是组ID (Group Identify)&#xff0c;表示组的身份唯一标识 UID 是用户ID (User Identify)&#xff0c;表示用户身份唯一标识 用户分类 centos6 超级用户 UID0 root 普通用户 UID500起 oldboy 虚拟用户 UID1-499 存在满足…