{"id":680,"date":"2016-12-27T09:23:24","date_gmt":"2016-12-27T00:23:24","guid":{"rendered":"http:\/\/blue-bear.jp\/kb\/?p=680"},"modified":"2016-12-27T09:23:24","modified_gmt":"2016-12-27T00:23:24","slug":"swift-google-map-place-picker%e5%ae%9f%e8%a3%85%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/blue-bear.jp\/kb\/swift-google-map-place-picker%e5%ae%9f%e8%a3%85%e6%96%b9%e6%b3%95\/","title":{"rendered":"[swift] Google Map Place Picker\u5b9f\u88c5\u65b9\u6cd5"},"content":{"rendered":"<h2>Google Map Place Picker\u5b9f\u88c5\u65b9\u6cd5<\/h2>\n<p>Place Picker\u3068\u306f\u6307\u5b9a\u4f4d\u7f6e\u5468\u8fba\u306e\u30b9\u30dd\u30c3\u30c8\u3092\u8868\u793a\u3055\u305b\u308b\u6a5f\u80fd<br \/>\n\u4f4f\u6240\u3084\u30b9\u30dd\u30c3\u30c8\u540d\u304b\u3089\u3082\u691c\u7d22\u304c\u53ef\u80fd\u306a\u306e\u3067\u3001\u30a2\u30d7\u30ea\u306b\u4f4d\u7f6e\u60c5\u5831\u691c\u7d22\u6a5f\u80fd\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blue-bear.jp\/kb\/wp-content\/uploads\/2016\/12\/placepicker-ios.png\" alt=\"placepicker-ios\" width=\"473\" height=\"956\" class=\"alignnone size-full wp-image-681\" srcset=\"https:\/\/blue-bear.jp\/kb\/wp-content\/uploads\/2016\/12\/placepicker-ios.png 473w, https:\/\/blue-bear.jp\/kb\/wp-content\/uploads\/2016\/12\/placepicker-ios-148x300.png 148w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p>\u305f\u3060\u3057\u4f7f\u7528\u5236\u9650\u304c\u3042\u308b\u305f\u3081\u3001GoogleMAP\u306e\u4f7f\u7528\u5236\u9650\u3092\u3088\u304f\u8aad\u3080\u3053\u3068<br \/>\n<a href=\"https:\/\/developers.google.com\/places\/ios-api\/usage?hl=ja\" target=\"_blank\">GoogleMAP\u4f7f\u7528\u5236\u9650<\/a><\/p>\n<h3>PodFile<\/h3>\n<p>PodFile\u306b\u4e0b\u8a18Pod\u3092\u6307\u5b9a\u3057\u3066\u3001Pod\u3092Install\u3059\u308b<\/p>\n<pre>\r\npod 'GooglePlacePicker'\r\n<\/pre>\n<h3>AppDelegate<\/h3>\n<p>GoogleMap\u306eAPIKey\u3092AppDelegete\u306b\u5b9f\u88c5<br \/>\n\uff0a\u65e2\u306bGoogleMap APIKey\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u4e0d\u8981<\/p>\n<pre>\r\nlet cGoogleMapsAPIKey = \"API\u30ad\u30fc\"\r\n\r\nfunc application(application: UIApplication, didFinishLaunchingWithOptions \r\n        GMSServices.provideAPIKey(cGoogleMapsAPIKey) \/\/for Google MAP\r\n        GMSPlacesClient.provideAPIKey(cGoogleMapsAPIKey)\r\n}\r\n<\/pre>\n<h3>ViewController<\/h3>\n<p>GooglePlacePicker\u3092Import\u3059\u308b\u306e\u3092\u5fd8\u308c\u306a\u3044\u3088\u3046\u306b<\/p>\n<pre>\nimport GooglePlacePicker<\/p>\n<p>var placePicker: GMSPlacePicker?<br \/>\nvar latitude: CLLocationDegrees = 1.304843 \/\/Singapore<br \/>\nvar longitude: CLLocationDegrees = 103.831824 \/\/Singapore<\/p>\n<p>func pickPlace(sender: UIButton) {<br \/>\n        let center = CLLocationCoordinate2DMake(latitude, longitude)<br \/>\n        let northEast = CLLocationCoordinate2DMake(center.latitude + 0.001, center.longitude + 0.001)<br \/>\n        let southWest = CLLocationCoordinate2DMake(center.latitude - 0.001, center.longitude - 0.001)<br \/>\n        let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)<br \/>\n        let config = GMSPlacePickerConfig(viewport: viewport)<br \/>\n        placePicker = GMSPlacePicker(config: config)<\/p>\n<p>        placePicker?.pickPlaceWithCallback({ (place: GMSPlace?, error: NSError?) -> Void in<br \/>\n            if let error = error {<br \/>\n                print(\"Pick Place error: \\(error.localizedDescription)\")<br \/>\n                return<br \/>\n            }<\/p>\n<p>            if let place = place {<br \/>\n                \/\/\u53d6\u5f97\u3067\u304d\u305f\u5834\u5408\u306e\u51e6\u7406<br \/>\n                \/\/latitude\u306fplace.coordinate.latitude<br \/>\n                \/\/longitude\u306fplace.coordinate.longitude\u3067\u53d6\u5f97\u53ef\u80fd<br \/>\n            }<br \/>\n        })<br \/>\n    }<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google Map Place Pic<\/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\/680"}],"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=680"}],"version-history":[{"count":1,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/680\/revisions"}],"predecessor-version":[{"id":682,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/680\/revisions\/682"}],"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=680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/categories?post=680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/tags?post=680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}