2012-02-04 13 views
2

私のクライアントは、更新プログラムを受け取った国のヒートマップを表示したいと考えています。アメリカで彼の店が閉鎖されているように、彼は全国を赤色で表示したいと思っています。新しいブラジルがブラジルで開かれたら、ブラジルは緑色で表示されます。私がブラジルをタップすると、それはズームインされ、店舗の開閉場所のピン注釈が表示されます。iPhoneのマップビューのヒートマップ....?

だから私の質問は、誰かが事前に...どのように特定の色でマップビュー上の特定の国を表示するには

おかげで私を導くことができるです。

+1

これは、1つの質問のためにオーバーロードする方法です!いくつかの小さな断片に分割し、あなたの試みを示す。 – vikingosegundo

答えて

7

まあ、私は。これに対する解決策を見出し、これは私がそれをしなかったか..です

  1. あなたは、私がhttp://thematicmapping.org/downloads/world_borders.phpからもらった国の境界の座標を取得する必要があります。データセットを取得し、http://hub.qgis.org/projects/quantum-gis/wiki/DownloadのQGISソフトウェアを使用して、.shpファイルを.kmlフォーマットに変換することができます。

  2. ここで、KMLから境界座標を抽出し、マップ上にMKPolygonを描画するために使用します。

これはどのように見えるのですか。これは誰かに役立ちます願って

enter image description here

1

StackOverflowコミュニティでは、問題の解決に少しでもやりがいがあり、問題を研究して考えている人が好きで、その後いくつかの段落で回答できる質問をしているので、

「誰かがこれをやるように頼んだのですが、どうやって試してみるかというより、私はここに来ました」という質問をして、あなたを下降させます。

MKPolygonsを使用してすべての国をトレースし、ポリゴンを再作成することでMapKitで行うことができますが、そのポリゴンデータを取得するのは難しい手作業です。

ストックアートサイトから世界のベクターマップを見つけ、Photoshopで各国を切り出し、透明な背景を持つ別々の緑のビットマップとしてエクスポートすると、それぞれに別々のイメージが表示されます国と赤のすべての国と別の背景画像。

次に、あなたのアプリケーションでは、拡大を有効にしてマップ画像をUIScrollviewに配置します。本当に遠くにズームする必要がある場合は、CATiledLayerを使用して画像をさらに細かく切り刻む必要がありますが、目的のためにiPhoneの画面サイズの約2〜3倍の大きさの画像を得ることができます。

国に新しいショップがある場合は、そのショップの位置を地図上の国の画像の位置と比較する必要があります(可能性が高いのは、地図上のスクロールビュー内に適切な緑の画像を描画します。

ズームインするときは、お店を地図上の正しい位置に小さな画像として描きます。繰り返しますが、手作業を経て、すべてのポジションがPlistや何かに格納されるようにする必要があります。

明らかに、これを行う各ステップは、それ自体でStackOverflowの質問になるかもしれませんが、試してみるとどこに行き詰まっているのかを確認してから、もう一度質問してください。

関連する問題