【iOS】Google Map SDK 複数マーカーを全て表示するためにズームレベルを自動調節する

【iOS】Google Map SDK 複数マーカーを全て表示するためにズームレベルを自動調節する

iOS Google Map SDKで
マップ上にある複数のマーカーを
全て表示するようにズームレベルを自動調節してフィットさせる方法です。

- (void)viewDidLoad {
    [super viewDidLoad];
    GMSMapView *mapView = [[GMSMapView alloc] init];
    self.view = mapView;
        
    GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] init];

    NSArray *coodinates = @[@[@"35.670399",@"139.7156319"],@[@"35.6668513",@"139.6750737"], @[@"35.6708947",@"139.7051047"], @[@"35.6399723",@"139.6973109"]];
    for (NSArray *cood in coodinates) {
        bounds = [bounds includingCoordinate:CLLocationCoordinate2DMake([cood[0] doubleValue], [cood[1] doubleValue])];
            
        GMSMarker *marker = [GMSMarker markerWithPosition:CLLocationCoordinate2DMake([cood[0] doubleValue], [cood[1] doubleValue])];
        marker.map = mapView;    
    }
        
    [mapView moveCamera:[GMSCameraUpdate fitBounds:bounds]];
}

GMSVisibleRegionを使用してGMSCoordinateBoundsを設定する方法もあります。

GMSVisibleRegion visibleRegion;
visibleRegion.farLeft = CLLocationCoordinate2DMake(xxxxx, xxxxx);
visibleRegion.farRight = CLLocationCoordinate2DMake(xxxxx, xxxxx);
visibleRegion.nearLeft = CLLocationCoordinate2DMake(xxxxx,xxxxx);
visibleRegion.nearRight = CLLocationCoordinate2DMake(xxxxx,xxxxx);

GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithRegion:visibleRegion];

TAG

  • このエントリーをはてなブックマークに追加
takano
takano takano

素晴らしいアプリを開発して世の中をもっとハッピーにしたい! ビール大好き!卓球大好き!音楽大好き! 最近は子供とおかあさんといっしょを見てるせいで「ブンバボーン」の脳内再生が止まりません。