【发布时间】: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