地图上的热图在iphone ....?

时间:2012-02-04 08:03:11

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:7)

我找到了解决方案......这就是我做到的..

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

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

  3. 这就是它的样子......

    enter image description here

    希望这有助于某人。

答案 1 :(得分:1)

我希望你被投票,因为StackOverflow社区喜欢那些有解决问题,做一点或研究和思考问题的人,然后提出一个可以在几段内回答的问题。 / p>

问一个问题,比如“有人让我这样做,而不是考虑我怎么尝试,我只是来到这里”让你失败。

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

更容易的是从一个艺术品网站找到世界的矢量地图,然后在Photoshop中,剪切每个国家并将其导出为具有透明背景的单独绿色位图,因此每个国家/地区都有一个单独的图像和所有国家都是红色的单独背景图片。

然后在您的应用中,您将地图图像放在UIScrollview中并启用缩放。如果你需要缩放到目前为止你需要使用CATiledLayer并且更多地砍掉图像,但是为了你的目的,你可能会得到一个大约是iPhone屏幕大小2-3倍的大图像。

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

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

显然,执行此操作的每个步骤本身都可能是StackOverflow问题,但请尝试并查看卡住的位置,然后再回来询问更多问题。