1

私はiOSアプリに取り組んでおり、多くの場所(緯度と経度)を指定して、マップを自動的にズームし、マップビューを再配置してすべての場所を含めたいと考えています。

私が思いついた解決策は、任意の数の場所が与えられた場合、for ループを使用して緯度と経度の最高値と最低値を見つけることができるというものでした。また、中心点は、緯度/経度の最高値/最低値の間の中心位置である必要があります。そして、MKCoordinateRegionMakeWithDistance をコア ロケーション フレームワーク (distanceFromLocation) と組み合わせて使用​​すると、最も遠い位置と中心位置の間の距離を計算し、その地域を地図上に表示できます。

私の質問は、これを処理できるより良いソリューションまたはフレームワークはありますか? これを達成できる例はありますか?

4

2 に答える 2

2

MKCoordinateRegionMake緯度と経度の最高値と最低値がわかっている場合は、代わりに を使用して、少なくとも少し単純化できますMKCoordinateRegionMakeWithDistance。おそらく次のようなものです:

CLLocationDegrees highestLatitude;
CLLocationDegrees lowestLatitude;
CLLocationDegrees highestLongitude;
CLLocationDegrees lowestLongitude;

// Calculate the above variable values...

// These calculations would have to be more complex if you need to handle the fact that longitude values wrap
CLLocationDegrees latitudeDelta = highestLatitude - lowestLatitude;
CLLocationDegrees longitudeDelta = highestLongitude - lowestLongitude;
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(lowestLatitude + (latitudeDelta / 2.0f), lowestLongitude + (longitudeDelta / 2.0f));
MKCoordinateSpan span = MKCoordinateSpanMake(latitudeDelta, longitudeDelta);
MKCoordinateRegionMake(center, span);
于 2013-08-12T00:13:12.810 に答える
1

longitudeSpan と latitudeSpan を使用するものも使用できますsetRegion。これは、距離の計算を回避するため、より簡単です。

最小および最大の緯度と経度を計算します。次に、latSpan と longSpan を max - min から計算し、次に中間点 (minLat + latSpan / 2.0、minLon + lonSpan / 2.0) を使用して中心を計算します。

于 2013-08-12T00:11:36.210 に答える