首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 地圖導航:從當前位置繪製路線到指定標記點

     編輯:程式設計綜合問答

需求背景

在 iOS 應用開發中,常見需求是在地圖視圖上顯示一個大頭針(Annotation),並希望從使用者的當前位置到該標記點繪製一條導航路線。許多開發者在初次嘗試時不知從何著手,網上資料雖多但往往缺乏完整可用的範例。

解決方案一:直接呼叫 Google Maps 網頁版

最快速的方法是構造 Google Maps 的 URL Scheme,直接啟動系統地圖 App 或瀏覽器進行導航。以下為 Objective-C 範例碼:

CLLocationCoordinate2D start = { c_lat, c_long };
CLLocationCoordinate2D destination = { [[dic valueForKey:@"business_lat"] doubleValue], [[dic valueForKey:@"business_long"] doubleValue] };
NSString *googleMapsURLString = [NSString stringWithFormat:@"https://maps.google.com/?saddr=%1.6f,%1.6f&daddr=%1.6f,%1.6f&",
                                 start.latitude, start.longitude,
                                 destination.latitude, destination.longitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:googleMapsURLString]];

優點:零依賴、無需 API Key、程式碼極少。
缺點:會跳出 App,無法在 App 內嵌顯示路線;無法自訂路線樣式。

解決方案二:使用 Google Maps Directions API

若需在 App 內完整呈現路線(如繪製 Polyline、顯示轉彎指示、預估時間等),應改用 Google Maps Directions API。基本流程如下:

  1. 向 https://maps.googleapis.com/maps/api/directions/json 發送 HTTPS 請求,帶上 origin、destination、mode(driving/walking/transit)及 key(API Key)。
  2. 解析回傳 JSON 中的 routes[0].overview_polyline.points,使用 GMSPath(Google Maps SDK for iOS)或自行實作解碼邏輯將其轉為座標陣列。
  3. 以 GMSPolyline 將座標陣列繪製於 GMSMapView 上,並可自訂顏色、寬度、虛線等樣式。

此法雖需申請 API Key 並處理網路非同步與錯誤重試,但能提供最佳使用者體驗,適合正式產品。

小結

若僅需簡單導航跳轉,方案一足矣;若追求 App 內完整導航體驗,請採用方案二並妥善管理 API 配額與錯誤處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved