国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

IOS-高德地圖路徑繪制-Swift

這篇具有很好參考價(jià)值的文章主要介紹了IOS-高德地圖路徑繪制-Swift。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本文展示的是在IOS開(kāi)發(fā)中調(diào)用高德地圖進(jìn)行駕車(chē)路徑繪制,開(kāi)發(fā)語(yǔ)言是Swift。
IOS高德地圖集成請(qǐng)看:IOS集成高德地圖Api
使用路徑規(guī)劃功能需要集成高德地圖的搜索功能。

pod 'AMapSearch'

定義AMapSearchAPI

定義主搜索對(duì)象 AMapSearchAPI ,并繼承搜索協(xié)議。

import AMapSearchKit

var searchApi:AMapSearchAPI!

IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖

構(gòu)造 AMapSearchAPI

searchApi=AMapSearchAPI()
searchApi.delegate=self
//起點(diǎn)終點(diǎn)
startCoordinate        = CLLocationCoordinate2DMake(39.910267, 116.370888)
destinationCoordinate  = CLLocationCoordinate2DMake(39.989872, 116.481956)

IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖

設(shè)置駕車(chē)線路規(guī)劃參數(shù)

//請(qǐng)求參數(shù)類(lèi)
let request=AMapDrivingCalRouteSearchRequest()
//設(shè)置起點(diǎn)
request.origin = AMapGeoPoint.location(withLatitude: CGFloat(startCoordinate.latitude), longitude: CGFloat(startCoordinate.longitude))
//設(shè)置終點(diǎn)
request.destination = AMapGeoPoint.location(withLatitude: CGFloat(destinationCoordinate.latitude), longitude: CGFloat(destinationCoordinate.longitude))
//顯示字段類(lèi)型
request.showFieldType = AMapDrivingRouteShowFieldType.init(rawValue: AMapDrivingRouteShowFieldType.cost.rawValue|AMapDrivingRouteShowFieldType.tmcs.rawValue|AMapDrivingRouteShowFieldType.navi.rawValue|AMapDrivingRouteShowFieldType.cities.rawValue|AMapDrivingRouteShowFieldType.polyline.rawValue)!

發(fā)起駕車(chē)路線規(guī)劃

//發(fā)起駕車(chē)路線規(guī)劃
searchApi.aMapDrivingV2RouteSearch(request)

在回調(diào)中處理數(shù)據(jù)

實(shí)現(xiàn)代理方法onRouteSearchDone

    //路徑搜索結(jié)果
    func onRouteSearchDone(_ request: AMapRouteSearchBaseRequest!, response: AMapRouteSearchResponse!) {

        // 取出第一種路線方案
        let stringWithOptional = response.route.paths.first?.polyline!
        let distance=response.route.paths.first?.distance
        let time=response.route.paths.first?.duration
        
        print("距離:\(distance!)米,預(yù)計(jì)耗時(shí):\(time!)秒")
        let result = convertToArray(stringWithOptional)
        if var temp = result {
            let polyline = MAPolyline.init(coordinates: &temp, count: UInt(temp.count))
            mapView.add(polyline)
        }
    }
    //轉(zhuǎn)數(shù)組
    func convertToArray(_ coordinatesString: String!) -> [CLLocationCoordinate2D]? {
        // 去掉 "Optional(" 和 ")" 前綴和后綴
        let cleanedString = coordinatesString.replacingOccurrences(of: "Optional(\"", with: "").replacingOccurrences(of: "\")", with: "")
        
        var corArray = [CLLocationCoordinate2D]()
        let coordinatesArray = cleanedString.components(separatedBy: ";")
        
        for coordinate in coordinatesArray {
            let components = coordinate.components(separatedBy: ",")
            if components.count == 2, let longitude = Double(components[0]), let latitude = Double(components[1]) {
                let cor = CLLocationCoordinate2D.init(latitude: CLLocationDegrees(CGFloat(latitude)), longitude: CLLocationDegrees(CGFloat(longitude)))
                                        
                    corArray.append(cor)
            } else {
                return nil
            }
        }
        return corArray
    }

路線繪制

arrowTexture是圖片資源文件,按照官方文檔的說(shuō)法:紋理圖片須是正方形,寬高是2的整數(shù)冪,如64*64,否則無(wú)效;若設(shè)置了紋理圖片,設(shè)置線顏色、連接類(lèi)型和端點(diǎn)類(lèi)型將無(wú)效。

    //路徑繪制代理
    func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
        if let tempOver = overlay as? MAPolyline {
            let polygonView = MAPolylineRenderer.init(polyline: (overlay as! MAPolyline))
            // 參數(shù)設(shè)置
            polygonView?.lineWidth = 10.0
            polygonView?.strokeImage=UIImage.init(resource: ImageResource.arrowTexture)
            
          return polygonView
        }
        return nil
    }

另外,要是有箭頭的話,記得要是箭頭向下的,向上的話實(shí)際顯示箭頭會(huì)反過(guò)來(lái),奇奇怪怪的
IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖

起點(diǎn)終點(diǎn)圖標(biāo)設(shè)置(可跳過(guò))

需要實(shí)現(xiàn)這個(gè)代理,不設(shè)置也會(huì)有默認(rèn)的大頭針圖標(biāo)
default_common_route_startpoint_normal、default_common_route_endpoint_normal是圖標(biāo)資源文件

//圖標(biāo)設(shè)置代理
    func mapView(_ mapView: MAMapView!, viewFor annotation: MAAnnotation!) -> MAAnnotationView! {
        let pointReuseIndetifier = "pointReuseIndetifier"
        var annotationView: MAAnnotationView? = mapView.dequeueReusableAnnotationView(withIdentifier: pointReuseIndetifier)
        
        if annotationView == nil {
            annotationView = MAAnnotationView(annotation: annotation, reuseIdentifier: pointReuseIndetifier)
            annotationView!.canShowCallout = true
            annotationView!.isDraggable = false
        }
        annotationView!.image = nil
        if annotation.title == "起點(diǎn)" {
            annotationView!.image = UIImage(named: "default_common_route_startpoint_normal")
        }
        else if annotation.title == "終點(diǎn)" {
            annotationView!.image = UIImage(named: "default_common_route_endpoint_normal")
        }
        return annotationView
    }

IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖
IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖

結(jié)果

IOS-高德地圖路徑繪制-Swift,IOS-Swift學(xué)習(xí),ios,swift,cocoa,高德地圖文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-799777.html

到了這里,關(guān)于IOS-高德地圖路徑繪制-Swift的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 高德地圖繪制 GPX 數(shù)據(jù)路線

    高德地圖繪制 GPX 數(shù)據(jù)路線

    重要! 高德地圖 js api 文檔: https://lbs.amap.com/api/javascript-api-v2/documentation 你所有需要知道的關(guān)于 AMap 的所有對(duì)象,及其屬性、方法、事件都在這里面寫(xiě)明白了。 .gpx 文件是在分享地圖路徑時(shí)最常用的一種數(shù)據(jù)格式。里面包含了路徑點(diǎn)的相關(guān)信息,每個(gè)點(diǎn)還有可能擁有自己的時(shí)

    2024年01月19日
    瀏覽(21)
  • IOS快捷指令-高德地圖一鍵回家

    IOS快捷指令-高德地圖一鍵回家

    使用Siri打開(kāi)高德地圖,開(kāi)車(chē)導(dǎo)航回家 iosamap://path?sourceApplication=applicationNamesid=did=dlat=xxxdlon=xxxdname=xxxdev=0 dame參數(shù):目的地,如:北京市東城區(qū)天安門(mén)廣場(chǎng) dlat參數(shù):緯度,如39.90966 dlon參數(shù):經(jīng)度,如116.40418 目的地的經(jīng)緯度可以百度查詢到 EZ,可以直接呼喚Siri來(lái)回家了( ̄︶

    2024年02月10日
    瀏覽(25)
  • 高德地圖自定義繪制園區(qū)區(qū)域,區(qū)域描邊,并添加自定義內(nèi)容maker標(biāo)注

    高德地圖自定義繪制園區(qū)區(qū)域,區(qū)域描邊,并添加自定義內(nèi)容maker標(biāo)注

    繪制自定義區(qū)域第一步需要獲取指定區(qū)域的邊界坐標(biāo)點(diǎn)list,可以在高德地圖官網(wǎng)的工具中獲取 高德選點(diǎn)工具,拿到區(qū)域邊界點(diǎn)list后就是繪制,區(qū)域繪制有幾種方式,具體可查看高德的API,大體可用Wall和Prism兩種方式,區(qū)別是wall沒(méi)有區(qū)域填充顏色,Prism可以填充,所以我選擇

    2024年02月12日
    瀏覽(69)
  • 基于微信小程序Map標(biāo)簽及高德地圖開(kāi)源方法實(shí)現(xiàn)路徑導(dǎo)航

    基于微信小程序Map標(biāo)簽及高德地圖開(kāi)源方法實(shí)現(xiàn)路徑導(dǎo)航

    ????????微信小程序自帶地圖map標(biāo)簽,他是基于canvas畫(huà)圖功能進(jìn)行的地圖渲染,同時(shí)依賴(lài)微信的getlocation獲取經(jīng)緯度,繪制周邊地圖。地圖上可以標(biāo)點(diǎn),畫(huà)線,查看當(dāng)?shù)氐乩硇畔?。但是自帶的?dǎo)航功能模塊不能對(duì)個(gè)人開(kāi)發(fā)者公開(kāi)。 ????????高德地圖提供了基于微信小程

    2024年02月09日
    瀏覽(90)
  • 【微信小程序】微信小程序集成高德衛(wèi)星地圖完成多邊形繪制與截圖保存

    【微信小程序】微信小程序集成高德衛(wèi)星地圖完成多邊形繪制與截圖保存

    目錄 功能需求 使用的技術(shù)點(diǎn) 注意點(diǎn) 實(shí)現(xiàn)步驟 代碼 微信小程序-地圖所在的wxml 微信小程序-地圖所在的js 微信小程序-展示截圖結(jié)果的wxml 微信小程序-展示截圖結(jié)果的js H5-地圖所在的html 完成效果? 參考文檔 感謝閱讀,歡迎討論 打開(kāi)頁(yè)面展示衛(wèi)星地圖,用戶自行在地圖上繪制

    2024年02月06日
    瀏覽(965)
  • vue 高德地圖Loca.GeoJSONSource、Loca.PolygonLayer繪制3D樓房、AMap.LabelMarker文字標(biāo)注、Loca.ScatterLayer繪制水波擴(kuò)散效果

    假設(shè)已經(jīng)正確引入了高德地圖,這里使用2.0版本,注意了,1.4.x版本的使用和2.x版本的使用方式不一樣。有很多地方不兼容哦。 話說(shuō)3D效果這一塊,高德是真比不上百度地圖哦,要不是項(xiàng)目一直用的高德地圖,怕影響數(shù)據(jù),就真想換百度地圖了。百度地圖有很多地方,地級(jí)市

    2024年04月25日
    瀏覽(23)
  • H5頁(yè)面在ios的瀏覽器上使用 高德地圖 報(bào)當(dāng)前定位失敗Geolocation permission denied 或者 偶爾報(bào)AMap沒(méi)有找到的

    H5頁(yè)面在ios的瀏覽器上使用 高德地圖 報(bào)當(dāng)前定位失敗Geolocation permission denied 或者 偶爾報(bào)AMap沒(méi)有找到的

    ? ?可以去高德api查看:常見(jiàn)問(wèn)題 | 高德地圖API (amap.com) ? 圖中紅圈2,3,4,5,6對(duì)應(yīng)Geolocation permission denied報(bào)錯(cuò)的原因,可對(duì)應(yīng)修改。 如紅圈2:用戶打開(kāi)定位選項(xiàng)即可: ? 1.在index.html文件中; 2.在封裝高德api的文件下對(duì)應(yīng)調(diào)整: ?

    2024年02月12日
    瀏覽(25)
  • IOS-閉包學(xué)習(xí)-Swift

    閉包是自包含的函數(shù)代碼塊,可以在代碼中被傳遞和使用。Swift 中的閉包與 C 和 Objective-C 中的代碼塊(blocks)以及其他一些編程語(yǔ)言中的匿名函數(shù)(Lambdas)比較相似。 閉包可以捕獲和存儲(chǔ)其所在上下文中任意常量和變量的引用。被稱(chēng)為包裹常量和變量。 Swift 會(huì)為你管理在捕

    2024年01月24日
    瀏覽(26)
  • 【學(xué)習(xí)記錄】使用高德地圖API開(kāi)發(fā)一個(gè)簡(jiǎn)單基礎(chǔ)的WebGIS系統(tǒng)(GIS考研院校專(zhuān)題地圖網(wǎng)站)

    【學(xué)習(xí)記錄】使用高德地圖API開(kāi)發(fā)一個(gè)簡(jiǎn)單基礎(chǔ)的WebGIS系統(tǒng)(GIS考研院校專(zhuān)題地圖網(wǎng)站)

    本人只是一個(gè)普普通通的 GIS 學(xué)生, 下面是記錄我的寫(xiě)的一個(gè)作業(yè) demo 的內(nèi)容, 可能會(huì)存在一定的錯(cuò)誤, 歡迎在評(píng)論區(qū)私信交流! *完整功能展示看這里 (B站) *感興趣可以下載完整 demo 看看 (阿里云盤(pán)) 本網(wǎng)站(GIS考研院??梢暬瘜?zhuān)題網(wǎng)站)為2022年GIS考研初期準(zhǔn)備擇校的學(xué)生服務(wù)

    2024年02月13日
    瀏覽(92)
  • ios客戶端學(xué)習(xí)筆記(三):學(xué)習(xí)Swift的設(shè)計(jì)模式

    設(shè)計(jì)模式是指在軟件開(kāi)發(fā)中常用的一些解決問(wèn)題的方法和思想,它可以幫助你更好地組織代碼和提高代碼的可維護(hù)性。你需要學(xué)習(xí)常見(jiàn)的設(shè)計(jì)模式,如MVC、MVVM、單例模式、工廠模式等,在開(kāi)發(fā)應(yīng)用程序時(shí)應(yīng)用它們。 當(dāng)你學(xué)習(xí)常見(jiàn)的設(shè)計(jì)模式時(shí),可以參考以下設(shè)計(jì)模式的定義

    2023年04月22日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包