{"id":467,"date":"2016-11-06T08:05:21","date_gmt":"2016-11-05T23:05:21","guid":{"rendered":"http:\/\/blue-bear.jp\/kb\/?p=467"},"modified":"2016-11-06T08:05:58","modified_gmt":"2016-11-05T23:05:58","slug":"swift-nstimer%e3%81%a7googlemap%e3%82%92%e5%b8%b8%e3%81%ab%e7%8f%be%e5%9c%a8%e5%9c%b0%e3%82%92%e4%b8%ad%e5%a4%ae%e3%81%ab%e3%81%99%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e8%bf%bd%e8%b7%a1","status":"publish","type":"post","link":"https:\/\/blue-bear.jp\/kb\/swift-nstimer%e3%81%a7googlemap%e3%82%92%e5%b8%b8%e3%81%ab%e7%8f%be%e5%9c%a8%e5%9c%b0%e3%82%92%e4%b8%ad%e5%a4%ae%e3%81%ab%e3%81%99%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e8%bf%bd%e8%b7%a1\/","title":{"rendered":"[swift] NSTimer\u3067GoogleMAP\u3092\u5e38\u306b\u73fe\u5728\u5730\u3092\u4e2d\u592e\u306b\u3059\u308b\u3088\u3046\u306b\u8ffd\u8de1"},"content":{"rendered":"<h2>NSTimer\u3067GoogleMAP\u3092\u5e38\u306b\u73fe\u5728\u5730\u3092\u4e2d\u592e\u306b\u3059\u308b\u3088\u3046\u306b\u8ffd\u8de1<\/h2>\n<h3>\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9<\/h3>\n<p>*CLLocation\u3067\u4f4d\u7f6e\u60c5\u5831\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u524d\u63d0<\/p>\n<pre>\r\nclass ViewController: UIViewController,GMSMapViewDelegate {\r\n    \r\n    var googleMap : GMSMapView!\r\n    var latitude: CLLocationDegrees!\r\n    var longitude: CLLocationDegrees!\r\n    var iconImage:UIImage!\r\n    var selfMarker: GMSMarker!\r\n    \r\n    var timer: NSTimer?\r\n    var timerBool:Bool = true\r\n\r\noverride func viewDidLoad() {\r\n        super.viewDidLoad()\r\n\r\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000iconImage = UIImage(named:\"icon.png\") \/\/\u81ea\u5206\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\r\n        \r\n        \/\/GoogleMAP\r\n        googleMapInit()\r\n        \r\n        \/\/Timer Start\r\n        startTimer()\r\n        \r\n    }\r\n\/\/MARK: Timer\r\n    \/\/ \u30bf\u30a4\u30de\u30fc\u958b\u59cb\r\n    func startTimer() {\r\n         timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.update(_:)), userInfo: nil, repeats: true)\r\n    }\r\n    \r\n    func update(timer: NSTimer) {\r\n        \/\/GoogleMAP\u304c\u53d6\u5f97\u3057\u3066\u3044\u308b\u4f4d\u7f6e\u3092\u53d6\u5f97\r\n        if let mylocation = googleMap.myLocation {\r\n            latitude = mylocation.coordinate.latitude\r\n            longitude = mylocation.coordinate.longitude\r\n            \r\n            googleMapSelfRemark(googleMap)\r\n            \r\n            if timerBool {\r\n                \/\/\u30ab\u30e1\u30e9\u3092\u73fe\u5728\u5730\u306b\r\n                let update = GMSCameraUpdate.setTarget(mylocation.coordinate)\r\n                googleMap.moveCamera(update) \/\/\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u306b\u3059\u308b\u3068\u30ab\u30af\u30ab\u30af\u3059\u308b\u306e\u3067\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u306a\u3057\u306eUpdate\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n    \r\n    \/\/MARK: GoogleMAP Method \/\/\/\/\/\/\/\/\/    \r\n    func googleMapInit(){\r\n        let width = self.view.frame.width\r\n        let height = self.view.frame.height\r\n        \r\n        let camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(latitude,longitude: longitude, zoom: kMapZoom) \/\/ \u30ab\u30e1\u30e9\u3092\u751f\u6210\r\n        googleMap = GMSMapView(frame: CGRectMake(0, 0, width, height)) \/\/ MapView\u3092\u751f\u6210.\r\n        googleMap.mapType = kGMSTypeNormal \/\/MAPtype\u6a19\u6e96\r\n        googleMap.delegate = self\r\n        googleMap.camera = camera \/\/ MapView\u306b\u30ab\u30e1\u30e9\u3092\u8ffd\u52a0.\r\n        googleMap.myLocationEnabled = true \/\/\u3053\u308c\u304c\u306a\u3044\u3068GoogleMAP\u3067\u53d6\u5f97\u3057\u305f\u4f4d\u7f6e\u304c\u53d6\u5f97\u3067\u304d\u306a\u3044        \r\n        self.view.addSubview(googleMap)\/\/view\u306bMapView\u3092\u8ffd\u52a0.\r\n        \r\n        googleMapSelfMarkerCreate()\r\n    }\r\n    \r\n    \/\/\u30a2\u30a4\u30b3\u30f3\u3092\u518d\u751f\u6210\r\n    func googleMapSelfRemark(mapView: GMSMapView){\r\n        selfMarker.map = nil \/\/\u81ea\u8eab\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u6d88\u3059\r\n        googleMapSelfMarkerCreate()\r\n    }\r\n\r\n    \/\/\u30a2\u30a4\u30b3\u30f3\u3092\u8ffd\u52a0\r\n    func googleMapSelfMarkerCreate(){\r\n        selfMarker = GMSMarker()\r\n        selfMarker.position = CLLocationCoordinate2DMake(latitude, longitude)\r\n        selfMarker.icon = iconImage\r\n        selfMarker.map = googleMap\r\n        \r\n    }\r\n\r\n    \/\/MAP\u306e\u3069\u3053\u304b\u3092\u30bf\u30c3\u30d7\u3057\u305f\u6642\u306f\u305d\u306e\u5834\u6240\u306b\u30ab\u30e1\u30e9\u3092\u79fb\u52d5\u3057\u3001\u8ffd\u8de1\u3092OFF\u306b\r\n    func mapView(mapView: GMSMapView, didTapAtCoordinate coordinate: CLLocationCoordinate2D) {\r\n        timerBool = false \/\/\u8ffd\u8de1OFF\r\n        googleMap.animateToLocation(coordinate) \/\/\u30ab\u30e1\u30e9\u3092\u73fe\u5728\u5730\u306b\r\n    }\r\n    \r\n    \/\/gesture\uff08\u30d4\u30f3\u30c1\u3084\u30ba\u30fc\u30e0\u306a\u3069\uff09\u304c\u3042\u3063\u305f\u969b\u306f\u3001\u8ffd\u8de1\u3092OFF\u306b\r\n    func mapView(mapView: GMSMapView, willMove gesture: Bool) {\r\n        if gesture {\r\n            timerBool = false \/\/\u8ffd\u8de1OFF\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>googleMap.myLocationEnabled = true\u306b\u3059\u308b\u3068GoogleMAP\u304c\u73fe\u5728\u5730\u3092\u8868\u793a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u306e\u3067<br \/>\ngoogleMap.myLocation\u3067coordinate\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b<br \/>\nTimer\u3067\uff11\u79d2\u3054\u3068\u306b\u30ab\u30e1\u30e9\u3092GoogleMAP\u306e\u73fe\u5728\u5730\u306b\u79fb\u52d5\u3055\u305b\u3066\u3044\u308b\u306e\u3067\u5e38\u306b\u4e2d\u592e\u306b\u8868\u793a\u3057\u3066\u3044\u308b\u3088\u3046\u306b\u898b\u3048\u308b<\/p>\n<p>\u3061\u306a\u307f\u306b\u4f55\u304b\u52d5\u4f5c\u3057\u305f\u6642\u306b\u306f\u30ab\u30e1\u30e9\u306e\u8ffd\u8de1\u3092\u3084\u3081\u3055\u305b\u305f\u304b\u3063\u305f\u306e\u3067\u3001timerBool\u3067\u8ffd\u8de1\u3057\u305f\u3044\u30fb\u3057\u305f\u304f\u306a\u3044\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NSTimer\u3067GoogleMAP\u3092\u5e38\u306b<\/p>\n","protected":false},"author":1,"featured_media":88,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[19],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/467"}],"collection":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/comments?post=467"}],"version-history":[{"count":2,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/467\/revisions"}],"predecessor-version":[{"id":469,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/467\/revisions\/469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/media\/88"}],"wp:attachment":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/media?parent=467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/categories?post=467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/tags?post=467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}