美文网首页
打开第三方地图应用

打开第三方地图应用

作者: 王玺__boy | 来源:发表于2017-07-03 22:41 被阅读0次

    本文转自自:http://blog.csdn.net/riven_wn/article/details/52912082

    先看实现后的效果,会自动检测手机安装的第三方地图。

    step 1 在info.plist 里添加URL Scheme

    百度地图:baidumap://

    高德地图:iosamap://

    google地图:comgooglemaps://

    腾讯地图:qqmap://

    step 2 代码部分

    [objc]view plaincopy

    print?

    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:"高德地图",style:.Default,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地图",style:.Default,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:"苹果地图",style:.Default,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:"百度地图",style:.Default,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)

    }

    点击方法里,实现弹出

    [objc]view plaincopy

    print?

    self.presentViewController(optionMenu,animated:true,completion:nil)

    相关文章

      网友评论

          本文标题: 打开第三方地图应用

          本文链接:https://www.haomeiwen.com/subject/kbazcxtx.html