maptalks+VUE 开发(2)-- 绘制多边形

本文详细介绍如何使用MapTalks库在地图上绘制带有不同样式和透明度的多边形,包括创建渲染层、设置图形颜色及透明度,并通过实例展示了如何动态添加多边形数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、效果图

多边形+批量修改图形样式

二、使用步骤

1.引入

参照上篇文章

2.创建VectorLayer(渲染层)

代码如下(示例):

var setStyle = []; // 用来set对应的图形颜色
var layer = new maptalks.VectorLayer("vector")
        .setStyle({
          filter: ["count"], // 参数字段名称,用于下方判断
          symbol: [
            {
              polygonFill: "#1bbc9b",// 图形覆盖颜色
              polygonOpacity: 0.5, // 图形覆盖区域透明度
              lineColor: "#000", // 线条颜色
              lineWidth: 2 // 线条宽度
            },
            {
              textName: "{count}",
              textSize: 40, // 字体大小
              textFill: "#fff" // 字体颜色
            }
          ]
        })
        .addTo(map);
        // 测试数据
        var all_areajson = [
        	{
		        data: [
		        	[120.67934355867, 31.3537775835051],
		        	[120.679495369867, 31.3532514762139],
		        	[120.679496834969, 31.3532515220261],
		        	[120.67952933559, 31.3531392797016],
		        	[120.679608108988, 31.3528642432155],
		        	[120.67934355867, 31.3537775835051]
		        ],
		        id: '1',
		        color: 'red'
	        },
	        {
		        data: [
		        	[120.784488349758, 31.3342529178723],
		        	[120.763580202957, 31.3320079394387],
		        	[120.761154448772, 31.3453159193853],
		        	[120.760231291861, 31.3503794500738],
		        	[120.760542777815, 31.3504675004089],
		        	[120.784488349758, 31.3342529178723]
		        ],
		        id: '2',
		        color: 'blue'
	        },
        ];
        for (let i = 0; i < all_areajson.length; i++) {
         setStyle.push({
          // filter:第一个参数用来判断对应的值,第二个对应上方参数名称,第三个判断相应的值;展示相应的文本内容和颜色
          filter: ["==","count",all_areajson[i].id],
          symbol: [
            {
              polygonFill: all_areajson[i].color, // 显示对应图形的颜色
              polygonOpacity: 0.1,
              lineColor: all_areajson[i].color,
              lineWidth: 3
            },
            // 用来显示对应图形的文本内容,不显示可删除
            {
              textName: "{count}",
              textSize: 20,
              textFill: "#fff"
            }
          ]
        });
         var data = all_areajson[i].data;
         for (let j = 0; j < data.length; j++) {
         	var polygon = new maptalks.Polygon(data[j], {
              properties: {
                count: all_areajson[i].id
              }
            }).addTo(layer);
         }
        }
layer.setStyle(setStyle);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值