1)首先打開百度地圖,點擊工具
創(chuàng)新互聯(lián)響應(yīng)式網(wǎng)站特點就是不管在電腦、平板還是手機上,HTML5建站都會根據(jù)屏幕尺寸自動調(diào)節(jié)大小、圖片分辨率,并且融入一定的動畫特效,讓網(wǎng)站看起來非常的美觀大方。從網(wǎng)站需求對接到網(wǎng)站制作設(shè)計、從代碼編寫到項目上線運維,技術(shù)人員全程跟蹤,快速響應(yīng)
2)在工具中找到測距,點擊,出現(xiàn)你當(dāng)時所在的地圖,同時你也可以進行縮放選擇點擊你想查找的起始地點
3)再點擊另外一個你想去的地點,點擊后就出現(xiàn)路程。測距就已經(jīng)結(jié)束了。
效果圖:
1.首先加載出百度地圖
2.在地圖加載成功后的方法里去得到左下角和右上角的坐標(biāo)點的經(jīng)緯度, 需要一個方法來實現(xiàn)屏幕坐標(biāo)點轉(zhuǎn)化成經(jīng)緯度。
3.得到倆個點的經(jīng)緯度就可以開始發(fā)起搜索了。
4.在搜索結(jié)果的代理方法里將搜索到的結(jié)果展示出來。
5.當(dāng)?shù)貓D區(qū)域發(fā)生改變時,會觸發(fā)的方法有3個: "正在改變"、"即將改變"、"改變完成"。
很容易就想到,我們需要使用的是"改變完成"的方法,在里面重新請求一次搜索:
**
總結(jié): demo只實現(xiàn)了一個很基礎(chǔ)的功能,后期還可以增加更加炫酷的功能,比如改變氣泡的形狀。如果你有更好的想法,歡迎和我交流!
**
demo地址:
- (void)longPress:(UIGestureRecognizer*)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ //這個狀態(tài)判斷很重要
//坐標(biāo)轉(zhuǎn)換
CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];
CLLocationCoordinate2D touchMapCoordinate =
[self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];
//這里的touchMapCoordinate.latitude和touchMapCoordinate.longitude就是你要的經(jīng)緯度,
NSLog(@"%f",touchMapCoordinate.latitude);
NSLog(@"%f",touchMapCoordinate.longitude);
//30.264998 120.122538 30.285012 120.117989
LocationObject *aLocationObject = [[LocationObject alloc]initWithTitle:@"hello" latitue:touchMapCoordinate.latitude longitude:touchMapCoordinate.longitude];
aLocationObject._subTitleString = @"world";
NSMutableArray *_mapAnnotations = [[NSMutableArray alloc]initWithCapacity:1];
[_mapAnnotations addObject:aLocationObject];
[self.mapView addAnnotations:_mapAnnotations ];
[_mapAnnotations release];
[aLocationObject release];
}
}
如果你是iOS9,由于iOS9改用更安全的https,為了能夠在iOS9中正常使用地圖SDK,請在"Info.plist"中進行如下配置,否則影響SDK的使用。
keyNSAppTransportSecurity/key
dict
keyNSAllowsArbitraryLoads/key
true/
/dict
如果你不是,就不用添加
除此之外
自iOS SDK v2.5.0起,為了對iOS8的定位能力做兼容,做了相應(yīng)的修改,開發(fā)者在使用過程中注意事項如下: 需要在info.plist里添加(以下二選一,兩個都添加默認使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允許在前臺使用時獲取GPS的描述
NSLocationAlwaysUsageDescription ,允許永久使用GPS的描述
在使用Xcode6進行SDK開發(fā)過程中,需要在info.plist中添加:Bundle display name ,且其值不能為空(Xcode6新建的項目沒有此配置,若沒有會造成manager start failed)
這寫都是目前百度地圖API的注意事項
1 適用環(huán)境
移動設(shè)備瀏覽器端應(yīng)用和移動App應(yīng)用均可調(diào)起iOS版百度地圖。
2 協(xié)議形式
無論是基于移動瀏覽器端的應(yīng)用開發(fā)還是基于iOS
SDK的應(yīng)用開發(fā)均可采用如下協(xié)議調(diào)起iOS版百度地圖。該協(xié)議要正確執(zhí)行除了要參數(shù)填寫正確外,還必須要安裝iOS百度地圖。
protocol://product/[service/]action[?parameters] //parameters功能參數(shù)定義,具體規(guī)范見功能協(xié)議說明
示例:
baidumap://map/direction?origin=中關(guān)村destination=五道口mode=drivingregion=北京
//本示例是通過該URL啟動地圖app并進入北京市從中關(guān)村到五道口的駕車導(dǎo)航路線圖
組成說明:
參數(shù)名稱
參數(shù)說明
是否必選
備注
protocol
產(chǎn)品線協(xié)議頭,例如baidumap表示百度地圖
必選
product
產(chǎn)品線名稱,例如如百度地圖客戶端(map)
必選
product下可直接跟方法,當(dāng)然產(chǎn)品線也可增加一個service級別
service
具體功能服務(wù)名稱,如POI檢索服務(wù)(place)
必選
action
方法名稱,如POI檢索中的詳情檢索(detail)
必選
parameters
方法參數(shù),參考各個功能協(xié)議說明的定義
必選
3 功能使用說明
3.1 標(biāo)注
調(diào)用該接口可調(diào)起IOS百度地圖,且在指定坐標(biāo)點上顯示點的名稱和內(nèi)容信息。
服務(wù)地址
baidumap://map/marker //iOS服務(wù)地址
參數(shù)說明
參數(shù)名稱
參數(shù)說明
是否必選
備注
location
lat緯度,lng經(jīng)度
必選
title
標(biāo)注點顯示標(biāo)題
必選
product下可直接跟方法,當(dāng)然產(chǎn)品線也可增加一個service級別
content
標(biāo)注點顯示內(nèi)容
必選
coord_type
坐標(biāo)類型,可選參數(shù),默認為bd09ll。
可選
允許的值為bd09ll、gcj02、wgs84。bd09ll表示百度經(jīng)緯度坐標(biāo),
gcj02表示經(jīng)過國測局坐標(biāo),wgs84表示gps獲取的坐標(biāo)。
zoom
展現(xiàn)地圖的級別,默認為視覺最優(yōu)級別。
可選
src
調(diào)用來源,規(guī)則:companyName|appName。
必選
此參數(shù)不傳值,不保證服務(wù)。
代碼片段
//網(wǎng)頁應(yīng)用調(diào)起iOS百度地圖方式舉例
a href="baidumap://map/marker?location=40.047669,116.313082title=我的位置content=百度奎科大廈src
=yourCompanyName|yourAppName"地圖標(biāo)點/a
iOS開發(fā)百度地圖的時候讓多個大頭針顯示全的代碼如下:
BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = 39.915;
coor.longitude = 116.404;
annotation.coordinate = coor;
annotation.title = @"北京";
[_mapView addAnnotation:annotation];