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