2011-11-26 55 views
2

嗨,我有一个使用地图和位置的iPhone应用程序。在Xcode中打开本地谷歌地图

我希望用户能够按下一个按钮,该按钮可以通过转向指向该位置。我了解我不允许在应用中执行此操作,但我想知道是否有人可以告诉我是否可以创建指向本地Google地图应用的链接,该应用将从用户当前位置输入路线指向位置。

如果有可能你能告诉我怎么做?

任何帮助,将不胜感激。

感谢

回答

10

当然,这是可能的 - 你刚刚告诉系统打开谷歌地图的链接,与起始和结束地址设置参数。

您可能需要使用下面的谷歌地图URL尝试:

http://maps.google.com/maps?saddr=x,y&daddr=x,y

所以,你可以看到这两个参数是saddr(起始地址)和 daddr(目的地址)。您将这些设置为一对坐标,并用逗号分隔。

这是我写的一段代码,它会将用户从当前位置移动到特定位置(在我的情况下是硬编码的)。

这是核心位置委托方法,一旦它们的位置建立,它就会被调用。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    if (newLocation.horizontalAccuracy == oldLocation.horizontalAccuracy) { 
     [self.locationManager stopUpdatingLocation]; 
     CLLocationCoordinate2D coords = newLocation.coordinate; 
     NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%g,%g&daddr=50.967222,-2.153611", coords.latitude, coords.longitude]; 
     NSURL *url = [NSURL URLWithString:stringURL]; 
     [[UIApplication sharedApplication] openURL:url]; 
    } 
} 

要设置这一切了,你可以当你想设置它(说在viewDidLoad)intialise像这样一个位置管理器的属性添加到您的控制器,然后:

self.locationManager = [[CLLocationManager alloc] init]; 
self.locationManager.delegate = self; 
[self.locationManager startUpdatingLocation]; 

调用[[UIApplication sharedApplication] openUrl:url];会将其发送到系统的URL处理程序,该程序会检测到它是谷歌地图链接,并在地图中打开它。

希望可以帮到