# loca-heatmap 热力图
热力图,支持 3D 和不同颜色设置的聚合点数据显示。并且支持像素单位和米单位的热力聚合。
1. Loca 1.3 版本
# 基本用法
<div class="map-container">
  <amap-map :center="center" view-mode="3D">
      <loca-heatmap
        value="queue_len"
        lnglat="lnglat"
        :points="points"
        :radius="18"
        :color="color"
      >
      </loca-heatmap>
  </amap-map>
</div>
<script>
export default {
    data() {
      return {
        center: [121.499358, 31.240171],
        color: {
          0.5: '#2c7bb6',
          0.65: '#abd9e9',
          0.7: '#ffffbf',
          0.9: '#fde468',
          1.0: '#d7191c'
        },
        points: []
      };
    },
  methods: {
    heatmapComplete(heatmap){
      console.log(heatmap)
    }
  },
  mounted(){
   const points = require('../mock/roadHeat.json');
   points.forEach(point => point.lnglat =  [point.lng, point.lat] )
   // points 数据结构 [{"queue_len": 26.67,"len": 22,"inter_name": "延安中路","lng": 121.445626, "lat": 31.220965, "lnglat": [121.445626,31.220965],...},]
   this.points = points;
   console.log(this.points)
  }
}
</script>
<style>
.map-container {
  height: 400px;
  width: 100%
}
</style>
# 图层参数
| 参数 | 类型 | 说明 | 
|---|---|---|
data |  Array  |  为必填值,data为点对象的数组,数组对象必须包含 lnglat: [lng, lat] 经纬度信息字段 | 
zIndex |  Number |  图层显示层级, 默认:10 | 
visible |  Boolean |  图层是否可见  默认:true | 
type |  string |  为必填值,默认值 json,  数据格式, 默认 JSON 格式 | 
radius |  Number |  为必填值 热力的聚合半径,支持每个点的半径单独设置,单位取决于 unit 字段。支持动画过渡效果。 | 
value |  String |  为必填值 指定热力映射的字段名, 默认为 value, | 
color |  Object |  热力的颜色梯度,值是对象映射的形式。 | 
opacity |  Number |  图层的透明度, 取值范围[0,1],默认:1 | 
height |  Number |  热力最高点的高度值,单位取决于 unit 字段。支持动画过渡效果。 | 
2. Loca 2.0 版本
<div class="map-container">
  <amap-map :center="center">
    <loca>
      <loca-heatmap
        value="avg"
        :points="points"
        :radius="200000"
        unit="meter"
        :height="500000"
        :color="gradient"
        @complete="heatmapComplete"
        :heightBezier = "[0, .53, .37, .98]"
      >
      </loca-heatmap>
    </loca>
  </amap-map>
</div>
<script>
export default {
    data() {
      return {
        center: [121.499358, 31.240171],
        gradient: {
          0.1: '#2A85B8',
          0.2: '#16B0A9',
          0.3: '#29CF6F',
          0.4: '#5CE182',
          0.5: '#7DF675',
          0.6: '#FFF100',
          0.7: '#FAA53F',
          1: '#b5450a',
        },
        points: null
      };
    },
  methods: {
    heatmapComplete(heatmap){
      console.log(heatmap)
    }
  },
  mounted(){
    this.points = new Loca.GeoJSONSource({url: 'https://a.amap.com/Loca/static/loca-v2/demos/mock_data/traffic.json',});
  }
}
</script>
<style>
.map-container {
  height: 400px;
  width: 100%
}
</style>
# 图层参数
| 参数 | 类型 | 说明 | 
|---|---|---|
data |  Array | Object  |  为必填值,data可以为点对象的数组,或者是geojson格式的对象,或者是直接传入Loca.GeoJSONSource()处理过后的对象 | 
zIndex |  Number |  图层显示层级, 默认:10 | 
opacity |  Number |  图层的透明度, 取值范围[0,1],默认:1 | 
visible |  Boolean |  图层是否可见  默认:true | 
radius |  Number |  为必填值 热力的聚合半径,支持每个点的半径单独设置,单位取决于 unit 字段。支持动画过渡效果。 | 
value |  String |  热力点的值的 key 值, 默认为 value,每个热力点的值,会影响最终的聚合结果,值越高代表越热。 | 
color |  Object |  热力的颜色梯度,值是对象映射的形式。 | 
height |  Number |  热力最高点的高度值,单位取决于 unit 字段。支持动画过渡效果。 | 
max |  Number |  null | 
min |  Number |  null | 
unit |  String |  px |