2012-02-04 60 views
2

我的客户想要显示来自哪里他收到更新的所有国家的热图。就像他的一家商店在美国关闭了一样,他希望我用红色向全国展示,如果在巴西开了一家新的,那么它应该以绿色展示巴西。而当我点击巴西时,它会放大并显示针对商店开启和关闭的位置的注释。iphone地图视图上的热图。

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

在此先感谢。

+1

这是超越一个单一的问题的方式!将它分成几个小块并显示您的尝试。 – vikingosegundo 2012-02-04 09:47:17

回答

1

我希望你被低估,因为StackOverflow社区喜欢那些一直在解决他们的问题,做一点或研究并思考他们的问题,然后问一个问题,可以在几个段落中回答的人。

问一个问题,比如“有人问我做这个事情,而不是想着我会如何尝试,我刚到这里”让你低估了。

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

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

然后在您的应用程序中,将地图图像放入启用缩放的UIScrollview中。如果你需要变焦很远,你需要使用一个CATiledLayer,并且更多地切割图像,但为了你的目的,你可能会得到一个大约2-3倍于iPhone屏幕大小的大图像。

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

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

很明显,执行此操作的每一步都可能是一个StackOverflow问题,但请尝试一下,看看卡住的位置,然后再回来问一些问题。