用過微信的應該都知道這個功能,對方發一個位置給你,點進去地圖展示對方跟你的當前位置,界面提供了選擇各個地圖應用進行導航,更好這次需求也要搞這個功能。
創新互聯-專業網站定制、快速模板網站建設、高性價比彭州網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式彭州網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋彭州地區。費用合理售后完善,10余年實體公司更值得信賴。
這個功能實現不難,個人感覺比應用內嵌入第三方地圖導航SDK用起來更舒服,更接地氣,逼格也高點,主要要的是簡單(畢竟人家啥都處理好了)。
上項目效果圖(還是想吐槽下傻逼的產品,為啥不直接照搬微信的界面,至少比自己的好看)
這里有一個重點,主要是彈出的選擇框的選項并不是固定的,而是根據你手機上有沒有安裝這個地圖應用,沒有就不會出現。
這里就要用到
- (BOOL)canOpenURL:(NSURL*)urlNS_AVAILABLE_IOS(3_0);
判斷手機上有沒有安裝該地圖應用。
所以要知道地圖應用的url?Scheme。
這里提供了幾個常用地圖應用的url?Scheme:
baidumap//百度地圖
iosamap//高德地圖
comgooglemaps//谷歌地圖
qqmap//騰訊地圖
….//其他地圖省略
蘋果地圖不需要,因為它是蘋果地圖啊,這樣也好,能保證沒有安裝其他地圖app,至少還有一個蘋果地圖,而且蘋果地圖在IOS9也做的越來越好了,本身API提供了一個跳轉打開方法。
這里插入一個小細節,在IOS9之后,蘋果進一步完善了安全機制,必須在plist里面設置url scheme白名單,不然無法打開對應的應用
前方高能,重點來了!!!!
這里我抽了個方法返回支持導航的地圖信息數組:
這里只要傳入提供的坐標點,就打包好了需要的信息。
什么,你說彈出?那玩意自己去寫,不想寫,自己去找,不然就用系統的actionSheet。
最后結尾還有個小插曲,由于我們后臺給的目標經緯度是百度坐標系,項目用的也是百度地圖,界面上展示是沒啥問題了,但是由于不同的地圖有自己的坐標系,而要用它們進行導航,那傳給它們的必須是標準的經緯度坐標,這就蛋疼了,百度這坑爹只有提供了標準的轉成它自己的坐標系,而沒有提供反轉的方法,去官網開發者社區發帖,也沒用,只是回答你沒有提供,所以我猜傳言百度地圖SDK是實習生寫的還是有一定的可靠性。
沒辦法,只能求爺爺告奶奶,去查找對應的資料,還是找到一個第三方的轉換方法 ,但是仍然有一定的偏差,能接受的就接受吧。
1 適用環境
移動設備瀏覽器端應用和移動App應用均可調起iOS版百度地圖。
2 協議形式
無論是基于移動瀏覽器端的應用開發還是基于iOS
SDK的應用開發均可采用如下協議調起iOS版百度地圖。該協議要正確執行除了要參數填寫正確外,還必須要安裝iOS百度地圖。
protocol://product/[service/]action[?parameters] //parameters功能參數定義,具體規范見功能協議說明
示例:
baidumap://map/direction?origin=中關村destination=五道口mode=drivingregion=北京
//本示例是通過該URL啟動地圖app并進入北京市從中關村到五道口的駕車導航路線圖
組成說明:
參數名稱
參數說明
是否必選
備注
protocol
產品線協議頭,例如baidumap表示百度地圖
必選
product
產品線名稱,例如如百度地圖客戶端(map)
必選
product下可直接跟方法,當然產品線也可增加一個service級別
service
具體功能服務名稱,如POI檢索服務(place)
必選
action
方法名稱,如POI檢索中的詳情檢索(detail)
必選
parameters
方法參數,參考各個功能協議說明的定義
必選
3 功能使用說明
3.1 標注
調用該接口可調起IOS百度地圖,且在指定坐標點上顯示點的名稱和內容信息。
服務地址
baidumap://map/marker //iOS服務地址
參數說明
參數名稱
參數說明
是否必選
備注
location
lat緯度,lng經度
必選
title
標注點顯示標題
必選
product下可直接跟方法,當然產品線也可增加一個service級別
content
標注點顯示內容
必選
coord_type
坐標類型,可選參數,默認為bd09ll。
可選
允許的值為bd09ll、gcj02、wgs84。bd09ll表示百度經緯度坐標,
gcj02表示經過國測局坐標,wgs84表示gps獲取的坐標。
zoom
展現地圖的級別,默認為視覺最優級別。
可選
src
調用來源,規則:companyName|appName。
必選
此參數不傳值,不保證服務。
代碼片段
//網頁應用調起iOS百度地圖方式舉例
a href="baidumap://map/marker?location=40.047669,116.313082title=我的位置content=百度奎科大廈src
=yourCompanyName|yourAppName"地圖標點/a
您可以先用免費軟件mobile altas creator在電腦上下好地圖,可以下谷歌地圖的。然后找個ios的離線地圖app。推薦您試試“地圖加加”,支持mobac制作的地圖,支持軌跡記錄,支持kml,gpx導入導出和編輯,支持全球搜索和導航
demo:
demo中有兩處這樣的判斷
原因是如下
1,App 調起百度地圖路線規劃進行導航。百度 URL API :
2,App 調起高德地圖路線規劃進行導航。高德 URL API:
LSApplicationQueriesSchemes
1,App 調起系統自帶高德地圖路線規劃進行導航。
樓主你好,一般我們安裝的地圖軟件都可以選擇2D和3D模式來查詢地圖的,相對來說2D數據比較小顯示的就比較快。一般我們使用2D就可以滿足了不過3D看上去效果會更直觀一下。你可以安裝騰訊地圖軟件呀,它覆蓋了全國400個城市的離線地圖下載,下載后查詢3D地圖更快速。而且它還有零流量地圖共功能,開啟后可以讓手機離線實現地點搜索、公交/駕車路線規劃、步行導航、駕車語音導航等功能,基本上日常所需的功能全部可以滿足,而且全程零流量。
App內根據手機上裝載的地圖App將其顯示在彈出的選擇框,選擇對應地圖跳轉進入地圖導航。需要用到-
(BOOL)canOpenURL:(NSURL
*)url
NS_AVAILABLE_IOS(3_0);方法判斷手機是否已安裝相應地圖App。
要進行跳轉需要先在xcode的plist文件內將目標App的url
Scheme加入白名單(LSApplicationQueriesSchemes)。
文章名稱:ios地圖導航開發,iOS地圖開發
分享鏈接:http://vcdvsql.cn/article28/dsdgijp.html
成都網站建設公司_創新互聯,為您提供微信公眾號、網站設計、做網站、面包屑導航、ChatGPT、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯