如何在iOS(iPhone / iPad)中实现密度/热图效果?

Heat Map of Worldwide GDP (PPP) Per Capita 2008

这是中央情报局的世界概况图,每个国家根据他们的国内生产总值数字有不同的颜色深度。 高GDP国家有更深的色彩。

现在,我正在考虑将这种效果发展到我的iPhone / iPad地图应用程序。 我可能想使用苹果地图(可能不是谷歌地图,因为iOS 6有自己的地图),但我不知道如何得到这样的效果基于用户访问的国家。

例如,用户最多访问了美国,那么地图在美国就会显示更深的颜色。

我还没有看到iPhone应用程序中的这种效果。 任何build议,将不胜感激!

这应该可以使用MapKit和覆盖。 您需要为热图的每个区域构build覆盖图,然后根据数据设置颜色。 我怀疑最难的部分是获取你需要的地理数据来构build每个地区的path。 AFAICT, -pathForState:没有-pathForState:-pathForCountry:函数types,所以你需要为这个信息find另一个源。 但是在绘制覆盖图方面,MapKit中就是这样。 看看这个示例代码 。

编辑:

这个问题有一些指向哪里可以得到这些数据。

您可以从github上的D3项目获取json格式的坐标: https : //github.com/latentflip/d3/blob/master/data/world-countries.json

你可以下载这个json, 使用带有文件的NSJsonSerialization将json加载到字典或数组中,然后从那里构build覆盖。

还有一件事:你在技术上不是在热图之后; 你更像是一个“主题”地图。

试试LFHeatMap类。 似乎是你在找什么。 https://github.com/gpolak/LFHeatMap