0

作業中の iOS アプリ用のカスタム マップ (jpg) を作成しました。スクロールビューに大きな画像を表示しています。

画像の四隅すべての緯度/経度を既に取得していますが、マップの特定の場所にラベルを描画できるように、既知の場所を変換する方法がわかりません。ラベルの位置は緯度/経度に基づいているため、アプリの画像にオブジェクトを表示するには、緯度経度を ax/y 座標に変換する方法が必要です。

これに関する情報を探しましたが、見つけたものはすべて、アプリに実装するのではなく、緯度/経度を知ることに対処していました。

(地図はテキサス州くらいの広さです)

ガイダンスをいただければ幸いです

ありがとう

4

1 に答える 1

0

あなたの質問を数回読んだ後、私はあなたが何をしようとしているのかまだわかりません。しかし、ここに変換するためのいくつかのヒントがあります

jpg画像の(lat、lng)が(a、b)から(c、d)で、ピクセルが(width、height)であるとします。

したがって、(x、y)から(lat、lng)を取得するには、

lat = a + x/width*(c-a);
lng = b + y/height*(d-b);

ここで、同じ座標系を使用していることを確認してください。そうでない場合は、ピクセルが左上ではなく左下から始まると言ってから、それを反転します。

lat = a + x/width*(c-a);
lng = b + (height - y)/height*(d-b);

xとyをlatとlngから変換する場合も同様です。上記の式を逆にしてください。次に、逆ジオコーディングAPIを使用してGoogleから検索する必要があります。他のものを好まない限り、ここにいくつかのスニペットがあります:

NSString *urlStr = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=true", lat, lng];
NSData *dataFromServer = [NSData dataWithContentsOfURL: [NSURL URLWithString:urlStr]];

dataFromServerには、検索しようとしているものに関するJSON情報が含まれています。必要に応じて解析します。

これはあなたが探しているものですか?

于 2012-08-27T20:47:27.880 に答える