【问题标题】:heat map on map view in iphone....?iphone地图视图上的热图....?
【发布时间】:2012-02-04 08:03:11
【问题描述】:

我的客户想要显示他收到更新的所有国家/地区的热图。就像如果他的一家商店在美国关门,他希望我用红色展示整个国家,如果在巴西开了一家新店,那么它应该用绿色展示巴西。当我点击巴西时,它会放大并显示商店打开和关闭位置的图钉注释。

所以我的问题是有人可以指导我如何在地图视图上以特定颜色显示特定国家..

提前致谢。

【问题讨论】:

  • 这对于一个问题来说过于宽泛了!把它分成几个小块并展示你的尝试。

标签: iphone objective-c ios google-maps heatmap


【解决方案1】:

好吧,我已经找到了解决方案..我就是这样做的..

  1. 你需要得到我从http://thematicmapping.org/downloads/world_borders.php 得到的国家边界的坐标。您可以从此处http://hub.qgis.org/projects/quantum-gis/wiki/Download 获取数据集并使用 QGIS 软件将 .shp 文件转换为 .kml 格式。

  2. 现在从 KML 中提取边界坐标,然后用它在地图上绘制 MKPolygon。

这就是它的样子..

希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    我希望您被否决,因为 StackOverflow 社区喜欢尝试解决问题的人,做一些研究或研究并思考他们的问题,然后提出可以在几段中回答的问题。

    提出“有人让我这样做,而不是考虑如何尝试,我只是来到这里”这样的问题会让你被否决。

    您可以在 MapKit 中通过跟踪所有国家/地区并使用 MKPolygons 重新创建它们的多边形来完成此操作,但获取该多边形数据将是一个困难的手动过程。

    可能更容易的是从股票艺术网站找到一张世界矢量图,然后在 Photoshop 中,剪下每个国家,并将其导出为具有透明背景的单独绿色位图,这样每个国家/地区都有单独的图像以及一个单独的背景图片,其中所有国家都为红色。

    然后在您的应用程序中,您将地图图像放在启用缩放的 UIScrollview 中。如果您需要放大很远,您将需要使用 CATiledLayer 并进一步切碎图像,但出于您的目的,您可能会获得大约 2 - 3 倍 iPhone 屏幕大小的大图像。

    当一个国家/地区有一家新商店时,您需要将该商店的位置与该国家/地区图像在地图上的位置进行比较(可能最简单的方法是保留一份针对国家/地区的商店内部字典,而不是尝试计算这来自他们的 GPS 位置)并在地图的滚动视图内绘制适当的绿色图像。

    然后,当您放大时,在地图上的正确位置将您的商店绘制为小图像。同样,您需要手动完成并计算出所有这些位置并将其存储在 Plist 或其他东西中。

    显然,执行此操作的每个步骤本身都可能是 StackOverflow 问题,但请尝试一下,看看您卡在哪里,然后再回来问更多问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多