[swift] GoogleMap Markerをドラッグ可能にする
GoogleMap Markerをドラッグ可能にする
GoogleMap Markerをドラッグ可能にすることができるが
Swift版のdidBeginDraggingMarker、didEndDraggingMarker、didDragMarkerの資料がなかったので記述する
マーカーのドラッグはマーカーを長押しするとドラッグできるようになる
var latitude: CLLocationDegrees = 1.304843 //Singapore
var longitude: CLLocationDegrees = 103.831824 //Singapore
var googleMap : GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
let width = self.view.frame.maxX
let height = self.view.frame.maxY
let camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(latitude,longitude: longitude, zoom: kCourseMapZoom) // カメラを生成.
googleMap = GMSMapView(frame: CGRectMake(0, 0, width, height)) // MapViewを生成.
googleMap.mapType = kGMSTypeNormal //MAPtype標準
googleMap.delegate = self
googleMap.camera = camera // MapViewにカメラを追加.
googleMap.myLocationEnabled = true //現在位置を有効化
self.view.addSubview(googleMap)//viewにMapViewを追加
let marker: GMSMarker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(latitude, longitude)
marker.draggable = true //markerをドラッグ可能に
}
//ドラッグ開始
func mapView(mapView: GMSMapView, didBeginDraggingMarker marker: GMSMarker){
print("didBeginDraggingMarker--------------")
marker.opacity = 0.4 //ドラッグ中は対象マーカーを透明度0.4に
}
//ドラッグ終了
func mapView(mapView: GMSMapView, didEndDraggingMarker marker: GMSMarker){
print("didEndDraggingMarker--------------")
marker.opacity = 1 //ドラッグ終了後は透明度を戻す
}
//ドラッグ中
func mapView(mapView: GMSMapView, didDragMarker marker: GMSMarker){
print("didDragMarker--------------")
}