swift iOS9之后,打开第三方地图导航
发布时间:2020-12-14 06:39:48 所属栏目:百科 来源:网络整理
导读:先看实现后的效果,会自动检测手机安装的第三方地图。 step 1 在info.plist 里添加 URL Scheme 百度地图: baidumap:// 高德地图: iosamap:// google地图: comgooglemaps:// 腾讯地图:qqmap:// step 2 代码部分 func creatOptionMenu(){ optionMenu = UIA
先看实现后的效果,会自动检测手机安装的第三方地图。
step 1 在info.plist 里添加URL Scheme
百度地图:baidumap:// 高德地图:iosamap:// google地图:comgooglemaps:// 腾讯地图:qqmap://
step 2 代码部分
func creatOptionMenu(){ optionMenu = UIAlertController(title: nil,message: nil,preferredStyle: .ActionSheet) if(SHARE_APPLICATION.canOpenURL(NSURL(string:"qqmap://")!) == true){ let qqAction = UIAlertAction(title: "腾讯地图",style: .Default,handler: { (alert: UIAlertAction!) -> Void in let urlString = "qqmap://map/routeplan?from=我的位置&type=drive&tocoord=(self.centerLat),(self.centerLng)&to=(self.siteTitle)&coord_type=1&policy=0" let url = NSURL(string:urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!) SHARE_APPLICATION.openURL(url!) }) optionMenu.addAction(qqAction) } if(SHARE_APPLICATION.canOpenURL(NSURL(string:"iosamap://")!) == true){ let gaodeAction = UIAlertAction(title: "高德地图",handler: { (alert: UIAlertAction!) -> Void in let urlString = "iosamap://navi?sourceApplication=app名&backScheme=iosamap://&lat=(self.centerLat)&lon=(self.centerLng)&dev=0&style=2" let url = NSURL(string:urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!) SHARE_APPLICATION.openURL(url!) }) optionMenu.addAction(gaodeAction) } if(SHARE_APPLICATION.canOpenURL(NSURL(string:"comgooglemaps://")!) == true){ let googleAction = UIAlertAction(title: "Google地图",handler: { (alert: UIAlertAction!) -> Void in let urlString = "comgooglemaps://?x-source=app名&x-success=comgooglemaps://&saddr=&daddr=(self.centerLat),(self.centerLng)&directionsmode=driving" let url = NSURL(string:urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!) SHARE_APPLICATION.openURL(url!) }) optionMenu.addAction(googleAction) } let appleAction = UIAlertAction(title: "苹果地图",handler: { (alert: UIAlertAction!) -> Void in let loc = CLLocationCoordinate2DMake(self.centerLat,self.centerLng) let currentLocation = MKMapItem.mapItemForCurrentLocation() let toLocation = MKMapItem(placemark:MKPlacemark(coordinate:loc,addressDictionary:nil)) toLocation.name = self.siteTitle MKMapItem.openMapsWithItems([currentLocation,toLocation],launchOptions: [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsShowsTrafficKey: NSNumber(bool: true)]) }) optionMenu.addAction(appleAction) if(SHARE_APPLICATION.canOpenURL(NSURL(string:"baidumap://")!) == true){ let baiduAction = UIAlertAction(title: "百度地图",handler: { (alert: UIAlertAction!) -> Void in let urlString = "baidumap://map/direction?origin={{我的位置}}&destination=latlng:(self.centerLat),(self.centerLng)|name=(self.siteTitle)&mode=driving&coord_type=gcj02" let url = NSURL(string:urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!) SHARE_APPLICATION.openURL(url!) }) optionMenu.addAction(baiduAction) } let cancelAction = UIAlertAction(title: "取消",style: .Cancel,handler: { (alert: UIAlertAction!) -> Void in }) optionMenu.addAction(cancelAction) } 点击方法里,实现弹出
self.presentViewController(optionMenu,animated: true,completion: nil) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |