2012-02-04 70 views
2

我的客戶想要顯示來自哪裏他收到更新的所有國家的熱圖。就像他的一家商店在美國關閉了一樣,他希望我用紅色向全國展示,如果在巴西開了一家新的,那麼它應該以綠色展示巴西。而當我點擊巴西時,它會放大並顯示針對商店開啓和關閉的位置的註釋。iphone地圖視圖上的熱圖。

所以我的問題是可以有人指導我如何在地圖上顯示視圖中的特定國家特定的顏色..

在此先感謝。

+1

這是超越一個單一的問題的方式!將它分成幾個小塊並顯示您的嘗試。 – vikingosegundo 2012-02-04 09:47:17

回答

1

我希望你被低估,因爲StackOverflow社區喜歡那些一直在解決他們的問題,做一點或研究並思考他們的問題,然後問一個問題,可以在幾個段落中回答的人。

問一個問題,比如「有人問我做這個事情,而不是想着我會如何嘗試,我剛到這裏」讓你低估了。

您可以在MapKit中執行此操作,方法是跟蹤所有國家並使用MKPolygon重新創建它們的多邊形,但要獲取該多邊形數據將是一個困難的手動過程。

可能更容易的是從庫存藝術網站中找到世界的矢量地圖,然後在Photoshop中剪出每個國家並將其導出爲具有透明背景的單獨綠色位圖,因此每個圖像都有一個單獨的圖像國家和與所有紅色國家分開的背景圖像。

然後在您的應用程序中,將地圖圖像放入啓用縮放的UIScrollview中。如果你需要變焦很遠,你需要使用一個CATiledLayer,並且更多地切割圖像,但爲了你的目的,你可能會得到一個大約2-3倍於iPhone屏幕大小的大圖像。

當一個國家有一家新店時,您需要將該店的位置與地圖上的國家/地區圖像位置進行比較(很可能最簡單的方法是將商店的內部字典與國家/地區保持一致,而不是嘗試從他們的GPS位置在飛行中計算出來),並在地圖的滾動視圖內繪製合適的綠色圖像。

然後,當您放大時,將商店繪製爲小圖像,放在地圖上的正確位置。再次,您需要手動完成所有這些職位,並將其存儲在Plist或其他內容中。

很明顯,執行此操作的每一步都可能是一個StackOverflow問題,但請嘗試一下,看看卡住的位置,然後再回來問一些問題。