高德定位和大頭針的添加

#import <AMapSearchKit/AMapSearchKit.h>
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
#import <AMapLocationKit/AMapLocationKit.h>

自動(dòng)定位當(dāng)前城市的經(jīng)緯度

class FirstViewController: UIViewController ,CLLocationManagerDelegate {
    
    // 聲明一個(gè)全局變量
    var locationManager:CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        
        // 設(shè)置定位的精確度
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        
        // 設(shè)置定位變化的最小距離 距離過(guò)濾器
        locationManager.distanceFilter = 50
        
        // 設(shè)置請(qǐng)求定位的狀態(tài)
        locationManager.requestWhenInUseAuthorization()
        
        
        // 設(shè)置代理為當(dāng)前對(duì)象
        locationManager.delegate = self;
        
        if CLLocationManager.locationServicesEnabled(){
            // 開啟定位服務(wù)
            locationManager.startUpdatingLocation()
        }else{
            print("沒有定位服務(wù)")
        }
        
    }
    // 定位失敗調(diào)用的代理方法
    func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        print(error)
    }
    // 定位更新地理信息調(diào)用的代理方法
    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if locations.count > 0
        {
            let locationInfo = locations.last!
            let alert = UIAlertController(title: "獲取的地理坐標(biāo)", message: "經(jīng)度是:\(locationInfo.coordinate.longitude)且轨,維度是:\(locationInfo.coordinate.latitude)", preferredStyle: .Alert)
            let action = UIAlertAction(title: "?", style: .Default, handler: nil)
            alert.addAction(action)
            self.presentViewController(alert, animated: true, completion: nil)
        }
    }
    
}

長(zhǎng)按地圖獲取當(dāng)前位置的經(jīng)緯度并且逆地址編碼出城市及具體位置

class ViewController: UIViewController, MAMapViewDelegate, AMapLocationManagerDelegate, AMapSearchDelegate, UIGestureRecognizerDelegate{
    
    var pointAnnotations = Array<MAPointAnnotation>()
    var search: AMapSearchAPI!
    var mapView: MAMapView!
    override func viewDidLoad() {
        super.viewDidLoad()
        mapView = MAMapView(frame: CGRect(x: 0, y: 20, width: self.view.bounds.size.width, height: self.view.bounds.height / 2))
        mapView.showsUserLocation = true
        mapView.userTrackingMode = .Follow
        //MAMapViewDelegate
        mapView.delegate = self
        self.view.addSubview(mapView)
   
        search = AMapSearchAPI()
        search.delegate = self
       
    }
    
//    長(zhǎng)按獲取地址
    func mapView(mapView: MAMapView!, didLongPressedAtCoordinate coordinate: CLLocationCoordinate2D) {
        //coordinate: 經(jīng)緯度
        animated(coordinate) //添加大頭針
        regeoCodeRequeset(coordinate)
    }
    //逆地理編碼請(qǐng)求
    func regeoCodeRequeset(coor: CLLocationCoordinate2D){
        let searchRequest = AMapReGeocodeSearchRequest()
        //經(jīng)緯度格式為: 經(jīng)度攻礼,緯度
        searchRequest.location = AMapGeoPoint.locationWithLatitude(CGFloat(coor.latitude), longitude: CGFloat(coor.longitude))
        self.search.AMapReGoecodeSearch(searchRequest)
        
    }
    //地理編碼請(qǐng)求回調(diào)
    func onReGeocodeSearchDone(request: AMapReGeocodeSearchRequest, response: AMapReGeocodeSearchResponse) {
        
        print("request :\(request)")
        print("response :\(response)")
        
        if (response.regeocode != nil) {
            //經(jīng)緯度
            let coordinate = CLLocationCoordinate2DMake(Double(request.location.latitude), Double(request.location.longitude))
            print(coordinate)
            //城市
            print(response.regeocode.addressComponent.city)
            //具體位置
            print(response.regeocode.formattedAddress)

        }
    }

在指定的經(jīng)緯度添加大頭針

//將大頭針放到地圖中去
    func animated(coordinate: CLLocationCoordinate2D) {
        //移除前面的大頭針
        mapView.removeAnnotations(pointAnnotations)
        //添加大頭針
        let pointAnnotation = MAPointAnnotation()
        //給大頭針添加坐標(biāo)
        pointAnnotation.coordinate = coordinate
        //將大頭針添加到地圖
        mapView.addAnnotation(pointAnnotation)
        
        pointAnnotations.append(pointAnnotation)
    }
    //添加大頭針函數(shù)
    func mapView(mapView: MAMapView!, viewForAnnotation annotation: MAAnnotation!) -> MAAnnotationView! {
        if annotation.isKindOfClass(MAPointAnnotation) {

            var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("pointReuseIndentifier") as? MAPinAnnotationView
            if annotationView == nil {
                annotationView = MAPinAnnotationView.init(annotation: annotation, reuseIdentifier: "pointReuseIndentifier")
            }
            //設(shè)置氣泡可以彈出, 默認(rèn)為NO
            annotationView!.canShowCallout = true
            //設(shè)置標(biāo)注動(dòng)畫顯示, 默認(rèn)為NO
            annotationView!.animatesDrop = true
            //設(shè)置標(biāo)柱可以拖動(dòng), 默認(rèn)為NO
            annotationView?.draggable = true
            //大頭針顏色
            annotationView?.pinColor = MAPinAnnotationColor.Red
            return annotationView
        }
        return nil
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歹嘹,一起剝皮案震驚了整個(gè)濱河市族壳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忿偷,老刑警劉巖拧篮,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異牵舱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)缺虐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門芜壁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事慧妄∏昱疲” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵塞淹,是天一觀的道長(zhǎng)窟蓝。 經(jīng)常有香客問(wèn)我,道長(zhǎng)饱普,這世上最難降的妖魔是什么运挫? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮套耕,結(jié)果婚禮上谁帕,老公的妹妹穿的比我還像新娘。我一直安慰自己冯袍,他們只是感情好匈挖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著康愤,像睡著了一般儡循。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上征冷,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天择膝,我揣著相機(jī)與錄音,去河邊找鬼资盅。 笑死调榄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呵扛。 我是一名探鬼主播每庆,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼今穿!你這毒婦竟也來(lái)了缤灵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蓝晒,失蹤者是張志新(化名)和其女友劉穎腮出,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芝薇,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胚嘲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洛二。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馋劈。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡攻锰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妓雾,到底是詐尸還是另有隱情娶吞,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布械姻,位于F島的核電站妒蛇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏楷拳。R本人自食惡果不足惜绣夺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唯竹。 院中可真熱鬧乐导,春花似錦、人聲如沸浸颓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)产上。三九已至棵磷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晋涣,已是汗流浹背仪媒。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谢鹊,地道東北人算吩。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像佃扼,于是被迫代替她去往敵國(guó)和親偎巢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容