从iPhone应用程序启动Google地图应用程序。

时间:2009-10-14 01:53:31

标签: ios iphone objective-c google-maps uiapplication

我正试图从我的iPhone应用程序启动谷歌地图。

启动部分工作正常,但自从iPhone 3.1更新(我认为这是在这个时候),我得到了美国和加拿大的缩小地图,而不是放大我当前的位置。一切都运行良好,但有时候更新的东西停止正常工作。

这是我一直在使用的字符串。这适用于我的合作伙伴手机iOS 3.0和我们的iPod与iOS 2.2.1,但我的手机与iOS 3.1显示缩放的加拿大和美国地图。

  NSString *name = @"clothing";
NSString *latlong = [[NSString alloc] initWithFormat:@"%@,%@", latitudeString, longitudeString];

NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?q=%@&mrt=yp&ll=%@",
                      [name stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                      [latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];    
[latlong release];

非常感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:3)

这是我在one of my apps中使用的代码,它适用于3.1。 Google地图的参数为documented here

CLLocationCoordinate2D stationLocation = ...

NSString *urlString = [[NSString alloc]
     initWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f&dirflg=d",
        curLocation.latitude,
        curLocation.longitude,
        stationLocation.latitude,
        stationLocation.longitude];

NSURL *aURL = [NSURL URLWithString:urlString];
[urlString release];
[[UIApplication sharedApplication] openURL:aURL];