图文解说ChinaCock高德地图组件-制作热力分析图 (六)


这是实际项目截取的热力图,接下来,看看我们怎么实现他?

地图组件,给我们提供了Heatmaps属性,管理热力图,这是一个List,支持我们在地图上增加多个热力图,并且控制每个热力图的隐藏与显示。

具体操作分三步:

一、取得热力图对象

为了增加一个热力图,需要调用Heatmaps.Add方法,该方法返回一个热力图对象。

    AHeatmap := self.CCuniGUIAMap1.Heatmaps.Add;

二、为热力图填写数据

通过为热力图对象AHeatmap填加数据,就能得到要显示的热力图。具体实现见代码,我把一个kbmMWClientQuery查询到的结果,填加到AHeatmap.DataSet.Data中。

with ClientQuery1 do 
begin
      First;
      while not eof do
      begin
        // 添加热力图数据
        with AHeatmap.DataSet do
        begin
          // max: Number 权重的最大值, 其中max不填则取数据集count最大值
          Max := 1000;//热力图的阀值
          with Data.Add do
          begin
            Lng := FieldByName('FJD').AsFloat;//经纬度
            Lat := FieldByName('FWD').AsFloat;//经纬度
            Count := FieldByName('FData1').AsFloat;//
          end;
        end;
        next;
      end;
end;

三、显示热力图

填加完数据,再把图加到地图上,热力图就显示出来了。

AHeatmap.AddToMap;