再补充(2019年4月8日)

国家天地图地图服务需要携带key才能访问。别忘了去官网申请key。

补充(2018年8月2日)

现在leaflet.js已经支持EPSG4326。如果你使用的是新版本的leaflet,那么通过简单的配置就能实现:

var map = L.map('mapid', {crs: L.CRS.EPSG4326
}).setView([30, 120], 15);L.tileLayer('http://t1.tianditu.com/vec_c/wmts?layer=vec&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}', {maxZoom: 20,tileSize: 256,zoomOffset: 1
}).addTo(map );

如果你使用的是早版本的leaflet,那么下面的介绍会帮助你。

问题描述

使用Leaflet,主要是看中了它轻便、跨平台的特性。

1.Leaflet无法直接加载WMTS服务。

2.使用Leaflet扩展插件leaflet-tilelayer-wmts.js加载wmts,默认是只支持EPSG3857.无法支持EPSG4326.

Leaflet默认坐标系是EPSG3857,而天地图使用的投影方式是EPSG4326或者900913。

这样完全加不上嘛!

解决之道

查看leaflet-tilelayer-wmts.js源代码,试试能否找到解决方法。试了试,完全看不懂哎。我觉得我有必要再学习下EPSG和WMTS的相关知识了。

通过查找相关资料和代码分析,大体了解了切片的方式和加载的大致原理。

再回到leaflet-tilelayer-wmts.js,修改了内部的getDefaultMatrix方法:

原来的代码是:

getDefaultMatrix : function () {/*** the matrix3857 represents the projection * for in the IGN WMTS for the google coordinates.*/var matrixIds3857 = new Array(22);for (var i= 0; i<22; i++) {matrixIds3857[i]= {identifier    : "" + i,topLeftCorner : new L.LatLng(20037508.3428,-20037508.3428)};}return matrixIds3857;}

只改一个地方:

    getDefaultMatrix : function () {/*** the matrix3857 represents the projection * for in the IGN WMTS for the google coordinates.*/var matrixIds3857 = new Array(22);for (var i= 0; i<22; i++) {matrixIds3857[i]= {identifier    : "" + i,topLeftCorner : new L.LatLng(90,-180)};}return matrixIds3857;}

被自己的无耻打动了,就那么一个地方。

然后改改变量名称就可以了

总结

需要注意的地方,投影方式要一致。

比如加载时:

 var url='http://t0.tianditu.com/vec_c/wmts';var emap = new L.TileLayer.WMTS( url ,{tileSize:256,layer: 'vec',style: "default",tilematrixSet: "c",format: "tile",attribution: "<a href='https://github.com/mylen/leaflet.TileLayer.WMTS'>GitHub</a>&copy; <a href='http://www.ign.fr'>IGN</a>"});var map = L.map('map',{crs:L.CRS.EPSG4326,center: {lon:112 , lat:40},zoom: 13})map.addLayer(emap)

最后看结果(只加载了一个矢量图层):

Demo下载

leaflet加载国家天地图服务相关推荐

  1. arcgis android 天地图,arcgis runtime sdk for android 系列 - 在100.X系列中实现加载福建天地图...

    基本思路: 使用WebTiledLayer来加载福建天地图,要根据加载的地图获取正确的范围和比例尺. 关键技术点: 主体代码是参考张工加载国家天地图,需要将其中的范围改成福建正确范围. 具体实现步骤: ...

  2. leaflet 加载 geoserver 发布的 wms 服务

    1. 安装 geoserver 服务:略 2. 启动 geoserver: 3. 登录 geoserver 控制台:( 默认账号.密码为 admin.geoserver ) 4. 新建工作区: 5. ...

  3. leaflet加载天地图

    概述: leaflet是一个轻量级的并且开源的地图框架,是由esri发起的,由于其轻量.简单而被大家喜欢,本文带你学习如何在leaflet中加载天地图. 实现: leaflet加载天地图比较简单,做了 ...

  4. SuperMap iClient3D for WebGL中加载地方天地图

    作者:taco 在实际的场景应用中,通常都会在场景中添加一些底图.官网示例中已经包含了本地底图,iserver发布的底图,必应底图等.但是这些底图的清晰度并不能满足大部分人的需求.这时候我们就选择到了 ...

  5. Cesium 加载离线地图服务

    Cesium 可以加载自定义的地图服务,一般在私有云上应用比较广. 原始地图数据有很多地方都可以下载.比如常用的下载工具,付费的有水经注.91助手等,还有国家空间地理服务的官网上也有可用的数据.假设你 ...

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

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

  7. Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式

    文章目录 Pre 实现 方式一 通过 shared-dataids 方式 方式二 通过 ext-config方式 配置文件优先级 源码 Pre Spring Cloud Alibaba - 18 Na ...

  8. leaflet加载离线地图教程以及下载离线地图瓦片工具

    关于源码以及教程侵权请联系作者删除 最近在做一个leaflet加载离线地图的东西,结果在网上找到一份相关的教程以及源码 源码链接:https://pan.baidu.com/s/1cGew8PAU-L ...

  9. Leaflet加载百度地图

    为了验证一下百度地图的影像.矢量.注记等瓦片数据是否是坐标统一的,写了一个简单的leaflet加载百度影像瓦片.矢量瓦片.注记瓦片的页面,叠加在一起,看了一下,果然坐标系是统一的. <!DOCT ...

最新文章

  1. 谁是中国大学理科的王者?
  2. stm32怎么调用for循环内部的变量_循环中的异步amp;amp;循环中的闭包
  3. COS系统的前端演变和发展
  4. Mysql 5.7 错误号码1862 Your password has expired. To log in you must change it using a client...
  5. Java流程控制02 选择结构 if结构 switch结构
  6. CSS基础之清除浮动
  7. python-字典和json
  8. ArcGIS:如何创建地理数据库、创建要素类数据集、导入要素类、表?
  9. anaconda 安装scipy
  10. 2018年12计算机应用基础统考,2018年12月统考通知
  11. switch中使用枚举
  12. B站百万粉丝是如何做起来的?解密UP主成长之路
  13. 高效能人士的七个习惯简介
  14. VFP控制Excel插入图表
  15. ssh和rsh的区别、Linux rsh命令
  16. 串行口数据缓冲寄存器 SBUF 之 初步了解
  17. 计算机教师帮扶记录,教师结对帮扶工作总结范文(通用6篇)
  18. android 语音发短信,谷歌Android增加语音操作功能 可语音发短信
  19. 字符串编辑距离之Damerau–Levenshtein Distance
  20. HTC Desire 20 Pro曝光!三星Galaxy Z Flip DXOMARK相机评分公布

热门文章

  1. 3D人体姿态估计(介绍及论文归纳)
  2. Python 读取Excel, 隔行取数据, 保存Excel
  3. 中专计算机应用基础知识点归纳,中职学校《计算机应用基础》的教学
  4. 人脸识别与膜虹识别_指纹,人脸,虹膜三种生物识别优缺点比较
  5. Android仿苹果iphone数字锁屏解锁功能
  6. k8s还能这么玩?快速上手物联网应用的容器开发
  7. PAT——1114 全素日
  8. QLabel中html标签的使用
  9. java毕业设计在线测评系统2021Mybatis+系统+数据库+调试部署
  10. 计算机二级vb有填空吗,江苏计算机二级VB填空题.doc