3

基本的に、POI (名前、緯度、経度) のリストがあり、現在の緯度/経度を基準にして UIView に描画したいと考えています。これらの POI (緯度/経度) をUIViewにマッピングするためのベスト プラクティスを探しています。

MKMapView を使用したくありません (地図データを表示する必要はありません)。

読んでいた:

http://developer.apple.com/library/ios/#documentation/general/conceptual/Devpedia-CocoaApp/CoordinateSystem.html

しかし、UIView で CLLocation から (x,y) に取得する方法がわかりません。私は現在の場所の周りにそれらの POI を描きたいだけです。たとえば、画面が 20 x 30 KM の領域を表す場合、POI を対応する (x,y) 座標にマップするにはどうすればよいでしょうか?

ありがとう。

4

4 に答える 4

2

あなたがしていることは少し奇妙ですが、緯度/経度をCGPointan と呼ばれる のような構造体に変換できますMKMapPoint。AnMKMapPointには、マップ上のポイントに対応するxとのy値があります。世界の平らな地図をレイアウトし、0,0 が左上にあると想像してください。MKMapPointその座標系を使用したマップ上のポイントです。

関数を使用してaを anMKMapPointForCoordinate()に変換しますCLLocationCoordinate2DMKMapPoint

MKMapPoint myMapPoint = MKMapPointForCoordinate(myLocationCoordinate);

ポイントのリストを取得したら、x と y の最大値と最小値を見つけ、それらの値を使用してすべてのポイントをビューに合わせるなどの操作を行う必要があります。そうしないと、非常に近い負荷が発生します。ビュー内の 1 か所をポイントします。

于 2012-12-15T15:40:37.480 に答える
0

惑星のモデル化と 3D 座標の 2D サーフェスへの変換には、さまざまなアプローチがあり、さまざまな方法によって生じる誤差は、地球のどの部分にあるかによって異なります。この質問は、あなたが求めているもののほとんどをカバーしているようです:

キャリブレーション ポイントを使用して地図上で経度と緯度を XY に変換する

于 2012-12-15T14:25:01.683 に答える
0

私の推測では、20KM x 30KM の地域では、地球は平らであると見なすことができるため、座標を直線的に外挿することができます。緯度と経度の 0.00001 の差がどれくらいの距離であるかについては、Google で調べることができると確信しています。

したがって、X 軸で 20Km を表す必要があり、現在の場所が緯度で 30.1234567 で、0.0000001 が 1 km の場合、座標を画面の中央に配置し、30.1234557 を最も左の X 座標として配置できます。

ここで答えを提供しようとしているのではなく、大声で考えようとしているだけです.同様のことをしたかったので、2つの座標が与えられたインターネットベースのアプリ(表示なし)としてそれを行いました.それらの間の距離を見つけます。

于 2012-12-15T13:58:55.563 に答える