地震属性热力图

载入需要的模块

import View from 'ol/View.js';
import VectorLayer from 'ol/layer/Vector'
import TileLayer from 'ol/layer/Tile';
import {OSM, Vector} from 'ol/source.js';
import XYZ from 'ol/source/XYZ.js';
import Heatmap from 'ol/layer/Heatmap'
import MousePosition from 'ol/control/MousePosition';
import {createStringXY} from 'ol/coordinate';

创建一个source文件,这个文件是热力图的数据来源文件。

var vecsourcekml1 = new Vector({
    url:文件存放路径,
    format: new KML(),
  
  })

创建矢量热力图,这个图是就是加载在地图上进行显示的图,他的数据源设置为上面的sourcevector文件

var vetorkml = new Heatmap({
    source:vecsourcekml1,
    radius:10,//设置半径
    blur:15//这应该是模糊度
  })

还有一些其他参数可以修改的,具体的可以参考openlayers的官网

再加载天地图的底图和注记层

var veclayer = new TileLayer({
    name: "天地图矢量图层",
    source: new XYZ({
        url: "http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=天地图密钥" ,
        wrapX: false
    })
  });
var veclayer2 =new TileLayer({
  title: "天地图矢量注记图层",
  source: new XYZ({
      url: "http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=天地图密钥" ,
  })
})

# 添加一个要素载入响应事件。

vetorkml.getSource.on('addfeature',function(e){
var name = feature.get('name');
var we = name.getstr(2);
feature.set('weight',we);
})

上面是一段伪代码,意思是通过要素的kml数据中的name属性,得到一个地震的等级,将这个等级设置为权重。

载入地图

var map = new Map({
    target:'heatmap',
    layers:[veclayer,vetorkml,veclayer2],
    controls:[Mouse],
    view:new View({
        center:[0,0],
        zoom:2,
        projection:'EPSG:4326'
})
  });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值