【问题标题】:How to achieve density/heat map effect in iOS (iPhone/iPad)?如何在iOS(iPhone/iPad)中实现密度/热图效果?
【发布时间】:2013-01-03 16:53:15
【问题描述】:

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

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

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

例如,用户访问美国的次数最多,则地图显示美国的颜色较深。

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

【问题讨论】:

  • 使用xml边框文件保存国家坐标,解析xml渲染你地图的颜色层
  • 你可以试试 Arcgis 库

标签: iphone ios google-maps map ios6


【解决方案1】:

试试 LFHeatMap 类。似乎是您正在寻找的东西。 https://github.com/gpolak/LFHeatMap

【讨论】:

    【解决方案2】:

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

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

    还有一件事:从技术上讲,您并不追求热图;你所追求的更像是一张“专题”地图。

    【讨论】:

      【解决方案3】:

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

      编辑:

      This question 有一些关于从何处获取数据的指针。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-27
        • 1970-01-01
        • 2012-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多