您现在的位置: 开发 > 地图 JS API v2.0 > 教程 > 图层 > 使用自有数据添加图层
前往查看新版文档

使用自有数据添加图层 最后更新时间: 2022年07月13日

本章介绍如何在高德地图内部使用使用自有数据添加图层。相关示例

包括:

  1. 图片/ Canvas 图层
  2. 灵活切片图层 TileLayer.Flexible

图片/ Canvas 作为自定义图层

本小节介绍用户如何添加自定义图片资源作为图层添加到地图上。

一. 图片图层 ImageLayer

图片图层类。将静态图片作为图层添加在地图上,图片图层会随缩放级别而自适应缩放。

// 创建图片图层
var imageLayer = new AMap.ImageLayer({
    bounds: new AMap.Bounds(),
    url: '图片url', // 图片 Url
    zIndex:2,
    zooms: [3, 18] // 设置可见级别,[最小级别,最大级别]
});

// 将图层添加至地图实例
map.add(imageLayer);

查看全部属性和方法  相关示例


二. Canvas 图层 CanvasLayer

Canvas 图层类。将Canvas作为图层添加在地图上。Canvas 图层会随缩放级别而自适应缩放(v1.4.2新增)。


    /*
     * 添加Canvas图层
     */
    var canvas = document.createElement('canvas');
    canvas.width = canvas.height = 200;

    var context = canvas.getContext('2d')
    context.fillStyle = 'rgb(0,100,255)';
    context.strokeStyle = 'white';
    context.globalAlpha = 1;
    context.lineWidth = 2;

    var radious = 0;
    var draw = function () {
        context.clearRect(0, 0, 200, 200)
        context.globalAlpha = (context.globalAlpha - 0.01 + 1) % 1;
        radious = (radious + 1) % 100;

        context.beginPath();
        context.arc(100, 100, radious, 0, 2 * Math.PI);
        context.fill();
        context.stroke();

        AMap.Util.requestAnimFrame(draw);
    };

    var CanvasLayer = new AMap.CanvasLayer({
        canvas: canvas,
        bounds: new AMap.Bounds(
            [116.328911, 39.937229],
            [116.342659, 39.946275]
        ),
        zooms: [3, 18],
    });

    map.addLayer(CanvasLayer);
    draw();


查看全部属性和方法    相关示例

灵活切片图层 TileLayer.Flexible 

灵活切片图层类,使用该图层可实现自定义每个切片的内容。通过指定 TileLayer.Flexible 类的 createTile 属性传入切片内容(v1.4.2新增)。具体方法如下:

var flexibleLayer = new AMap.TileLayer.Flexible({
  /**
   * 自定义切片属性,返回值为切片图片或 canvas   
   * @param x: 切片横向编号
   * @param y: 切片纵向编号
   * @param z: 切片层级
   * @param success: 创建成功回调
   * @param fail: 创建失败回调
   */
    createTile: function(x,y,z, success, fail){
        var image = imageList[x];
        return image;
    },
    cacheSize: 256, // 内存中缓存的切片的数量上限
    zIndex:2,
    zooms: [3, 18] // 设置可见级别,[最小级别,最大级别]
});

map.add(flexibleLayer);

查看全部属性和方法  相关示例

示例
中心
常见
问题
智能
客服