日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS 高德地图(二)(进阶具体使用的细节)

發布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 高德地图(二)(进阶具体使用的细节) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

前面我們配置好了SDK的環境,也在高德的官網中申請了AppKey:de5b39fb2b066ed80c51383bb3a1fe42,接下來我們就可以開始代碼的編寫,實現一個基本的地圖顯示了
代碼配置顯示地圖(在開發指南中查看代碼需要配置的內容)
1.配置appKey,一般在工程的入口配置
[MAMapServices sharedServices].apiKey = @"用戶Key";
導入頭文件#import <MAMapKit/MAMapKit.h>
并在啟動位置配置apiKey(這里需要使用到申請的appKey)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
?
? ?[MAMapServices sharedServices].apiKey = @"de5b39fb2b066ed80c51383bb3a1fe42";
? ?// Override point for customization after application launch.
? ?return YES;
}?

2.在顯示地圖的界面調用以下代碼顯示地圖

(1)導入頭文件
<MAMapKit/MAMapKit.h>
(2)聲明地圖的協議<MAMapViewDelegate>
(3)添加地圖的UI
?
?
?



3.運行工程,即可看到地圖的基本顯示
?

4.地圖成功顯示后,我們可以做一個定位,顯示我們目前所在的位置
開啟定位功能:
(1)在plist表單中加入字段請求允許訪問用戶的坐標
<一>
NSLocationWhenInUseUsageDescription當百度地圖使用的時候可以獲取用戶坐標
<二>
NSLocationAlwaysUsageDescription不管百度地圖是否在使用,都能獲取用戶坐標
(2)設置追蹤用戶目前的位置(在_mapView創建的地方編寫即可)
_mapView.showsUserLocation = YES;?


//直接跟隨到用戶目前的界面
[_mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES]; ?

//幾種類型設置
typedef NS_ENUM(NSInteger, MAUserTrackingMode)
{
? ?????MAUserTrackingModeNone ? ? ? ? ? ? ?= 0, ? ?// 不追蹤用戶的location更新
MAUserTrackingModeFollow ? ? ? ? ? ?= 1, ? ?// 追蹤用戶的location更新
MAUserTrackingModeFollowWithHeading = 2 ? ? // 追蹤用戶的location與heading更新
};
?

(3)在delegate中返回用戶的坐標?
#pragma mark - 定位功能
-(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation
updatingLocation:(BOOL)updatingLocation
{
? ?if(updatingLocation)
? ?{
? ? ? ?//取出當前位置的坐標
? ? ? ?NSLog(@"latitude : %f,longitude: %f",userLocation.coordinate.latitude,userLocation.coordinate.longitude);
? ?}
}
(4)打印出目前用戶的地址經緯度,即可通過經緯度設定當前的地圖位置
??????? //制定地圖的中心點,讓地圖顯示在該點上
????????CLLocationCoordinate2D coordinate2D = CLLocationCoordinate2DMake(latitudeGuangzhou, longitudeGuangzhou);
? ? ? ?
? ? ? ?_mapView.centerCoordinate = coordinate2D;

?

(5)注意事項:
在模擬器上,不能真實的定位你當成的坐標,所以必須在模擬器上設置一個虛擬坐標。
操作如下:
<1>選中模擬器
<2>在頂部欄中選擇Debug
<3>選擇Debug中的location
<4>設定location中的customLocation
<5>一般這里默認的是北京的紫禁城坐標,你需要先獲取一個可用的坐標再給他賦值
<6>一般可用的坐標都需要使用地圖的相應方法獲取(這里簡單的做法是有真機測試獲取手機的真實坐標)
<7>這里提供一個廣州的坐標
#define latitudeGuangzhou 23.176230
#define longitudeGuangzhou 113.340806




? ? ? 前面我們完成了地圖的基本展示和定位,下面我們一起來發掘地圖上的其他功能。這次我們來探索一下地圖中的搜索功能。

1.使用搜索功能,需要再添加一個搜索功能庫,這個庫可以在高德的Demo文件中找到,添加到工程中可以直接使用
?

2.添加完framework庫以后,就可以直接使用了搜索功能了(通過關鍵字進行搜索)
(1)導入頭文件
#import <AMapSearchKit/AMapSearchAPI.h>

(2)導入使用到的協議?
<AMapSearchDelegate>
?

(3)創建一個搜索類
<1>創建一個SeachAPI對象,傳入參數:appKey和回調對象實現者聲明
<2>創建一個搜索請求對象(設置請求的參數)
<3>搜索請求對象的屬性設置(搜索模式,搜索地點關鍵字,搜索城市,是否返回拓展信息)


(4)在回調中獲取搜索結果的信息
<1>回調中成功返回會有請求的對象信息和返回的對象信息
<2>先判斷是否具有所搜索的對象,如果有搜多結果,則打印處理搜索出來的結果
<3>打印一些有用的結果參數


<4>返回對象AMapPOI中的一些基本屬性(參數Model)


3.搜索功能的另外一種形式(通過區域中心范圍搜索)
<1>同樣需要創建_search對象
<2>在配置請求信息時設置的屬性參數不同
<3>主要設置的搜索按照location返回搜索結果(經緯度設置)
<4>設置排序方式,使用按照距離遠近排序(近的排在前面)


5.在搜索請求添加約束條件
<1>filter為request添加約束條件
<2>filter中的屬性costFilter約束消費的平均范圍
<3>屬性AMapRequireGroupbuy設置搜索行業的信息(這里表明搜索全行業)


6.到這里,搜索功能就基本結束了,具體的其他功能,可以查看高德地圖Demo中的MapViewPOI文件



? ? 接下來,需要了解一下高德地圖中的大頭針的簡單使用,來標示出我們需要搜索的位置,和我們自己的位置

1.大頭針的簡單創建
(1)創建一個大頭針的對象
(2)設置大頭針的坐標位置
(3)設置大頭針的文本提示語
(4)把大頭針加入到數組中annotations為裝載大頭針的數組


(5)把大頭針數組設置到mapView中
<1>設置mapView中的大頭針數組
<2>顯示加載到mapView中的大頭針

?
2.大頭針的自定義?
在mapView的回調中,有重新設定mapView大頭針的方法
這里回調中給出了大頭針對象和mapView對象
可以根據這兩個參數生成一個大頭針的view對象,返回給mapView,mapView將自動改變大頭針的樣式


(1)大頭針的重用機制
這里使用的大頭真重用機制與tableview中的重用機制相仿,當大頭針拖拽出界面以后,大頭真會被回收,用來顯示別的大頭針(這樣可以使上千上萬的大頭針不需要一起加載到mapView中,只是現實界面中所需要顯示的即可)


(2)大頭針的樣式改動
<1>canShowCallout:是否顯示選中時的狀態顯示(顯示設定好的標題)
<2>animatesDrop:拖動時是否具有動畫
<3>draggable:是否支持拖動
<4>rightCalloutAccessoryView:顯示在氣泡右側的view設定
<5>pinColor:大頭針的顏色,有MAPinAnnotationColorRed, MAPinAnnotationColorGreen, MAPinAnnotationColorPurple三種
<6>注意:拖動需要長按大頭針方可使用(在允許拖動的狀態下)




轉載于:https://my.oschina.net/gongzhiming/blog/637898

總結

以上是生活随笔為你收集整理的iOS 高德地图(二)(进阶具体使用的细节)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。