【问题标题】:Passing GoogleMapsAPI camera change through segue通过 segue 传递 GoogleMapsAPI 相机更改
【发布时间】:2014-01-24 23:57:30
【问题描述】:

所以我在视图控制器 (ViewControllerX) 中创建了一个带有大约 10 个不同标记的 Google 地图。所有标记都是根据从 MySQL 数据库中提取的纬度/经度坐标放置的。

现在我还有一个 TableView (ViewControllerY),它向用户显示附近标记的列表。当他们单击 tableview 中的某个位置时,它会将他们带到一个详细视图控制器,该控制器显示有关该位置的信息。也就是说,我在 DetailViewController 中添加了一个按钮,上面写着“在地图上显示”。

当然,当用户点击这个按钮时,我希望它把他们推送到 MapView 控制器(ViewControllerX)并放大相应的标记。

我觉得这应该很容易,但它让我发疯了。这是我在 DetailViewController 中使用的 segue,以及接收端的代码(在我的 GoogleMapViewController 中)。

我的问题:有谁知道我需要在 DetailViewController segue 和 GoogleMapViewController 中放置什么代码,以使相机放大到我在地图?

DetailViewController.m

- (IBAction)showonMap:(id)sender {

    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_1" bundle:nil];
    UIViewController *initViewController = [storyBoard instantiateViewControllerWithIdentifier:@"GoogleViewController"];
    [self.navigationController pushViewController:initViewController animated:YES];


    }

GoogleViewController.m(谷歌地图)

- (void)viewDidLoad
{

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:49.282237
                                                            longitude:-123.125966
                                  zoom:13];

    mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

    self.view = mapView;

    for (NSDictionary *dictionary in array) {
        assert([dictionary respondsToSelector:@selector(objectForKey:)]);

        CLLocationCoordinate2D position = {[[dictionary objectForKey:@"lat"] doubleValue],
            [[dictionary objectForKey:@"lng"] doubleValue]};
          NSLog(@"%f", position.longitude);

        GMSMarker *ann = [[GMSMarker alloc] init];
        ann.title = [dictionary objectForKey:@"Name"];
        ann.snippet = [dictionary objectForKey:@"Address1"];
        ann.position = position;
        ann.map = mapView;


}

【问题讨论】:

    标签: ios objective-c google-maps segue


    【解决方案1】:

    我认为您正在搜索setVisibleMapRect:animated: 方法,该方法将缩放到给定的MKMapRect

    您可以使用函数MKMapRectMake 创建MKMapRect,基于标记位置作为其中心以及宽度和高度,具体取决于您希望的缩放级别。

    希望它对你有用。

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多