如何在iOS(iPhone / iPad)中实现密度/热图效果?
这是中央情报局的世界概况图,每个国家根据他们的国内生产总值数字有不同的颜色深度。 高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