2

次の画像は、www.Trimaps.com から取得したものです。

Google マップからカスタム画像へのエリアのマッピング

(ここでの画像の使用が許可されていることを願っています。許可されていない場合は、お知らせください。すぐに削除します)。

これらの画像は、私が達成しようとしていることを完全に説明しています。

必要なすべてのデータがあります。

  1. 目的のエリアの 4 隅の緯度/経度 (10 進値) (Google マップから)。

  2. 山の美しいカスタム画像 (右の画像と同様)。

必要なのは数学だけです。私はすべての式、スケーリング/変換を試しました。名前を付けてください。

純粋な数学、比較的単純な数学の方程式に依存しているため、可能だと確信しています。

www.Trimaps.com は現在、コードを使用して 300 ドルを要求しています。敬意を表して、私にとっては少し高価です...

オープンソースについて知っている人、または自分でこれを達成した人はいますか?

更新: ところで、コピーして貼り付けるコードを求めているわけではありません。私はコーディングする方法を知っています。

手順、背後にあるロジック、数式について質問しています。

どんな種類の助けも大歓迎です:)

みんなありがとう!

4

1 に答える 1

3

それはあなたが余裕があるかもしれない複雑さにも依存します。たとえば、大きな地図画像を小さなタイルに分割し、オンデマンドでロードする方がよいでしょう。

タイルを使用するかどうかに関係なく、UIScrollViewを使用できます。私は単一の巨大な画像の解決策を短くします(このような大きな画像を使用しても大丈夫かどうかはわかりません)。キロメートルに対する度数の比率の計算式を選択する必要があります。ウィキペディアで多くのことを見つけることができます:緯度または検索km per degree latitudeなど。1度の緯度と1度の経度に何kmあるかがわかっている場合は、scrollViewのズームレベルとともにこの情報を使用できます。したがって、scrollViewのズームレベルに応じて、1ポイントに何キロあるかを取得する必要があります。地理的な長方形の座標、scrollViewのフレーム、scrollViewのコンテンツの状態を知っている限り、比率を簡単に取得できます。

これらすべての情報を使用して、位置座標をビューポイントに変換したり、その逆を行ったりすることができます。したがって、ロケーションピンなどを配置することもできます。

また、これを確認してください:http: //mapbox.com/mobile/とこの回答

更新: 最初は、私の答えが受け入れられないのを見るのは本当に不快ですが、とにかく、いくつかの情報を追加します。次回は気になりません。UIScrollViewのcontentOffsetプロパティとcontentSizeプロパティを確認してください。つまり、contentSizeとの組み合わせを使用して、自分でズームレベルを管理できるということですcontentView's frame。つまり、たとえばUIImageViewのサイズを変更し、UIScrollViewのcontentOffsetを使用して表示フレームを配置することができます。

于 2012-10-25T19:54:18.897 に答える