私は2つのMKCoordinateRegionの間の結合をしようとしています。誰にどのようにこれを行うにはアイデアがありますか?2つのMKCoordinateRegionの間の結合を作る方法
答えて
ので、あなたが最初MKMapRect
に各MKCoordinateRegion
を変換し、その関数を呼び出し(およびMKCoordinateRegionForMapRect
機能を使用してバックMKCoordinateRegion
に結果を変換する)可能性が2 MKMapRects
を受け入れMKMapRectUnion
機能があります。 、そして、
- (MKMapRect)mapRectForCoordinateRegion:(MKCoordinateRegion)coordinateRegion
{
CLLocationCoordinate2D topLeftCoordinate =
CLLocationCoordinate2DMake(coordinateRegion.center.latitude
+ (coordinateRegion.span.latitudeDelta/2.0),
coordinateRegion.center.longitude
- (coordinateRegion.span.longitudeDelta/2.0));
MKMapPoint topLeftMapPoint = MKMapPointForCoordinate(topLeftCoordinate);
CLLocationCoordinate2D bottomRightCoordinate =
CLLocationCoordinate2DMake(coordinateRegion.center.latitude
- (coordinateRegion.span.latitudeDelta/2.0),
coordinateRegion.center.longitude
+ (coordinateRegion.span.longitudeDelta/2.0));
MKMapPoint bottomRightMapPoint = MKMapPointForCoordinate(bottomRightCoordinate);
MKMapRect mapRect = MKMapRectMake(topLeftMapPoint.x,
topLeftMapPoint.y,
fabs(bottomRightMapPoint.x-topLeftMapPoint.x),
fabs(bottomRightMapPoint.y-topLeftMapPoint.y));
return mapRect;
}
を実際に労働組合を行うには:
変換方法は、次のようになります
MKCoordinateRegion region1 = ...
MKCoordinateRegion region2 = ...
MKMapRect mapRect1 = [self mapRectForCoordinateRegion:region1];
MKMapRect mapRect2 = [self mapRectForCoordinateRegion:region2];
MKMapRect mapRectUnion = MKMapRectUnion(mapRect1, mapRect2);
MKCoordinateRegion regionUnion = MKCoordinateRegionForMapRect(mapRectUnion);
私は4.3と5.0の両方にほとんどのテストを行なったし、それがコンバージョンと思われます修正されていない
UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"heart.png"] imageByScalingProportionallyToSize:CGSizeMake(100, 100)]];
imageView.frame = CGRectMake(0, 0, 100, 100);
imageView.center = [mapView convertCoordinate:mapView.centerCoordinate toPointToView:canvasView];
[canvasView addSubview:imageView];
MKCoordinateRegion region = [mapView convertRect:imageView.frame toRegionFromView:canvasView];
MKMapRect maprect;
for (int i = 0; i < 5; i ++)
{
maprect = [mapView mapRectForCoordinateRegion:region];
NSLog(@"%f, %f, %f, %f", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta);
NSLog(@"%f, %f, %f, %f", maprect.origin.x, maprect.origin.y, maprect.size.width, maprect.size.height);
region = MKCoordinateRegionForMapRect([mapView mapRectForCoordinateRegion:region]);
}
14.718256、 -40.078125、63.837150、70.312500
78118912.000000、94811514.406252、52428800.000000、52428799.999997
17.416993、-40.078125、63.837150、70.312500
78118912.000000、91803983.982924、52428800.000000、53344239.567355
20.649080、-40.078125、63.837150、70.312500
78118912.000000、87976363.978412、52428800.000000、54699220.734715
24.548345、-40.078125、63.837150、70.312500
78118912.000000、 82962597.189840、52428800.000000、56765991.576236
29.305644、-40.078125、63.837150、70.312500
78118912.000000、76093086.024249、52428800.000000、60073659.997575
誰でも拡張子を使用して迅速同等を探している場合は、
extension MKCoordinateRegion {
func mapRectForCoordinateRegion() -> MKMapRect {
let dLat = span.latitudeDelta/2.0
let dLon = span.longitudeDelta/2.0
let topLeft = MKMapPointForCoordinate(
CLLocationCoordinate2DMake(center.latitude + dLat, center.longitude - dLon))
let botRight = MKMapPointForCoordinate(
CLLocationCoordinate2DMake(center.latitude - dLat, center.longitude + dLon))
return MKMapRectMake(
topLeft.x,
topLeft.y,
fabs(botRight.x - topLeft.x),
fabs(botRight.y - topLeft.y))
}
func unionWith(region: MKCoordinateRegion) -> MKCoordinateRegion {
let union = MKMapRectUnion(
self.mapRectForCoordinateRegion(),
region.mapRectForCoordinateRegion())
return MKCoordinateRegionForMapRect(union)
}
}
と同様に使用することができます
let region1 = ...
let region2 = ...
let regionUnion = region1.unionWith(region2)
- 1. 2つのバックボーンフェッチコールを作成して結合する方法
- 2. 2つのオブジェクトセットの結合方法
- 3. 2つのクロスエントロピーの結合方法
- 4. 2つのテーブル間の内部結合
- 5. 2つの結合テーブル間の関係
- 6. 2つのテーブルを接合テーブルに結合する方法
- 7. これらの2つの内部結合クエリを結合する方法
- 8. 2つのAndroidスタジオプロジェクトを1つに結合する方法
- 9. 2つのアプリケーションを1つに結合する方法
- 10. SQL 2つのテーブルを1つに結合する方法
- 11. 2つのテーブル間の値をRで連結する方法
- 12. 2つの列に2つのMySQLテーブルを結合する方法?
- 13. unixシステムで2つのファイルの列を結合する方法
- 14. ON句のない2つのテーブルを結合する方法
- 15. 2つのアンドロイドスタジオのコードを結合する方法
- 16. 同じテーブルの2つのクエリを結合する方法
- 17. 2つのテーブルを別のテーブルに結合する方法
- 18. Codeigneitorのget_where句で2つのテーブルデータを結合する方法
- 19. 2つのcase文の列を結合する方法
- 20. 2つのC++配列の結合を計算する方法
- 21. 差分テーブルの2つのクエリを結合する方法
- 22. django querysetのキーで2つのテーブルを結合する方法
- 23. スカラーのキーで2つのデータセットを結合する方法
- 24. アンダースコアオブジェクトの2つの配列を結合する方法は?
- 25. 親子関係で2つのデータフレームを結合する方法(連結とマージの間にあるもの)
- 26. 2つのデータベースを結合クエリでcodeigniterに結合する方法
- 27. 同じ結合テーブルから2つのSQLカウントを結合する方法
- 28. 2つの結果を結合する
- 29. 2つのgitリポジトリ間の競合を検出する方法。
- 30. 2つのテーブルを結合してこの結果を得る方法
これはまさに私が探していたものです、ありがとう – foux