为 iOS 实现的 heatmap,作为 MKOverlay
实现,以实现与 MapKit 的无缝集成。
本项目基于 https://github.com/ryanolsonk/HeatMapDemo。经过更新以提高性能并添加 "diff" 模式。《a href="https://github.com/gpolak/LFHeatMap">https://github.com/gpolak/LFHeatMap 也有所参考。
该模式是一个标准heatmap,应该会产生与原始 HeatMapDemo
项目相同的结果,但速度更快。
该模式比较两组数据,以可视化哪些区域“变热”了,哪些区域“变冷”了。增加的活动以温暖的颜色显示,减少的活动以冷色显示。
获取 DTMHeatmap
的最简单方法是使用 Cocoapods
pod 'DTMHeatmap'
使用 DTMHeatmap
相对简单。按照上述说明安装后
DTMHeatmap
实例MKMapPoint
(使用 [NSValue value:&point withObjCType:@encode(MKMapPoint)]
包装)映射到权重在最简单的形式中,代码看起来像这样
- (void)viewDidLoad
{
self.mapView.delegate = self;
// Create DTMHeatmap
self.heatmap = [DTMHeatmap new];
[self.heatmap setData:myData];
[self.mapView addOverlay:self.heatmap];
// or...
// Create DTMDiffHeatmap
self.diffHeatmap = [DTMDiffHeatmap new];
[self.diffHeatmap setBeforeData:beforeData
afterData:afterData];
[self.mapView addOverlay:self.diffHeatmap];
}
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView
rendererForOverlay:(id<MKOverlay>)overlay
{
return [[DTMHeatmapRenderer alloc] initWithOverlay:overlay];
}
如您所见,标准热图 API 和 diff 热图的 API 之间的唯一区别在于差分热图需要两组数据 - 之前和之后。
为了演示基本使用,提供了一个示例项目(DTMHeatmapExample
)。目前有四种可视化选项