mapbox展示symbol点图层

symbol图层,一般会有一个图片来代替这个点,而这个图片不支持相对路径,只支持绝对路径,所以一般很多人会直接引用服务器上的绝对路径。
但是其实也是可以支持相对路径的,只不过图片只能放在static下面,只有这个路径下的图片,才可以直接调用。
源数据可以是我的这种矢量切片的,也可以是geojson的,只要是点的都可以
添加source之后,和一般的图层加载方式不一样的是,这个需要loadimage一下图标,再加载图层

    const data = {
            id: "school",
            name:'学校',
            source: "school",
            'source-layer': "school", 
            type:'symbol',
            icon:'./static/assets/school.png',
            paint: {
            },
            layout: {
                visibility: 'visible',
                'icon-image':'school',
                'icon-size':1,
            },
        },  

	//处理图标形式的矢量切片服务
      handleSymbolType(data){
        let that=this;
        if (!this.map.getSource(data.id)) {
          this.map.addSource(data.id, {
            type: 'vector', // 此处vector即为矢量瓦片的类型
            scheme: "tms",
            'tiles': [
                '你的地址'
            ],
          tileSize: 512,
          })
        }
        this.map.loadImage(data.icon,function(error,image) {
          if(error) throw error;
          if(!that.map.hasImage(data.id)){
            that.map.addImage(data.id,image);
          }
          that.map.addLayer(data)
        })
      },

加载图片的方式用下面的办法也是可以的

         const videoPNG = new Image(20, 20)
         videoPNG.crossOrigin = ''
         videoPNG.src = data.icon
         videoPNG.onload =  function() {
          if(!that.map.hasImage(data.id)){
            that.map.addImage(data.id,videoPNG);
           }
          that.map.addLayer(data)
        /

贴个群号

WebGIS学习交流群461555818,欢迎大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值