leaflet使用动态key和自定义xy轴

自定义xy轴

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
  <title>Leaflet 加载Cmap地图</title>
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
  <style>
	html, body,#map {
	    width: 100%;
	    height: 100%;
	}
  </style>
</head>
<body>
  <div id="map"></div>
  <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
  <script>
  		//动态修改xy轴
	  function getPath(number) {
	    let str = `${number}`;
	    while (str.length % 3 !== 0)
	      str = `0${str}`;
	    let path = "";
	    const length = str.length / 3;
	    for (let i2 = 0; i2 < length; i2++) {
	      if (path.length > 0)
	        path += "/";
	      path = path + str.substring(i2 * 3, (i2 + 1) * 3);
	    }
	    return path;
	  }
    const map = L.map('map').setView([35.173808,124.101563], 2); // 设置中心点坐标和缩放级别
	const auth_key="";//此处的auth_key需要动态计算
	const CMapTileLayer = L.TileLayer.extend({
	  getTileUrl: function(coords) {
		  console.log(coords)
	    const x = coords.x,
	        y = coords.y,
	        z = coords.z,
	        xPath = getPath(x),
	        yPath = getPath(y);
	    return L.Util.template('https://xxxxxxxxxxxxxxxxx/tiles/cmap/{z}/{xPath}/{yPath}.png?auth_key={auth_key}', {
	        xPath: xPath,
	        yPath: yPath,
	        z: z,
			auth_key:auth_key
	    });
	  }
	});
 
	const cmap = new CMapTileLayer();
	map.addLayer(cmap);
  </script>
</body>
</html>

动态key

var ourtiles = L.tileLayer('https://xxxxxxxxxxxxxx/tiles/i4-map-m/{z}/{x}/{y}.png?auth_key=' + getAuthKey(), {
        maxZoom: 21
    });
map = L.map(mapId, {
        //crs: L.CRS.EPSG3395, //x:113.73458862304689;y:22.466878364528448
        crs: L.CRS.EPSG3857, //海图
        center: [32.466878364528448, 183.73458862304689],
        zoom: 12,
        layers: [ourtiles],
        zoomControl: false,
        attributionControl: false
    });
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值