如何启动地图应用并开始导航

时间:2016-03-25 09:56:20

标签: ios swift google-maps mapkit

在我的iOS应用中,我有一个用户想要到达的地方的纬度和经度(CLLocationCoordinate2D)。我想要的是,当按下相对按钮时,将启动地图应用程序并启动到该地点的街道导航。我怎样才能做到这一点?到目前为止,我的代码是:

@IBAction func launchMapsApp(sender:UIButton) {
    if (sender == self.navButton) {

        let mapItem = MKMapItem(placemark: MKPlacemark(coordinate: self.currentCoordinates, addressDictionary: nil))

        mapItem.name = ""

        //You could also choose: MKLaunchOptionsDirectionsModeWalking
        let launchOptions = [MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving, MKLaunchOptionsShowsTrafficKey: true]

        mapItem.openInMapsWithLaunchOptions(launchOptions as? [String : AnyObject])
    }

}

但有了这个,地图应用程序就会启动,我只是看到我的州(意大利)的地图,没有更多的事情发生。也许,因为我只在模拟器中运行? 感谢所有

2 个答案:

答案 0 :(得分:6)

你走在正确的轨道上:这是我的swift 2.0代码:

 $someTime = clone $obj->getTime1();
 $someTime ->sub(new \DateInterval('P'.$days.'D'));
 $event->setTime2($someTime);

我希望我的代码可以为您提供一些见解。

答案 1 :(得分:2)

您的原始代码看起来是正确的。正如您所说,可能的问题是您使用模拟器的方式。您可以通过模拟器中的“调试”菜单设置模拟位置(位置 - >自定义)。

要启动地图并开始导航到特定位置(而不是像在另一个答案中那样在所需位置打开带有标记的地图),我使用此功能(在Swift 3中):

let coordinates = CLLocationCoordinate2DMake(destLatitude, destLongitude)
let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
let mapitem = MKMapItem(placemark: placemark)
let options = [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving]
mapitem.openInMaps(launchOptions: options)

希望这会有所帮助......