leaflet使用百度地图

参考:https://www.jianshu.com/p/b48ec99011c2

leaflet使用百度地图,叠加层使用硬件/谷歌坐标。
leaflet默认使用硬件/谷歌坐标,使用百度地图需要进行坐标偏移。就是把硬件/谷歌坐标转换成百度坐标。

网上搜到一些解决方法,但是总是不奏效。最后还是拿网上的改了下

参考了以下文章:
https://blog.csdn.net/u012087400/article/details/53744756
https://blog.csdn.net/u012087400/article/details/52847614

此方法是直接在地图投影方法出设置偏移。具体如下:
1、引入支持leaflet的proj4(https://github.com/kartena/Proj4Leaflet)
2、引入自定义百度地图层 tileLayer.baidu.js
3、leaflet地图初始化时crs参数设置为L.CRS.Baidu,layers设置为L.tileLayer.baidu

示例:
22.532934684, 114.0547117002是谷歌地图坐标

 

image.png

源码:

<html> 
<head > 
<script src="ui/js/jquery-1.11.3.min.js" ></script > 
<script src="ui/leaflet1.3/leaflet-src.js" ></script > 
<script src="ui/leaflet1.3/Proj4Leaflet/lib/proj4.js" ></script > 
<script src="ui/leaflet1.3/Proj4Leaflet/src/proj4leaflet.js" ></script > 
<script src="ui/leaflet1.3/leaflet-baidu/tileLayer.baidu.js" ></script > 
</head > 
<body > 
<div id="mapdiv" ></div > 
</body > 
<script type="text/javascript" > 
<!-- 
$(document).ready(function(){ 
 var options = { 
   center: [22.532934684, 114.0547117002], 
    zoom: 15, 
    crs: L.CRS.Baidu, 
    layers: [new L.tileLayer.baidu({ layer: 'custom',customid:'midnight'})] 
};
var map = L.map("mapdiv", options);
L.marker([22.532934684, 114.0547117002]).addTo(map).bindTooltip("会展中心").openTooltip();
}); 
//-- > 
</script > 
</html > 

附件:leaftet百度.rar

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue3中使用AMap.TileLayer.WMTS需要先引入AMap API和AMapUI组件库。 引入AMap API: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=YOUR_KEY"></script> ``` 引入AMapUI组件库: ```html <script src="https://webapi.amap.com/ui/1.0/main.js"></script> <link rel="stylesheet" href="https://webapi.amap.com/ui/1.0/ui/misc/MarkerList/examples/css/index.css"/> ``` 然后在Vue组件中使用AMap.TileLayer.WMTS,示例代码如下: ```html <template> <div id="map"></div> </template> <script> import AMap from 'AMap' export default { mounted() { const map = new AMap.Map('map', { zoom: 13, center: [116.397428, 39.90923] }) const layer = new AMap.TileLayer.WMTS({ url: 'https://wmts.amap.com/wmts', params: { 'VERSION': '1.0.0', 'LAYERS': 'map', 'STYLE': 'default', 'TILEMATRIXSET': 'w', 'FORMAT': 'image/png' }, tileUrls: [ 'https://wmts.amap.com/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=map&TILEMATRIXSET=w&FORMAT=image/png&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'https://wmts.amap.com/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=map&TILEMATRIXSET=w&FORMAT=image/png&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'https://wmts.amap.com/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=map&TILEMATRIXSET=w&FORMAT=image/png&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'https://wmts.amap.com/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=map&TILEMATRIXSET=w&FORMAT=image/png&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}' ], tileOpt: { 'crossOrigin': 'anonymous' } }) map.add(layer) } } </script> ``` 其中,url是WMTS服务地址,params是WMTS服务参数,tileUrls是瓦片地址列表,tileOpt是瓦片选项配置。在mounted生命周期中,创建AMap.Map对象,然后创建AMap.TileLayer.WMTS对象,最后将瓦片图层添加到地图中即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值