在Google Maps openURL中使用位置管理器中的当前位置?

时间:2010-10-07 15:25:38

标签: iphone

今天已经对此进行了一段时间的研究但是我似乎无法理解如何将用户当前位置放入Google地图网址以打开填充了方向的Google地图应用。

我从其他教程中获取此代码并将其添加到我的应用中。我需要从下面的“开始”lat / lng进入我的IBAction以打开谷歌地图应用程序。

- (void)locationUpdate:(CLLocation *)location {
    // Lat/Lng of user (Needs to be sent to IBAction for btnDirections)
    CLLocationCoordinate2D start = { location.coordinate.latitude, location.coordinate.longitude };
}

以下是我的“获取路线”按钮的IBAction。

- (IBAction) onButtonClick:(id) sender {
    if(sender == btnDirections) {
        CLLocationCoordinate2D destination = { 52.48306771095311, -1.8935537338256836 };            
        NSString *googleMapsURLString = [NSString stringWithFormat:@"http://maps.google.com/?saddr=%1.6f,%1.6f&daddr=%1.6f,%1.6f",
                                         newLocation.coordinate.latitude, newLocation.coordinate.longitude, destination.latitude, destination.longitude];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:googleMapsURLString]];      
    }
}

我之前在另一个应用程序中完成了此操作,但是该视图包含一个显示用户位置的地图,这使我可以轻松获得lat / lng。

提前致谢。

3 个答案:

答案 0 :(得分:1)

只需将“当前+位置”作为参数传递给Google地图应用程序:

http://maps.google.com/maps?saddr=Current+Location&daddr=Heathrow+Airport+London

答案 1 :(得分:0)

在我的代码中,我有一个格式为的URL:

http://maps.google.com/maps?daddr=%f,%f&saddr=%f,%f

(这是从你的“地图”添加的。)

除此之外,您可以将设置的位置请求设置为在设定精度后停止,是否为您的目的设置了足够精确的位置?

哦,最后一点,获取当前位置可能无法在模拟器中运行。

答案 2 :(得分:0)

您需要使用户的当前位置可用于onButtonClick:方法。您正在为每个位置更新创建开始结构,但您永远不会在该方法之外使其可用。