leaflet加载高德地图

一、高德瓦片

1.高德矢量地图:
'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}';
2.高德影像地图:
https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}

二、源代码

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <link
      rel="stylesheet"
      href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"
      integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI="
      crossorigin=""
    />
    <script
      src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"
      integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM="
      crossorigin=""
    ></script>
    <style>
      #map {
        height: 800px;
        width: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <div class="btns" style="position: absolute; right: 20px; top: 12px; z-index: 8000">
      地图类型:<input
        type="radio"
        value="1"
        name="mapType"
        checked="checked"
        id="normal"
      />矢量地图 <input type="radio" value="2" name="mapType" id="Satellite" />卫星地图
    </div>
    <script>
      let map = null;
      let tileLayer = null;
      let titleGaoDe = {
        normal:
          'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
        satellite: 'https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}'
      };
      initMap();
      //初始化地图
      function initMap() {
        map = L.map('map').setView([27.249374, 117.624815], 15);
        addTitleLayer("normal");
        L.marker([27.256151,117.630158]).addTo(map);
        const Normal = document.getElementById('normal');
        const Satellite = document.getElementById('Satellite');
        Normal.addEventListener('change', () => {
          cleartitleLayer();
          addTitleLayer("normal");
        });
        Satellite.addEventListener('change', () => {
          cleartitleLayer();
          addTitleLayer("satellite");
        });
      }

      function addTitleLayer(mapType){
        let url = titleGaoDe[mapType];
        tileLayer = L.tileLayer(url).addTo(map);
      }
      //移除瓦片层
      function cleartitleLayer() {
        if (map && tileLayer) {
          //removeLayer
          map.removeLayer(tileLayer);
        }
      }
    </script>
  </body>
</html>

 暂时没有纠正偏移

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: leaflet是一种流行的JavaScript库,用于创建交互式地图和地图应用程序。它具有轻量级、灵活和易于使用的特点,可以使用离线地图加载进行浏览。 要加载离线地图,首先需要准备地图图块。可以使用开源软件如MapBox Studio或TileMill来制作地图。将地图图块保存在磁盘或服务器上,并使用leaflet中的TileLayer来将其加载到地图上。 例如,在leaflet中添加离线地图的代码如下: ```javascript var offlineMap = L.tileLayer('path/to/tiles/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'Map data © OpenStreetMap contributors' }); var map = L.map('map').setView([51.505, -0.09], 13); map.addLayer(offlineMap); ``` 这里,tileLayer将离线地图图块的路径传递给tileLayer对象,然后将其添加到地图上。此处设置了最大缩放级别和属性信息。最后,使用L.map创建一个地图对象,并将TileLayer添加到地图上。 使用leaflet加载离线地图涉及了对地图数据的准备和处理,但一旦地图被加载到页面上,它将非常流畅和快速,使离线地图的浏览变得容易。 ### 回答2: Leaflet 是一款轻量级的开源 JavaScript 地图库,它可以用于创建交互式、可定制化的地图,支持多种数据格式和多种地图样式。其中一个重要的功能就是加载离线地图。 加载离线地图需要以下几个步骤: 1. 下载地图切片数据:离线地图需要下载相应的地图切片数据,可以从专门的地图数据提供商处获取,也可以使用自己的切片数据。地图切片数据通常以图块的形式存储,每个图块包含地图上的一小部分。 2. 将切片数据转换为合适的格式:Leaflet 支持的地图数据格式包括 PNG、JPEG、GIF、SVG 和 WebP 等,因此需要将切片数据转换为其中一种格式。 3. 将切片数据加载Leaflet:在 Leaflet 中,可以使用 TileLayer 类加载离线地图数据。可以通过指定切片数据存储的路径、分辨率、缩放级别等属性来设置 TileLayer。 4. 在 Leaflet 中显示地图:在 TileLayer 加载离线地图数据之后,需要将其添加到 Leaflet 地图对象中以进行显示。可以使用 map.addLayer() 方法将 TileLayer 添加到地图中。 需要注意的是,离线地图数据通常占用大量的存储空间,因此在下载和处理数据时需要谨慎。此外,离线地图数据也需要及时更新以保证地图的准确性和实时性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值