mapbox 加载json数据 和数据中颜色 和高度 并根据数值加载颜色

在这里插入图片描述
代码

   //添加geojson数据
        map.on('load', function () {
            map.addLayer({
                'id': 'room-extrusion',
                'type': 'fill-extrusion',
                'source': {
                    'type': 'geojson',
                    'data': './json/gd.json',
                },

                // //绘画功能
                'paint': {
                    // Get the fill-extrusion-color from the source 'color' property.   从source 'color'属性获取fill- extrusive -color。  
                    // 'fill-extrusion-color':'rgba(200, 100, 240, 0.4)',
                    // "fill-extrusion-color":['get','color'],//加载数据中的颜色
                    'fill-extrusion-color': {//根据数值中加载相对应颜色
                        property: "height", // this will be your density property form you geojson
                        stops: [
                            [0, "#ffd0a6"],
                            [10, "#ffd0a6"],
                            [100, "#ffaa7f"],
                            [500, "#ff704e"],
                            [1000, "#f04040"],
                            [10000, "#b50a09"]
                        ]
                    },
                    //    从source 'height'属性获取填充-挤出-高度。  
                    'fill-extrusion-height': ['get', 'height'],
                    'fill-extrusion-opacity': 1
                  
                }
            });
      

        });
    

加载数据

  'source': {
                    'type': 'geojson',
                    'data': './json/gd.json',
                },

加载数据中的颜色

    // "fill-extrusion-color":['get','color'],//加载数据中的颜色
【color 是 数据中的属性】

加载数据中的高度

                    'fill-extrusion-height': ['get', 'height'],
                    【geight是 数据中的高属性】,没有的话 可以写一个属性

根据数值判断添加不同颜色

 'fill-extrusion-color': {//根据数值中加载相对应颜色
                        property: "height", // this will be your density property form you geojson
                        stops: [
                            [0, "#ffd0a6"],
                            [10, "#ffd0a6"],
                            [100, "#ffaa7f"],
                            [500, "#ff704e"],
                            [1000, "#f04040"],
                            [10000, "#b50a09"]
                        ]
                    },
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现可点击的表格数据Mapbox主图联动,你可以使用Vue的事件绑定和数据双向绑定。 首先,在Vue,你可以使用`<table>`元素和`<tr>`、`<td>`等标签来创建表格。为了使表格数据可点击,你可以使用`v-on:click`指令来绑定点击事件,并将数据传递给事件处理函数。 例如,你可以在表格的每个数据行上添加`v-on:click`指令,同时将该行数据作为参数传递给一个点击事件处理函数。示例代码如下: ```html <table> <tr v-for="(item, index) in tableData" :key="index" v-on:click="handleClick(item)"> <td>{{ item.name }}</td> <td>{{ item.value }}</td> </tr> </table> ``` 在上面的代码,`tableData`是一个数组,包含了表格的所有数据。当用户点击表格的某一行数据时,`handleClick`方法会被调用,并且将该行数据作为参数传递给该方法。 接下来,在`handleClick`方法,你可以根据点击的数据项来更新Mapbox主图的显示内容。为了实现Mapbox主图的联动,你可以使用Vue的数据双向绑定,将Mapbox主图的显示内容与Vue组件的数据进行绑定。 例如,你可以在Vue组件的`data`选项定义一个`mapData`对象,用于存储Mapbox主图的显示内容。然后,在`handleClick`方法,你可以根据点击的数据项来更新`mapData`对象,并触发Vue的响应式更新,从而更新Mapbox主图的显示内容。示例代码如下: ```javascript export default { data() { return { tableData: [...], // 表格数据 mapData: { // Mapbox主图数据 center: [116.38, 39.9], zoom: 12, // ... }, }; }, methods: { handleClick(item) { // 更新mapData对象 this.mapData.center = item.center; this.mapData.zoom = item.zoom; // ... }, }, }; ``` 在上面的代码,`mapData`对象的`center`和`zoom`属性表示Mapbox主图的心点和缩放级别。当用户点击表格的某一行数据时,`handleClick`方法会根据该行数据来更新`mapData`对象的`center`和`zoom`属性,从而更新Mapbox主图的显示内容。并且由于`mapData`对象与Vue组件的数据进行了双向绑定,所以Mapbox主图的显示内容也会自动更新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值