//
// MapViewController.swift
// iOS8自适应Cell
//
// Created by eduo_xiaoP on 14/12/22.
// Copyright (c) 2014年 eduo. All rights reserved.
//
import Foundation
import UIKit
class MapViewController : UIViewController , BMKLocationServiceDelegate , BMKMapViewDelegate , PaoPaoViewDelegate{
@IBOutlet var mapView: BMKMapView!
lazy var locationService: BMKLocationService = {
let service = BMKLocationService()
return service
}()
override func viewDidLoad() {
super.viewDidLoad()
mapView.showsUserLocation = true
mapView.delegate = self
mapView.mapType = UInt(BMKMapTypeStandard)
}
//MARK: 百度地图添加自定义弹出视图
func mapViewDidFinishLoading(mapView: BMKMapView!) {
let annotation = BMKPointAnnotation()
let coordinate = CLLocationCoordinate2DMake(39.915, 116.404)
annotation.coordinate = coordinate
mapView.addAnnotation(annotation)
}
func mapView(mapView: BMKMapView!, viewForAnnotation annotation: BMKAnnotation!) -> BMKAnnotationView! {
if annotation is BMKPointAnnotation {
let pinView = BMKPinAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
pinView.animatesDrop = true
pinView.annotation = annotation
pinView.image = UIImage(named: "pin_green")
let paopao = NSBundle.mainBundle().loadNibNamed("PaoPaoView", owner: self, options: nil).first as? PaoPaoView
paopao?.delegate = self
pinView.paopaoView = BMKActionPaopaoView(customView: paopao)
return pinView
}
return nil
}
func onClickedPaoPaoView() {
self.performSegueWithIdentifier("AnnotationToDetail", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "AnnotationToDetail" {
let sourceVC = segue.sourceViewController as MapViewController
let desVC = segue.destinationViewController as DetailViewController
desVC.text = "hello world"
}
}
func mapView(mapView: BMKMapView!, didSelectAnnotationView view: BMKAnnotationView!) {
println("didSelectAnnotationView")
mapView.setCenterCoordinate(view.annotation.coordinate, animated: true)
}
func onClickedPaoPao(btn:UIButton!) ->Void {
println("onClickedPaoPao")
}
//MARK: 2.6.0新的定位接口
func didUpdateBMKUserLocation(userLocation: BMKUserLocation!) {
mapView.updateLocationData(userLocation)
let coorinate = userLocation.location.coordinate
println("lat : \(coorinate.latitude) lng : \(coorinate.longitude)")
}
//MARK:百度地图的生命周期维护
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
mapView.viewWillAppear()
locationService.delegate = self
locationService.startUserLocationService()
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
mapView.viewWillDisappear()
locationService.delegate = nil
locationService.stopUserLocationService()
}
}