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

时间:2013-01-20 13:30:38

标签: iphone ios google-maps map ios6

http://www.econguru.com/heat-map-of-worldwide-gdp-ppp-per-capita-2008/

这是CIA世界概况图,每个国家根据其GDP数量有不同的颜色深度。高GDP国家的颜色更深。

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

例如,用户访问美国最多,然后地图在美国显示更深的颜色。

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

3 个答案:

答案 0 :(得分:0)

使用MapKit和叠加层应该可行。您需要为热图的每个区域构建一个叠加层,然后根据数据设置颜色。我怀疑最困难的部分是获取构建每个区域路径所需的地理数据。 AFAICT,MapKit中没有-pathForState:-pathForCountry:类型的函数,因此您需要找到该信息的其他来源。但是在绘制叠加层方面,MapKit就是这样。看看这个sample code

编辑:

This question对于从何处获取数据有一些指示。

答案 1 :(得分:0)

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

您可以使用该文件下载此json,use NSJsonSerialization以将json加载到Dictionary或数组中,然后从那里构建叠加层。

另一件事:你在技术上不是热图;你更喜欢的是一个“专题”地图。

答案 2 :(得分:0)

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