前端使用vue+leafet显示openseamap

openseamap是海图信息图片背景为灰色,而且是开源的,所以需要有一个底图,我选择的底图为openstreetmap,也是一个开源地图

要在leaflet中显示正常的电子海图,需要同事加载这两个图片,openstreetmap在下面,openseamap在上面

有两种方法加载电子海图:

1、通过法国人发布的github方法  (https://github.com/snosan-tools/avurnavs.snosan.fr)

以下为vue的代码,唯一需要的是安装vue2-leaflet的插件和leaflet插件,两个是不同插件,所以要多安装vue2-leaflet的插件,他是通过html方法去实现的

<template><div class="map"><l-map :zoom="zoom" :center="center"><l-tile-layer :url="url"></l-tile-layer><l-tile-layer :url="xxx"></l-tile-layer></l-map></div>
</template><script>
import { LMap, LTileLayer} from 'vue2-leaflet';export default {name: 'example',components: {LMap,LTileLayer,},data () {return {zoom: 6,center:[48, -1.219482],url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',seaUrl: 'https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png',xxx:'http:///osm.franken.de/cgi-bin/mapserv.fcgi?',}},methods: {},
}
</script>
<style>
</style>

2、我自己的方法主要是通过JavaScript的方法去实现的

重点在第55行的sea.addTo(this.map);,使用叠加的方法使得两个图层的叠加

<template><div><div id="leaflet-map"></div></div>
</template><script>
import Leaflet from "leaflet";
export default {data() {return {map: null,reset_btn: null,map_config: {center: [39.50404070558415, -111.533203125],zoom: 6,minZoom: 2,maxZoom: 18,},};},mounted() {this.initMap();},methods: {initMap() {var seaUrl = "http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png";var osmUrl = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var sea = L.tileLayer(seaUrl, { subdomains: ["a", "b", "c"] });var OpenStreetMap = L.tileLayer(osmUrl, { subdomains: ["a", "b", "c"] });var baseLayers = {OpenStreetMap: OpenStreetMap,};this.map = L.map("leaflet-map", {zoomControl: false,center: this.map_config.center,zoom: this.map_config.zoom,minZoom: this.map_config.minZoom,maxZoom: this.map_config.maxZoom,layers: [OpenStreetMap],});L.control.zoom({position: "topright",}).addTo(this.map);this.map.on("zoomend", (event) => {if (this.reset_btn && this.map.getZoom() !== this.map_config.zoom) {this.reset_btn.enable();}});L.control.layers(baseLayers, null, { position: "bottomright" }).addTo(this.map);sea.addTo(this.map);},},
};
</script><style >
#leaflet-map {position: absolute;width: 100%;height: 100%;
}
</style>

如果有不懂的或者调试出问题的可以联系我的邮箱:(769516427@qq.com)(希望可以多点人一起研究)

leaflet电子海图加载openseamap,使用vue相关推荐

  1. leaflet入门——地图加载(以arcgis服务为例)

    最近由于项目需求,于是开始了leaflet的学习,leaflet在加载地图上具有自己独特的优势,能够在各种浏览器(包括手机)下面很好的运行,并且具有很多的插件供我们选择.在该教程中, 我们使用了除le ...

  2. Leaflet中使用Leaflet.Spin插件实现地图加载等待效果

    场景 Leaflet快速入门与加载OSM显示地图: Leaflet快速入门与加载OSM显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上,怎样使用插件实现地图加载等待 ...

  3. vue+ol实现 ol 地图加载geojson

    一.背景 公司需要个简单的二维底图,加载点线面数据,为了省时间就用openlayers框架写一个简单的加载方法,openlayers核心包含Map对象.View视图.Layer图层.Source来源. ...

  4. leaflet地图加载 点击获取经纬度

    今天刚刚学习leaflet 1.地图加载成功 2.点击获取经纬度信息 https://download.csdn.net/download/qq_38729621/12732189

  5. SuperMap iClient for Leaflet对EPSG:4509图加载滑动查询

    作者:John SuperMap iClient for Leaflet对EPSG:4509地图加载&滑动查询 在WebGIS开发使用中,我们会遇到地图显示不了,以及查询到数据显示不出的问题, ...

  6. vue使用高德地图加载kml文件

    在使用 Vue 的项目中使用高德地图加载 kml 文件,你可以这么做: 在高德地图官网上注册开发者账号并申请应用密钥. 在项目中安装高德地图的 JavaScript API,你可以直接在 HTML 文 ...

  7. vue动图加载图片不能正确显示的解决方法

    vue动图加载图片不能正确显示的解决方法 解决核心 代码 运行结果 上次解决过一次,没有记录,后来发现有小伙伴问我这个问题,我今天就顺手记录一下,具体的原因我这里就不详细说, 加载不出来简略的原因是v ...

  8. leaflet加载geojson热力图加载坐标组热力图

    通过SuperMap Leaflet加载geojson热力图,geojson通过数据服务查询获取到. geojson需要转换为4326坐标. geojson热力图加载 <!DOCTYPE htm ...

  9. geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (二)(小白必备:超详细教程)

    上一篇讲了 如何利用geoserver 发布矢量切片,接下来我们说 如何去展示,既然做我们就作全面吧,谁让我们gis 就是这么苦逼呢,哈哈. 环境: geoserver 2.21 vue 2.0 op ...

最新文章

  1. 开源一个上架 App Store 的相机 App
  2. 机器学习理论篇:机器学习的数学基础
  3. MFC BEGIN_MESSAGE_MAP()
  4. 互掐!美团“抛弃”支付宝,背后的真相到底是啥?
  5. Angular ngOnChanges hook学习笔记
  6. Java命令行界面(第28部分):getopt4j
  7. 2018年小米竟发布了16款手机,然而最值得入手的是它!
  8. java chackbox,Java CheckBox.setText方法代码示例
  9. C语言读取图像像素坐标,OpenCL中读取image时的坐标
  10. 华为鸿蒙系统支持什么手机_华为手机支持升级鸿蒙OS的EMUI 11系统55款机型名单公布...
  11. 【渝粤教育】国家开放大学2019年春季 3818-22T燃气工程施工 参考试题
  12. [转]电子书收集工具
  13. 网易互娱-后台开发(支付方向)二面
  14. php图片颤抖,PHP-使用jquery 怎么做出图片的震荡效果
  15. m4a怎么转换mp3格式?
  16. GDB调试总结和实例
  17. 支付宝对账单CSV解析
  18. mysql数据库交互界面_MySQL数据库界面化工具 - Navicat的常用功能
  19. 2021Fall - 欧陆CS转交互留学项目信息整理
  20. 玉米社:单页网站怎么做seo?优化思路?

热门文章

  1. linux加载内存.a,syslinux.cfg文件加载a.img后死机
  2. SMC 产品带有SIL认证的型号
  3. json在线解析工具json formatter and json parser online
  4. 群晖用php装aria2,群晖安装Aria2和AiraNg
  5. JAVA 学习之implements的用法
  6. Uncaught TypeError: Cannot set properties of null (setting ‘innerText‘)解决方法
  7. word转图片(aspose-words-18.6 java版破解)
  8. 趣图:你永远不知道前端在对你的接口做什么
  9. 性能测试-基础+中级(二)【前端性能测试】
  10. 尚观学习笔记 用户权限管理