使用: [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"白名單://"]] 判斷是否安裝白名單里面的App.
在鶴崗等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),鶴崗網(wǎng)站建設(shè)費(fèi)用合理。
蘋果自帶的地圖不需要設(shè)置白名單,需要設(shè)置終點(diǎn)的經(jīng)緯度就行,需要導(dǎo)入 #import MapKit/MapKit.h 頭文件
可以參考: 百度地圖官方文檔 實(shí)現(xiàn)如下:
參數(shù)設(shè)置可以參考文檔
可以參考: 高德地圖官方文檔 實(shí)現(xiàn)如下:
可以參考: 騰訊地圖官方文檔 實(shí)現(xiàn)如下:
.h
.m
1 適用環(huán)境
移動(dòng)設(shè)備瀏覽器端應(yīng)用和移動(dòng)App應(yīng)用均可調(diào)起iOS版百度地圖。
2 協(xié)議形式
無(wú)論是基于移動(dòng)瀏覽器端的應(yīng)用開發(fā)還是基于iOS
SDK的應(yīng)用開發(fā)均可采用如下協(xié)議調(diào)起iOS版百度地圖。該協(xié)議要正確執(zhí)行除了要參數(shù)填寫正確外,還必須要安裝iOS百度地圖。
protocol://product/[service/]action[?parameters] //parameters功能參數(shù)定義,具體規(guī)范見(jiàn)功能協(xié)議說(shuō)明
示例:
baidumap://map/direction?origin=中關(guān)村destination=五道口mode=drivingregion=北京
//本示例是通過(guò)該URL啟動(dòng)地圖app并進(jìn)入北京市從中關(guān)村到五道口的駕車導(dǎo)航路線圖
組成說(shuō)明:
參數(shù)名稱
參數(shù)說(shuō)明
是否必選
備注
protocol
產(chǎn)品線協(xié)議頭,例如baidumap表示百度地圖
必選
product
產(chǎn)品線名稱,例如如百度地圖客戶端(map)
必選
product下可直接跟方法,當(dāng)然產(chǎn)品線也可增加一個(gè)service級(jí)別
service
具體功能服務(wù)名稱,如POI檢索服務(wù)(place)
必選
action
方法名稱,如POI檢索中的詳情檢索(detail)
必選
parameters
方法參數(shù),參考各個(gè)功能協(xié)議說(shuō)明的定義
必選
3 功能使用說(shuō)明
3.1 標(biāo)注
調(diào)用該接口可調(diào)起IOS百度地圖,且在指定坐標(biāo)點(diǎn)上顯示點(diǎn)的名稱和內(nèi)容信息。
服務(wù)地址
baidumap://map/marker //iOS服務(wù)地址
參數(shù)說(shuō)明
參數(shù)名稱
參數(shù)說(shuō)明
是否必選
備注
location
lat緯度,lng經(jīng)度
必選
title
標(biāo)注點(diǎn)顯示標(biāo)題
必選
product下可直接跟方法,當(dāng)然產(chǎn)品線也可增加一個(gè)service級(jí)別
content
標(biāo)注點(diǎn)顯示內(nèi)容
必選
coord_type
坐標(biāo)類型,可選參數(shù),默認(rèn)為bd09ll。
可選
允許的值為bd09ll、gcj02、wgs84。bd09ll表示百度經(jīng)緯度坐標(biāo),
gcj02表示經(jīng)過(guò)國(guó)測(cè)局坐標(biāo),wgs84表示gps獲取的坐標(biāo)。
zoom
展現(xiàn)地圖的級(jí)別,默認(rèn)為視覺(jué)最優(yōu)級(jí)別。
可選
src
調(diào)用來(lái)源,規(guī)則:companyName|appName。
必選
此參數(shù)不傳值,不保證服務(wù)。
代碼片段
//網(wǎng)頁(yè)應(yīng)用調(diào)起iOS百度地圖方式舉例
a href="baidumap://map/marker?location=40.047669,116.313082title=我的位置content=百度奎科大廈src
=yourCompanyName|yourAppName"地圖標(biāo)點(diǎn)/a
效果圖:
1.首先加載出百度地圖
2.在地圖加載成功后的方法里去得到左下角和右上角的坐標(biāo)點(diǎn)的經(jīng)緯度, 需要一個(gè)方法來(lái)實(shí)現(xiàn)屏幕坐標(biāo)點(diǎn)轉(zhuǎn)化成經(jīng)緯度。
3.得到倆個(gè)點(diǎn)的經(jīng)緯度就可以開始發(fā)起搜索了。
4.在搜索結(jié)果的代理方法里將搜索到的結(jié)果展示出來(lái)。
5.當(dāng)?shù)貓D區(qū)域發(fā)生改變時(shí),會(huì)觸發(fā)的方法有3個(gè): "正在改變"、"即將改變"、"改變完成"。
很容易就想到,我們需要使用的是"改變完成"的方法,在里面重新請(qǐng)求一次搜索:
**
總結(jié): demo只實(shí)現(xiàn)了一個(gè)很基礎(chǔ)的功能,后期還可以增加更加炫酷的功能,比如改變氣泡的形狀。如果你有更好的想法,歡迎和我交流!
**
demo地址:
iOS開發(fā)百度地圖的時(shí)候讓多個(gè)大頭針顯示全的代碼如下:
BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = 39.915;
coor.longitude = 116.404;
annotation.coordinate = coor;
annotation.title = @"北京";
[_mapView addAnnotation:annotation];
集成百度地圖還是很簡(jiǎn)單的只要注意些細(xì)節(jié),絕對(duì)OK的了?。?只要按照我的流程來(lái)就可以。
官方已經(jīng)寫得很清楚了 點(diǎn)這里
這里注意點(diǎn)一點(diǎn)是:?jiǎn)⒂梅?wù)是指你在項(xiàng)目中需要用到的服務(wù),打勾就是指啟用
導(dǎo)入庫(kù)文件這些有兩種方式手動(dòng)導(dǎo)入和CocoaPods這里重點(diǎn)說(shuō)的是手動(dòng)導(dǎo)入需要注意的這些坑
點(diǎn)這里
在以上都完成時(shí)需要注意一些細(xì)節(jié)
1.在Xcode的Project - Edit Active Target - Build Setting - Other Linker Flags中添加-ObjC
2.如果在iOS9中使用了調(diào)起百度地圖客戶端功能,必須在"Info.plist"中進(jìn)行如下配置,否則不能調(diào)起百度地圖客戶端。
3.管理地圖的生命周期,BMKMapView在一個(gè)時(shí)刻只能有一次接受回調(diào)消息,因此在viewController中調(diào)用以下BMKMapView的對(duì)應(yīng)的方法,并且不要忘記添加代理
4.官方自iOS SDK v2.5.0起,對(duì)iOS8的定位能力做兼容,,以下二選一
NSLocationWhenInUseUsageDescription ,允許在前臺(tái)使用時(shí)獲取GPS的描述
NSLocationAlwaysUsageDescription ,允許永久使用GPS的描述
5.在使用Xcode6進(jìn)行SDK開發(fā)過(guò)程中,需要在info.plist中添加:Bundle display name ,且其值不能為空(Xcode6新建的項(xiàng)目沒(méi)有此配置,若沒(méi)有會(huì)造成manager start failed)
6.Bundle Identifier要和申請(qǐng)秘鑰安全碼以及info.plist的Bundle Identifier要一致
以上幾點(diǎn)一定要滿足,其中的最后一個(gè)把我摧殘的不要不要的
具體的一些導(dǎo)航啦定位的一些方法代理 點(diǎn)這里
百度地圖有代理。
/**
*地圖渲染每一幀畫面過(guò)程中,以及每次需要重繪地圖時(shí)(例如添加覆蓋物)都會(huì)調(diào)用此接口
*@param mapview 地圖View
*@param status 此時(shí)地圖的狀態(tài)
*/
- (void)mapView:(BMKMapView *)mapView onDrawMapFrame:(BMKMapStatus*)status;
/**
*地圖區(qū)域即將改變時(shí)會(huì)調(diào)用此接口
*@param mapview 地圖View
*@param animated 是否動(dòng)畫
*/
- (void)mapView:(BMKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
/**
*地圖區(qū)域改變完成后會(huì)調(diào)用此接口
*@param mapview 地圖View
*@param animated 是否動(dòng)畫
*/
- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
具體的處理看你的需求來(lái)定。你可以測(cè)試下。