-1

測量士が建物/敷地調査を行うのに役立つ iPad アプリケーションの開発を開始しています。基本的なシナリオは、アプリケーションが選択された建物またはサイトの平面図を表示することです (これは通常の iPad の方法で操作できます - ズーム、回転、パン)。調査者 (ユーザー) は、ピンに対して調査の詳細を入力するためのポップアウトがある計画にドロップするピンを選択できます。iOS マップ アプリを考えてみてください。ただし、マップの代わりに平面図/図を使用し、地理情報ではなく画像座標を使用します (推測します)。

私はUIImageViewに計画をロードしており、さまざまなジェスチャがすべてスムーズに機能しており、ズーム/回転/するときにピンを計画に「接続」またはロックする方法の大きな問題に直面しています。パン (および保存/復元) されます。addsubview を使用して、ピンを UIImageView オブジェクトとして基本計画イメージに追加するなど、いくつかのアイデアを試してみました。これは、ピンがベース イメージの位置にロックされるという点で機能しますが、ジェスチャが使用されると、ベース イメージとともにスケーリングおよび回転も行われます。このアプローチで私が持っている質問の種類は...ベース画像がズームおよび回転している間に、ベース画像(平面図/図)に関連してピンの位置を追跡する方法は? ピンがスケーリングしないようにする方法 (常に同じサイズ)? ピンの向きを保持しますか?.

繰り返しになりますが、iOS マップ アプリケーション (または Google マップ) を念頭に置いて、より高いレベルでこれに最適なアプローチについていくつかのガイダンスを求めていますが、明らかにより詳細で具体的であるほど良いです!

よろしくお願いします。マイケル。

4

2 に答える 2

1

この問題は、後で私が尋ねた別の質問で解決されました。これはここにあります... iOS-数学のヘルプ-ピンチジェスチャを使用したベース画像のズームには、オーバーレイされた画像が必要ですX/Y座標を調整します

基本的に、代わりにscrollViewを使用し、x、y...の配置に次の計算を使用しました。

newX = (pin.baseX * scrollView.zoomScale) + 
    (((pin.frame.size.width * scrollView.zoomScale) - 
    pin.frame.size.width) / 2);
newY = (pin.baseY * scrollView.zoomScale) + 
    ((pin.frame.size.height * scrollView.zoomScale) - 
    pin.frame.size.height);

注:「pin」は、プロパティ「baseX」および「baseY」を持つUIImageViewを継承するカスタムオブジェクトであり、zoomScale1.0でピンの元のx/y座標を格納します。私の完全な実装のサンプルについては、上記のリンクを参照してください。ありがとう。

于 2012-05-25T10:19:18.223 に答える
0

たとえば、画像が100 x 100で、x座標とy座標を設定するのではなく、ピンをマップの中心点に配置したい場合は、ピクセルを使用するのではなく、数学的な方法でピンの座標を計算する必要があります(50, 50) に (image.size.width/2,image.size.height/2) に設定すると、ビューを縮小するとピンが中心点に残るためです。

明らかにこれはかなり基本的な例ですが、ピンを画像に配置する場所に同じロジックを適用できます。

お役に立てれば。

また

画像がどれだけスケーリングされているかによって、新しい座標を計算できます。画像が再び 100 x 100 で、それを 50 x 50 に縮小し、ピンを同じ場所に残したい場合は、(x / (100/50), y / (100/50))

式は次のようになります。

x = x / (元の幅 / 新しい幅)

y = y / (元の高さ / 新しい高さ)

于 2012-05-18T16:21:08.747 に答える