diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 7aee18b..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/AutocompleteTextfieldSwift.xcodeproj/project.pbxproj b/AutocompleteTextfieldSwift.xcodeproj/project.pbxproj index 53a9c2d..4a182aa 100644 --- a/AutocompleteTextfieldSwift.xcodeproj/project.pbxproj +++ b/AutocompleteTextfieldSwift.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 6912EDF1A748F36671B4210B /* Pods_AutocompleteTextfieldSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFA6EFA8BAA49879F01E6BFF /* Pods_AutocompleteTextfieldSwift.framework */; }; F905D60F1B419684009DA356 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = F905D60B1B419684009DA356 /* LaunchScreen.xib */; }; F905D6101B419684009DA356 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F905D60D1B419684009DA356 /* Main.storyboard */; }; F96E31911A98DC36001DCEBF /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F96E31901A98DC36001DCEBF /* Images.xcassets */; }; @@ -31,6 +32,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 181EEDA102796CFC02E9AC22 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutocompleteTextfieldSwift.release.xcconfig"; path = "Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.release.xcconfig"; sourceTree = ""; }; + DFA6EFA8BAA49879F01E6BFF /* Pods_AutocompleteTextfieldSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AutocompleteTextfieldSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E95EBFE732353D66C695B5DC /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AutocompleteTextfieldSwift.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.debug.xcconfig"; sourceTree = ""; }; F905D60C1B419684009DA356 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = AutocompleteTextfieldSwift/Base.lproj/LaunchScreen.xib; sourceTree = SOURCE_ROOT; }; F905D60E1B419684009DA356 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = AutocompleteTextfieldSwift/Base.lproj/Main.storyboard; sourceTree = SOURCE_ROOT; }; F96E31841A98DC35001DCEBF /* AutocompleteTextfieldSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AutocompleteTextfieldSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -55,6 +59,7 @@ files = ( F99A8A371A99ACAB00DFD19D /* CoreLocation.framework in Frameworks */, F99A8A351A99ACA700DFD19D /* MapKit.framework in Frameworks */, + 6912EDF1A748F36671B4210B /* Pods_AutocompleteTextfieldSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -68,6 +73,23 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + A1F99B57A1AB363D3F09258A /* Frameworks */ = { + isa = PBXGroup; + children = ( + DFA6EFA8BAA49879F01E6BFF /* Pods_AutocompleteTextfieldSwift.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D6FDAA8F37890A7FE6E70A38 /* Pods */ = { + isa = PBXGroup; + children = ( + E95EBFE732353D66C695B5DC /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */, + 181EEDA102796CFC02E9AC22 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; F96E317B1A98DC35001DCEBF = { isa = PBXGroup; children = ( @@ -76,6 +98,8 @@ F96E31861A98DC35001DCEBF /* AutocompleteTextfieldSwift */, F96E319C1A98DC36001DCEBF /* AutocompleteTextfieldSwiftTests */, F96E31851A98DC35001DCEBF /* Products */, + D6FDAA8F37890A7FE6E70A38 /* Pods */, + A1F99B57A1AB363D3F09258A /* Frameworks */, ); sourceTree = ""; }; @@ -168,9 +192,12 @@ isa = PBXNativeTarget; buildConfigurationList = F96E31A31A98DC36001DCEBF /* Build configuration list for PBXNativeTarget "AutocompleteTextfieldSwift" */; buildPhases = ( + C472B3EACB485D4D2F2E452B /* [CP] Check Pods Manifest.lock */, F96E31801A98DC35001DCEBF /* Sources */, F96E31811A98DC35001DCEBF /* Frameworks */, F96E31821A98DC35001DCEBF /* Resources */, + 795D689D91D2D206A8C274AF /* [CP] Embed Pods Frameworks */, + 206D149D22F9D8225EEE4906 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -212,9 +239,11 @@ TargetAttributes = { F96E31831A98DC35001DCEBF = { CreatedOnToolsVersion = 6.1; + LastSwiftMigration = 0830; }; F96E31981A98DC36001DCEBF = { CreatedOnToolsVersion = 6.1; + LastSwiftMigration = 0830; TestTargetID = F96E31831A98DC35001DCEBF; }; }; @@ -258,6 +287,62 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 206D149D22F9D8225EEE4906 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-resources.sh", + "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle", + "${PODS_ROOT}/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle", + "${PODS_ROOT}/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 795D689D91D2D206A8C274AF /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C472B3EACB485D4D2F2E452B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-AutocompleteTextfieldSwift-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ F96E31801A98DC35001DCEBF /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -391,6 +476,7 @@ }; F96E31A41A98DC36001DCEBF /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E95EBFE732353D66C695B5DC /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -400,12 +486,14 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = mnbayan.AutocompleteTextfieldSwift; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; F96E31A51A98DC36001DCEBF /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 181EEDA102796CFC02E9AC22 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -415,6 +503,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = mnbayan.AutocompleteTextfieldSwift; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; @@ -435,6 +524,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "codefun.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AutocompleteTextfieldSwift.app/AutocompleteTextfieldSwift"; }; name = Debug; @@ -451,6 +541,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "codefun.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AutocompleteTextfieldSwift.app/AutocompleteTextfieldSwift"; }; name = Release; diff --git a/AutocompleteTextfieldSwift.xcworkspace/contents.xcworkspacedata b/AutocompleteTextfieldSwift.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..008e389 --- /dev/null +++ b/AutocompleteTextfieldSwift.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/AutocompleteTextfieldSwift/AutoCompleteTextField/AutoCompleteTextField.swift b/AutocompleteTextfieldSwift/AutoCompleteTextField/AutoCompleteTextField.swift index a49cf03..161800a 100644 --- a/AutocompleteTextfieldSwift/AutoCompleteTextField/AutoCompleteTextField.swift +++ b/AutocompleteTextfieldSwift/AutoCompleteTextField/AutoCompleteTextField.swift @@ -9,47 +9,52 @@ import Foundation import UIKit -public class AutoCompleteTextField:UITextField { +public struct AutoPlace { + let name: String + let id: String +} + +open class AutoCompleteTextField:UITextField { /// Manages the instance of tableview - private var autoCompleteTableView:UITableView? + fileprivate var autoCompleteTableView:UITableView? /// Holds the collection of attributed strings - private lazy var attributedAutoCompleteStrings = [NSAttributedString]() + fileprivate lazy var attributedAutoCompleteStrings = [NSAttributedString]() /// Handles user selection action on autocomplete table view - public var onSelect:(String, NSIndexPath)->() = {_,_ in} + open var onSelect:(String, String, IndexPath)->() = {_,_,_ in} /// Handles textfield's textchanged - public var onTextChange:(String)->() = {_ in} + open var onTextChange:(String)->() = {_ in} /// Font for the text suggestions - public var autoCompleteTextFont = UIFont.systemFontOfSize(12) + open var autoCompleteTextFont = UIFont.systemFont(ofSize: 12) /// Color of the text suggestions - public var autoCompleteTextColor = UIColor.blackColor() + open var autoCompleteTextColor = UIColor.black /// Used to set the height of cell for each suggestions - public var autoCompleteCellHeight:CGFloat = 44.0 + open var autoCompleteCellHeight:CGFloat = 44.0 /// The maximum visible suggestion - public var maximumAutoCompleteCount = 3 + open var maximumAutoCompleteCount = 3 /// Used to set your own preferred separator inset - public var autoCompleteSeparatorInset = UIEdgeInsetsZero + open var autoCompleteSeparatorInset = UIEdgeInsets.zero /// Shows autocomplete text with formatting - public var enableAttributedText = false + open var enableAttributedText = false /// User Defined Attributes - public var autoCompleteAttributes:[String:AnyObject]? + open var autoCompleteAttributes:[String:AnyObject]? /// Hides autocomplete tableview after selecting a suggestion - public var hidesWhenSelected = true + open var hidesWhenSelected = true /// Hides autocomplete tableview when the textfield is empty - public var hidesWhenEmpty:Bool?{ + open var hidesWhenEmpty:Bool?{ didSet{ assert(hidesWhenEmpty != nil, "hideWhenEmpty cannot be set to nil") - autoCompleteTableView?.hidden = hidesWhenEmpty! + autoCompleteTableView?.isHidden = hidesWhenEmpty! } } /// The table view height - public var autoCompleteTableHeight:CGFloat?{ + open var autoCompleteTableHeight:CGFloat?{ didSet{ redrawTable() } } /// The strings to be shown on as suggestions, setting the value of this automatically reload the tableview - public var autoCompleteStrings:[String]?{ + open var autoCompleteStrings:[AutoPlace]?{ didSet{ reload() } } @@ -65,41 +70,41 @@ public class AutoCompleteTextField:UITextField { super.init(coder: aDecoder) } - public override func awakeFromNib() { + open override func awakeFromNib() { super.awakeFromNib() commonInit() setupAutocompleteTable(superview!) } - public override func willMoveToSuperview(newSuperview: UIView?) { - super.willMoveToSuperview(newSuperview) + open override func willMove(toSuperview newSuperview: UIView?) { + super.willMove(toSuperview: newSuperview) commonInit() setupAutocompleteTable(newSuperview!) } - private func commonInit(){ + fileprivate func commonInit(){ hidesWhenEmpty = true - autoCompleteAttributes = [NSForegroundColorAttributeName:UIColor.blackColor()] - autoCompleteAttributes![NSFontAttributeName] = UIFont.boldSystemFontOfSize(12) - self.clearButtonMode = .Always - self.addTarget(self, action: "textFieldDidChange", forControlEvents: .EditingChanged) - self.addTarget(self, action: "textFieldDidEndEditing", forControlEvents: .EditingDidEnd) + autoCompleteAttributes = [NSForegroundColorAttributeName:UIColor.black] + autoCompleteAttributes![NSFontAttributeName] = UIFont.boldSystemFont(ofSize: 12) + self.clearButtonMode = .always + self.addTarget(self, action: #selector(AutoCompleteTextField.textFieldDidChange), for: .editingChanged) + self.addTarget(self, action: #selector(AutoCompleteTextField.textFieldDidEndEditing), for: .editingDidEnd) } - private func setupAutocompleteTable(view:UIView){ - let screenSize = UIScreen.mainScreen().bounds.size - let tableView = UITableView(frame: CGRectMake(self.frame.origin.x, self.frame.origin.y + CGRectGetHeight(self.frame), screenSize.width - (self.frame.origin.x * 2), 30.0)) + fileprivate func setupAutocompleteTable(_ view:UIView){ + let screenSize = UIScreen.main.bounds.size + let tableView = UITableView(frame: CGRect(x: self.frame.origin.x, y: self.frame.origin.y + self.frame.height, width: screenSize.width - (self.frame.origin.x * 2), height: 30.0)) tableView.dataSource = self tableView.delegate = self tableView.rowHeight = autoCompleteCellHeight - tableView.hidden = hidesWhenEmpty ?? true + tableView.isHidden = hidesWhenEmpty ?? true view.addSubview(tableView) autoCompleteTableView = tableView autoCompleteTableHeight = 100.0 } - private func redrawTable(){ + fileprivate func redrawTable(){ if let autoCompleteTableView = autoCompleteTableView, let autoCompleteTableHeight = autoCompleteTableHeight { var newFrame = autoCompleteTableView.frame newFrame.size.height = autoCompleteTableHeight @@ -108,19 +113,19 @@ public class AutoCompleteTextField:UITextField { } //MARK: - Private Methods - private func reload(){ + fileprivate func reload(){ if enableAttributedText{ - let attrs = [NSForegroundColorAttributeName:autoCompleteTextColor, NSFontAttributeName:autoCompleteTextFont] + let attrs = [NSForegroundColorAttributeName:autoCompleteTextColor, NSFontAttributeName:autoCompleteTextFont] as [String : Any] if attributedAutoCompleteStrings.count > 0 { - attributedAutoCompleteStrings.removeAll(keepCapacity: false) + attributedAutoCompleteStrings.removeAll(keepingCapacity: false) } if let autoCompleteStrings = autoCompleteStrings, let autoCompleteAttributes = autoCompleteAttributes { for i in 0.. Void in - self.autoCompleteTableView?.hidden = self.hidesWhenEmpty! ? self.text!.isEmpty : false + DispatchQueue.main.async(execute: { () -> Void in + self.autoCompleteTableView?.isHidden = self.hidesWhenEmpty! ? self.text!.isEmpty : false }) } func textFieldDidEndEditing() { - autoCompleteTableView?.hidden = true + autoCompleteTableView?.isHidden = true } } //MARK: - UITableViewDataSource - UITableViewDelegate extension AutoCompleteTextField: UITableViewDataSource, UITableViewDelegate { - public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return autoCompleteStrings != nil ? (autoCompleteStrings!.count > maximumAutoCompleteCount ? maximumAutoCompleteCount : autoCompleteStrings!.count) : 0 } - public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cellIdentifier = "autocompleteCellIdentifier" - var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) + var cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) if cell == nil{ - cell = UITableViewCell(style: .Default, reuseIdentifier: cellIdentifier) + cell = UITableViewCell(style: .default, reuseIdentifier: cellIdentifier) } if enableAttributedText{ @@ -166,39 +171,39 @@ extension AutoCompleteTextField: UITableViewDataSource, UITableViewDelegate { else{ cell?.textLabel?.font = autoCompleteTextFont cell?.textLabel?.textColor = autoCompleteTextColor - cell?.textLabel?.text = autoCompleteStrings![indexPath.row] + cell?.textLabel?.text = autoCompleteStrings![indexPath.row].name } cell?.contentView.gestureRecognizers = nil return cell! } - public func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - let cell = tableView.cellForRowAtIndexPath(indexPath) + public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let cell = tableView.cellForRow(at: indexPath) if let selectedText = cell?.textLabel?.text { self.text = selectedText - onSelect(selectedText, indexPath) + onSelect(selectedText, autoCompleteStrings![indexPath.row].id, indexPath) } - dispatch_async(dispatch_get_main_queue(), { () -> Void in - tableView.hidden = self.hidesWhenSelected + DispatchQueue.main.async(execute: { () -> Void in + tableView.isHidden = self.hidesWhenSelected }) } - public func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { - if cell.respondsToSelector("setSeparatorInset:"){ + public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + if cell.responds(to: #selector(setter: UITableViewCell.separatorInset)){ cell.separatorInset = autoCompleteSeparatorInset } - if cell.respondsToSelector("setPreservesSuperviewLayoutMargins:"){ + if cell.responds(to: #selector(setter: UIView.preservesSuperviewLayoutMargins)){ cell.preservesSuperviewLayoutMargins = false } - if cell.respondsToSelector("setLayoutMargins:"){ + if cell.responds(to: #selector(setter: UIView.layoutMargins)){ cell.layoutMargins = autoCompleteSeparatorInset } } - public func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return autoCompleteCellHeight } } diff --git a/AutocompleteTextfieldSwift/Base.lproj/Main.storyboard b/AutocompleteTextfieldSwift/Base.lproj/Main.storyboard index a532946..6b48eba 100644 --- a/AutocompleteTextfieldSwift/Base.lproj/Main.storyboard +++ b/AutocompleteTextfieldSwift/Base.lproj/Main.storyboard @@ -1,7 +1,12 @@ - - + + + + + - + + + @@ -13,25 +18,22 @@ - + - - + - - + - - + @@ -49,7 +51,7 @@ - + @@ -59,7 +61,6 @@ - diff --git a/AutocompleteTextfieldSwift/Controllers/AppDelegate.swift b/AutocompleteTextfieldSwift/Controllers/AppDelegate.swift index 8d147e4..68d7070 100644 --- a/AutocompleteTextfieldSwift/Controllers/AppDelegate.swift +++ b/AutocompleteTextfieldSwift/Controllers/AppDelegate.swift @@ -7,6 +7,7 @@ // import UIKit +import GooglePlaces @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { @@ -14,30 +15,31 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. + GMSPlacesClient.provideAPIKey("AIzaSyDg2tlPcoqxx2Q2rfjhsAKS-9j0n3JA_a4") return true } - func applicationWillResignActive(application: UIApplication) { + func applicationWillResignActive(_ application: UIApplication) { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - func applicationDidEnterBackground(application: UIApplication) { + func applicationDidEnterBackground(_ application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - func applicationWillEnterForeground(application: UIApplication) { + func applicationWillEnterForeground(_ application: UIApplication) { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - func applicationDidBecomeActive(application: UIApplication) { + func applicationDidBecomeActive(_ application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - func applicationWillTerminate(application: UIApplication) { + func applicationWillTerminate(_ application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } diff --git a/AutocompleteTextfieldSwift/Controllers/ViewController.swift b/AutocompleteTextfieldSwift/Controllers/ViewController.swift index 3217175..91cf885 100644 --- a/AutocompleteTextfieldSwift/Controllers/ViewController.swift +++ b/AutocompleteTextfieldSwift/Controllers/ViewController.swift @@ -8,18 +8,19 @@ import UIKit import MapKit +import GooglePlaces class ViewController: UIViewController { - + @IBOutlet weak var mapView: MKMapView! @IBOutlet weak var autocompleteTextfield: AutoCompleteTextField! - private var responseData:NSMutableData? - private var selectedPointAnnotation:MKPointAnnotation? - private var dataTask:NSURLSessionDataTask? + fileprivate var responseData:NSMutableData? + fileprivate var selectedPointAnnotation:MKPointAnnotation? + fileprivate var dataTask:URLSessionDataTask? - private let googleMapsKey = "AIzaSyDg2tlPcoqxx2Q2rfjhsAKS-9j0n3JA_a4" - private let baseURLString = "https://maps.googleapis.com/maps/api/place/autocomplete/json" + fileprivate let googleMapsKey = "AIzaSyDg2tlPcoqxx2Q2rfjhsAKS-9j0n3JA_a4" + fileprivate let baseURLString = "https://maps.googleapis.com/maps/api/place/autocomplete/json" override func viewDidLoad() { super.viewDidLoad() @@ -28,12 +29,7 @@ class ViewController: UIViewController { handleTextFieldInterfaces() } - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - - private func configureTextField(){ + fileprivate func configureTextField(){ autocompleteTextfield.autoCompleteTextColor = UIColor(red: 128.0/255.0, green: 128.0/255.0, blue: 128.0/255.0, alpha: 1.0) autocompleteTextfield.autoCompleteTextFont = UIFont(name: "HelveticaNeue-Light", size: 12.0)! autocompleteTextfield.autoCompleteCellHeight = 35.0 @@ -42,12 +38,12 @@ class ViewController: UIViewController { autocompleteTextfield.hidesWhenEmpty = true autocompleteTextfield.enableAttributedText = true var attributes = [String:AnyObject]() - attributes[NSForegroundColorAttributeName] = UIColor.blackColor() + attributes[NSForegroundColorAttributeName] = UIColor.black attributes[NSFontAttributeName] = UIFont(name: "HelveticaNeue-Bold", size: 12.0) autocompleteTextfield.autoCompleteAttributes = attributes } - private func handleTextFieldInterfaces(){ + fileprivate func handleTextFieldInterfaces() { autocompleteTextfield.onTextChange = {[weak self] text in if !text.isEmpty{ if let dataTask = self?.dataTask { @@ -57,18 +53,23 @@ class ViewController: UIViewController { } } - autocompleteTextfield.onSelect = {[weak self] text, indexpath in - Location.geocodeAddressString(text, completion: { (placemark, error) -> Void in - if let coordinate = placemark?.location?.coordinate { - self?.addAnnotation(coordinate, address: text) - self?.mapView.setCenterCoordinate(coordinate, zoomLevel: 12, animated: true) + autocompleteTextfield.onSelect = {placeName, placeId, indexpath in + let placesClient = GMSPlacesClient() + print(placeName) + placesClient.lookUpPlaceID(placeId) { (places, error) in + if error == nil { + if let place = places { + print(place) + print("latitude ", place.coordinate.latitude) + print("longitude", place.coordinate.longitude) + } } - }) + } } } //MARK: - Private Methods - private func addAnnotation(coordinate:CLLocationCoordinate2D, address:String?){ + fileprivate func addAnnotation(_ coordinate:CLLocationCoordinate2D, address:String?){ if let annotation = selectedPointAnnotation{ mapView.removeAnnotation(annotation) } @@ -79,34 +80,36 @@ class ViewController: UIViewController { mapView.addAnnotation(selectedPointAnnotation!) } - private func fetchAutocompletePlaces(keyword:String) { + fileprivate func fetchAutocompletePlaces(_ keyword:String) { let urlString = "\(baseURLString)?key=\(googleMapsKey)&input=\(keyword)" - let s = NSCharacterSet.URLQueryAllowedCharacterSet().mutableCopy() as! NSMutableCharacterSet - s.addCharactersInString("+&") - if let encodedString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(s) { - if let url = NSURL(string: encodedString) { - let request = NSURLRequest(URL: url) - dataTask = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in + let s = (CharacterSet.urlQueryAllowed as NSCharacterSet).mutableCopy() as! NSMutableCharacterSet + s.addCharacters(in: "+&") + if let encodedString = urlString.addingPercentEncoding(withAllowedCharacters: s as CharacterSet) { + if let url = URL(string: encodedString) { + let request = URLRequest(url: url) + dataTask = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) -> Void in if let data = data{ do{ - let result = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) - + let result = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! [String: Any] if let status = result["status"] as? String{ if status == "OK"{ if let predictions = result["predictions"] as? NSArray{ - var locations = [String]() + var locations = [AutoPlace]() for dict in predictions as! [NSDictionary]{ - locations.append(dict["description"] as! String) + let description = dict["description"] as! String + let place_id = dict["place_id"] as! String + let place = AutoPlace(name: description, id: place_id) + locations.append(place) } - dispatch_async(dispatch_get_main_queue(), { () -> Void in + DispatchQueue.main.async(execute: { () -> Void in self.autocompleteTextfield.autoCompleteStrings = locations }) return } } } - dispatch_async(dispatch_get_main_queue(), { () -> Void in + DispatchQueue.main.async(execute: { () -> Void in self.autocompleteTextfield.autoCompleteStrings = nil }) } diff --git a/AutocompleteTextfieldSwift/Helpers/Location.swift b/AutocompleteTextfieldSwift/Helpers/Location.swift index 7fcfbaf..bac7aaa 100644 --- a/AutocompleteTextfieldSwift/Helpers/Location.swift +++ b/AutocompleteTextfieldSwift/Helpers/Location.swift @@ -9,65 +9,68 @@ import Foundation import CoreLocation -class Location{ - - class func geocodeAddressString(address:String, completion:(placemark:CLPlacemark?, error:NSError?)->Void){ - let geocoder = CLGeocoder() - geocoder.geocodeAddressString(address, completionHandler: { (placemarks, error) -> Void in - if error == nil{ - if placemarks?.count > 0{ - completion(placemark: (placemarks?[0]), error: error) - } - } - else{ - completion(placemark: nil, error: error) - } - }) - } - - class func reverseGeocodeLocation(location:CLLocation,completion:(placemark:CLPlacemark?, error:NSError?)->Void){ - let geoCoder = CLGeocoder() - geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in - if let err = error{ - print("Error Reverse Geocoding Location: \(err.localizedDescription)") - completion(placemark: nil, error: error) - return - } - completion(placemark: placemarks?[0], error: nil) - - }) - } - - class func addressFromPlacemark(placemark:CLPlacemark)->String{ - var address = "" +class Location { - if let name = placemark.addressDictionary?["Name"] as? String { - address = constructAddressString(address, newString: name) - } - - if let city = placemark.addressDictionary?["City"] as? String { - address = constructAddressString(address, newString: city) + class func geocodeAddressString(_ address:String, completion:@escaping (_ placemark:CLPlacemark?, _ error:NSError?)->Void){ + let geocoder = CLGeocoder() + geocoder.geocodeAddressString(address, completionHandler: { (placemarks, error) -> Void in + if error == nil { + if let placemarks = placemarks { + if placemarks.count > 0 { + print(placemarks) + completion((placemarks[0]), nil) + } + } + } + else{ + completion(nil, error as NSError?) + } + }) } - if let state = placemark.addressDictionary?["State"] as? String { - address = constructAddressString(address, newString: state) + class func reverseGeocodeLocation(_ location:CLLocation,completion:@escaping (_ placemark:CLPlacemark?, _ error:NSError?)->Void){ + let geoCoder = CLGeocoder() + geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in + if let err = error{ + print("Error Reverse Geocoding Location: \(err.localizedDescription)") + completion(nil, error! as NSError) + return + } + completion(placemarks?[0], nil) + + }) } - if let country = placemark.country{ - address = constructAddressString(address, newString: country) + class func addressFromPlacemark(_ placemark:CLPlacemark)->String{ + var address = "" + + if let name = placemark.addressDictionary?["Name"] as? String { + address = constructAddressString(address, newString: name) + } + + if let city = placemark.addressDictionary?["City"] as? String { + address = constructAddressString(address, newString: city) + } + + if let state = placemark.addressDictionary?["State"] as? String { + address = constructAddressString(address, newString: state) + } + + if let country = placemark.country{ + address = constructAddressString(address, newString: country) + } + + return address } - return address - } - - private class func constructAddressString(string:String, newString:String)->String{ - var address = string - if !address.isEmpty{ - address = address.stringByAppendingString(", \(newString)") - } - else{ - address = address.stringByAppendingString(newString) + fileprivate class func constructAddressString(_ string:String, newString:String)->String{ + var address = string + if !address.isEmpty{ + address = address + ", \(newString)" + } + else{ + address = address + newString + } + return address } - return address - } -} \ No newline at end of file +} diff --git a/AutocompleteTextfieldSwift/Helpers/MKMapViewExtension.swift b/AutocompleteTextfieldSwift/Helpers/MKMapViewExtension.swift index 508528a..7fcdd07 100644 --- a/AutocompleteTextfieldSwift/Helpers/MKMapViewExtension.swift +++ b/AutocompleteTextfieldSwift/Helpers/MKMapViewExtension.swift @@ -16,24 +16,24 @@ let DEGREES = 180.0 extension MKMapView{ //MARK: Map Conversion Methods - private func longitudeToPixelSpaceX(longitude:Double)->Double{ + fileprivate func longitudeToPixelSpaceX(_ longitude:Double)->Double{ return round(MERCATOR_OFFSET + MERCATOR_RADIUS * longitude * M_PI / DEGREES) } - private func latitudeToPixelSpaceY(latitude:Double)->Double{ + fileprivate func latitudeToPixelSpaceY(_ latitude:Double)->Double{ return round(MERCATOR_OFFSET - MERCATOR_RADIUS * log((1 + sin(latitude * M_PI / DEGREES)) / (1 - sin(latitude * M_PI / DEGREES))) / 2.0) } - private func pixelSpaceXToLongitude(pixelX:Double)->Double{ + fileprivate func pixelSpaceXToLongitude(_ pixelX:Double)->Double{ return ((round(pixelX) - MERCATOR_OFFSET) / MERCATOR_RADIUS) * DEGREES / M_PI } - private func pixelSpaceYToLatitude(pixelY:Double)->Double{ + fileprivate func pixelSpaceYToLatitude(_ pixelY:Double)->Double{ return (M_PI / 2.0 - 2.0 * atan(exp((round(pixelY) - MERCATOR_OFFSET) / MERCATOR_RADIUS))) * DEGREES / M_PI } - private func coordinateSpanWithCenterCoordinate(centerCoordinate:CLLocationCoordinate2D, zoomLevel:Double)->MKCoordinateSpan{ + fileprivate func coordinateSpanWithCenterCoordinate(_ centerCoordinate:CLLocationCoordinate2D, zoomLevel:Double)->MKCoordinateSpan{ // convert center coordiate to pixel space let centerPixelX = longitudeToPixelSpaceX(centerCoordinate.longitude) @@ -64,7 +64,8 @@ extension MKMapView{ return MKCoordinateSpan(latitudeDelta: latitudeDelta, longitudeDelta: longitudeDelta) } - func setCenterCoordinate(centerCoordinate:CLLocationCoordinate2D, var zoomLevel:Double, animated:Bool){ + func setCenterCoordinate(_ centerCoordinate:CLLocationCoordinate2D, zoomLevel:Double, animated:Bool){ + var zoomLevel = zoomLevel // clamp large numbers to 28 zoomLevel = min(zoomLevel, 28) @@ -79,4 +80,4 @@ extension MKMapView{ } } -} \ No newline at end of file +} diff --git a/AutocompleteTextfieldSwiftTests/AutocompleteTextfieldSwiftTests.swift b/AutocompleteTextfieldSwiftTests/AutocompleteTextfieldSwiftTests.swift index cfc44fc..b73ee58 100644 --- a/AutocompleteTextfieldSwiftTests/AutocompleteTextfieldSwiftTests.swift +++ b/AutocompleteTextfieldSwiftTests/AutocompleteTextfieldSwiftTests.swift @@ -28,7 +28,7 @@ class AutocompleteTextfieldSwiftTests: XCTestCase { func testPerformanceExample() { // This is an example of a performance test case. - self.measureBlock() { + self.measure() { // Put the code you want to measure the time of here. } } diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..2c47866 --- /dev/null +++ b/Podfile @@ -0,0 +1,12 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'AutocompleteTextfieldSwift' do + # Comment the next line if you're not using Swift and don't want to use dynamic frameworks + use_frameworks! + + pod 'GooglePlaces' + pod 'GooglePlacePicker' + pod 'GoogleMaps' + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..89e9c9c --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,25 @@ +PODS: + - GoogleMaps (2.4.0): + - GoogleMaps/Maps (= 2.4.0) + - GoogleMaps/Base (2.4.0) + - GoogleMaps/Maps (2.4.0): + - GoogleMaps/Base + - GooglePlacePicker (2.4.0): + - GoogleMaps (= 2.4.0) + - GooglePlaces (= 2.4.0) + - GooglePlaces (2.4.0): + - GoogleMaps/Base (= 2.4.0) + +DEPENDENCIES: + - GoogleMaps + - GooglePlacePicker + - GooglePlaces + +SPEC CHECKSUMS: + GoogleMaps: 8436ab5d1c25e36915b2f7416d0c8e3fa2e76c61 + GooglePlacePicker: 755f10343d71280c7b016823e73fbae9625dfa8a + GooglePlaces: aafe5990fa7951e98e078761bbdaaf236d7e0c65 + +PODFILE CHECKSUM: d6db9802f8d62dbab6c17d3f6f3891ce1fc440ae + +COCOAPODS: 1.3.1 diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase new file mode 100755 index 0000000..402792c Binary files /dev/null and b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase differ diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h new file mode 100755 index 0000000..786586a --- /dev/null +++ b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h @@ -0,0 +1,17 @@ +// +// GMSCompatabilityMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if defined(SWIFT_SDK_OVERLAY_UIKIT_EPOCH) +#define GMS_SWIFT_NAME_2_0_3_0(name_swift_2, name_swift_3) NS_SWIFT_NAME(name_swift_3) +#else +#define GMS_SWIFT_NAME_2_0_3_0(name_swift_2, name_swift_3) NS_SWIFT_NAME(name_swift_2) +#endif diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h new file mode 100755 index 0000000..a8b6a11 --- /dev/null +++ b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h @@ -0,0 +1,75 @@ +// +// GMSCoordinateBounds.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSCoordinateBounds represents a rectangular bounding box on the Earth's surface. + * GMSCoordinateBounds is immutable and can't be modified after construction. + */ +@interface GMSCoordinateBounds : NSObject + +/** The North-East corner of these bounds. */ +@property(nonatomic, readonly) CLLocationCoordinate2D northEast; + +/** The South-West corner of these bounds. */ +@property(nonatomic, readonly) CLLocationCoordinate2D southWest; + +/** + * Returns NO if this bounds does not contain any points. For example, + * [[GMSCoordinateBounds alloc] init].valid == NO. + * + * When an invalid bounds is expanded with valid coordinates via includingCoordinate: or + * includingBounds:, the resulting bounds will be valid but contain only the new coordinates. + */ +@property(nonatomic, readonly, getter=isValid) BOOL valid; + +/** + * Inits the northEast and southWest bounds corresponding to the rectangular region defined by the + * two corners. + * + * It is ambiguous whether the longitude of the box extends from |coord1| to |coord2| or vice-versa; + * the box is constructed as the smaller of the two variants, eliminating the ambiguity. + */ +- (id)initWithCoordinate:(CLLocationCoordinate2D)coord1 coordinate:(CLLocationCoordinate2D)coord2; + +/** + * Returns a GMSCoordinateBounds representing the current bounds extended to include the passed-in + * coordinate. + * + * If the current bounds is invalid, the result is a valid bounds containing only |coordinate|. + */ +- (GMSCoordinateBounds *)includingCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Returns a GMSCoordinateBounds representing the current bounds extended to include the entire + * other bounds. + * + * If the current bounds is invalid, the result is a valid bounds equal to |other|. + */ +- (GMSCoordinateBounds *)includingBounds:(GMSCoordinateBounds *)other; + +/** + * Returns YES if |coordinate| is contained within this bounds. This includes points that lie + * exactly on the edge of the bounds. + */ +- (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Returns YES if |other| overlaps with this bounds. Two bounds are overlapping if there is at least + * one coordinate point contained by both. + */ +- (BOOL)intersectsBounds:(GMSCoordinateBounds *)other; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h new file mode 100755 index 0000000..4341a0e --- /dev/null +++ b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h @@ -0,0 +1,22 @@ +// +// GMSDeprecationMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#ifndef IPHONE_MAPS_SDK_BASE_GMSDEPRECATIONMACROS_H_ +#define IPHONE_MAPS_SDK_BASE_GMSDEPRECATIONMACROS_H_ + +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED +#define __GMS_AVAILABLE_BUT_DEPRECATED __deprecated +#endif + +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED_MSG +#define __GMS_AVAILABLE_BUT_DEPRECATED_MSG(msg) __deprecated_msg(msg) +#endif + +#endif diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GoogleMapsBase.h b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GoogleMapsBase.h new file mode 100755 index 0000000..c4fbd38 --- /dev/null +++ b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Headers/GoogleMapsBase.h @@ -0,0 +1,13 @@ +// +// GoogleMapsBase.h +// Google Maps SDK for iOS +// +// Copyright 2017 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSCompatabilityMacros.h" +#import "GMSCoordinateBounds.h" +#import "GMSDeprecationMacros.h" diff --git a/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Modules/module.modulemap b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Modules/module.modulemap new file mode 100755 index 0000000..b79671a --- /dev/null +++ b/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/Modules/module.modulemap @@ -0,0 +1,9 @@ +framework module GoogleMapsBase { + umbrella header "GoogleMapsBase.h" + export * + module * { export *} + link "z" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "Security" +} \ No newline at end of file diff --git a/Pods/GoogleMaps/CHANGELOG b/Pods/GoogleMaps/CHANGELOG new file mode 100755 index 0000000..08936a9 --- /dev/null +++ b/Pods/GoogleMaps/CHANGELOG @@ -0,0 +1,740 @@ +Version 2.4.0 - August 2017 +=========================== +Note: + - The armv7s architecture in the frameworks has been removed. Devices which + previously used armv7s are still supported using the armv7 architecture. + All applications using the default architecture settings in any supported + version of Xcode should not notice any change. + - The layout of the static frameworks has changed. There is no longer a + Versions directory. The contents of Versions/A has been moved to the root + directory of the framework. Developers who manually integrate frameworks + with their project should take additional care during the upgrade. + - Support for Xcode 7.3 will be dropped with 2.5.0. + +Resolved Issues: + - Addressed a crash when using GMSPanoramaView with an application moving to + the background state. + +Version 2.3.1 - June 2017 +======================== +Resolved Issues: + - Fixed an issue where navigating between panoramas did not consistently raise + GMSPanoramaView delegate events. + - Fixed an issue resulting in a crash when UIWebView and GMSPanoramaView are + both in the view hierarchy at the same time. + - Reinstated the tap-drag zoom gesture for GMSPanoramaView. + +Version 2.3.0 - May 2017 +======================== +Improvements: + - The internals of the GMSPanoramaView and associated classes have had a + significant overhaul. These changes should generally give improved + performance. + - Dropped support for iOS 7, which enabled the use of modern core data + threading models. This means that applications should be able to use + -com.apple.CoreData.ConcurrencyDebug 1 when debugging with iOS 10 devices. + +Resolved Issues: + - Fixed case sensitivity issues with imports in GMSTileLayer.h and + GMSPolyline.h. + +Note: + - The armv7s architecture in the frameworks will be removed in 2.4. Devices + which previously used armv7s can continue to be supported using the armv7 + architecture. All applications using the default architecture settings + in any supported version of Xcode shouldn't notice any change. + +Version 2.2.0 - February 2017 +============================= +Features: + - Added the `cameraTargetBounds` property to `GMSMapView`. + This property restricts the camera target to the specified bounds area. + Subsequent gestures are then also restricted to keep the camera target + within the specified bounds. + - The `userData` property of `GMSMarker` was moved to its parent class + `GMSOverlay`. This enables the property to be used with the `GMSPolyline`, + `GMSPolygon`, `GMSCircle`, and `GMSGroundOverlay` classes. + +Improvements: + - Fixes naming of certain enum cases in Swift. The following enums are + affected: `GMSMapViewType`, `GMSFrameRate`, `GMSMarkerAnimation`, and + `GMSLengthKind`. + +Resolved Issues: + - Fixed an issue where the `mapViewSnapshotReady` delegate method was + sometimes raised too early. + +Note: + - iOS 7 support is intended to be dropped starting with 2.3. 2.2.x will be + the last release series to support iOS 7. + +Version 2.1.1 - November 2016 +============================= +Resolved Issues: + - Fixed an issue which caused many Road Shields to not be displayed when + custom styling is active even if the custom styling didn't attempt to style + them. + - Renamed some symbols which could cause duplicate symbols when using all_load + and Firebase. + - Resolved a problem where changing any property of polygon, polyline or + ground overlay in between taps would cause tap cycling to break. This could + make it seem impossible to tap through to items underneath. + - Fixed cameraForBounds:insets: to respect the currently set min and max zoom + restrictions. + +Version 2.1.0 - September 2016 +============================== +Features: + - This release introduces custom styling of the base map. You can use a JSON + style declaration to create a `GMSMapStyle` instance and pass it to the + `mapStyle` property, to change the visual display of features like roads, + parks, businesses, and other points of interest. You can use styling to + emphasize particular components of the map, or make the map complement the + style of your app. Styling works only on the `kGMSTypeNormal` map type. + - It is now possible to apply "night mode" to maps, by applying custom styles. + - Business points of interest (POIs) now appear by default on the map, + provided that the map type is `kGMSTypeNormal`. Prior to this release, + local POIs appeared on the map, but not business POIs). Business POIs + represent businesses such as shops, restaurants, hotels, and more. + - You can disable POIs on a map by using map styling. + - With the addition of business points of interest, there is a new optional + method `didTapPOIWithPlaceID` on `GMSMapViewDelegate` which provides + notification when a POI has been tapped. + +Resolved Issues: + - Renamed the `canGoOffline` selector internally, to avoid triggering false + positives during submission to the Apple app store. + - The `iconView` property of `GMSMarker` is now correctly marked as nullable. + - The renderer has been updated to avoid a race condition which would + cause rendering to not stop in time when an app transitions to background. + - `GMSPath` `initFromEncodedPath` now returns nil for invalid input + (previously invalid input could result in a crash). + - An additional method was added to `GMSMapView`, which compares two camera + positions to determine whether they are close enough to render identically. + - `GMSCircle` will now always draw at least a dot for small radius circles, + including radius 0. + +Version 2.0.1 - July 2016 +========================= + +Resolved Issues: + - Array properties are now correctly typed when accessed from Swift. + +Version 2.0.0 - July 2016 +========================= + +Improvements: + - This release splits the Places API from the Maps SDK. Previously, if you + wanted to use the Places API you had to include all of GoogleMaps. As a + result of the split, the final size of the Places API binary is 70% smaller + than the previous combined binary. If you are using only the Maps SDK you + will not be affected unless you have pinned your dependency on GoogleMaps + to a version earlier than 2.0. In this case, you should update this + restriction in your Podfile. If you are using the Places API, see the + migration guide online for more details. + +Resolved Issues: + - The GoogleMaps binary has been reduced to less than 100MB to avoid + exceeding GitHub's file size limit. + - GMSGroundOverlays now correctly respond to touch input when rotated. + - Marker info windows now render consistently. + - Info windows created using the return value of mapView:markerInfoContents: + will now correctly respect the height of the returned content rather than + always being square based on the width. + - Fixed an issue where texture cache limit is exceeded on devices supporting + @3x sized images. + +Version 1.13.2 - May 2016 +========================= +Resolved Issues: + - Added a workaround to avoid the false positive for the non-public API + imageWithName: selector. + +Version 1.13.1 - May 2016 +========================= +Resolved Issues: + - Fixed an application hang when using a UIView with autolayout enabled as an info + window or as a marker iconView. + - Changed lookUpPlaceID to not call its callback twice in error scenarios. + +Version 1.13.0 - March 2016 +=========================== +Features: + - UIView based markers. Marker content can now show advanced animations by + providing a custom view hierarchy to be displayed through the iconView property. + - Info windows can now have their custom views animated. Set tracksInfoWindowChanges + on the associated marker to YES to enable real-time updates. + - Map rendering now defaults to 60fps on modern iOS devices. Set the new + preferredFrameRate property on GMSMapView to revert to the old behavior + (Conservative) or a new low frame rate option to save battery (PowerSave). + - Added mapViewSnapshotReady: to GMSMapViewDelegate which fires when map content, + including markers and other overlays, has been fully rendered. + - Autocomplete widgets in the Places API now provide options for custom styling. + +Resolved Issues: + - GMSCoordinateBounds initWithVisibleRegion: now chooses correct bounds for large + viewports. + - Added a workaround to avoid a graphical glitch in snapshots taken using pre iOS 7 + methods when the My Location button is disabled. + - GMSAutocompleteViewController now works when used in a storyboard. + - Added missing Place Type constants. + +Version 1.12.3 - February 2016 +============================== +Resolved Issues: + - Fixed corruption in included bitcode that caused Xcode archive action to fail. + - Workaround limitation in Xcode 6.4 which was failing to compile included headers. + +Version 1.12.2 - February 2016 +============================== +Features: + - Added place photos to the Places API. + - Added structured address components to GMSPlace objects. + - SDK method signatures have been updated with generics and nullability annotations. + +Resolved Issues: + - GMSPlace objects now contain rating and price level where available. + - Minor bugfixes for the autocomplete widget UI. + - panoramaView:didMoveCamera: is no longer raised during the panoramaView delegate + setter. + - Old unused logo files have been removed from the SDK. + - Tap events on polygons near the anti-meridian are more reliable. + - Resolved an issue resulting in unrecognized selector crashes when calling + class methods on categories. + +Version 1.12.1 - February 2016 +============================== + +This version is exactly the same as 1.11.1. It was released to replace the +removed 1.12.0 release. + +Version 1.12.0 - February 2016 +============================== + +This version was removed because of errors in the framework and should not be +used. + +Version 1.11.1 - December 2015 +============================== +Resolved Issues: + - Modally presented Place Autocomplete widgets now correctly respect + UINavigationBar appearance proxy settings. + - Resolved minor UI issues with the Place Autocomplete widgets. + - Updated GoogleMaps.bundle info.plist to avoid triggering checks in + pre-submission verification. + +Version 1.11.0 - December 2015 +============================== +Features: + - Bitcode is now included in the SDK binary for all device architectures. + - Added Place Autocomplete widget classes. + - New events for long press on an info window, and closing an info window, have + been added to GMSMapViewDelegate. + - GMSMapViewDelegate has new events to indicate when map tiles and labels are + pending and finished rendering. + - GMSPanoramaViewDelegate has new events to indicate when panorama tiles are + pending and finished rendering. + - GMSGroundOverlay now supports an alpha multiplier via the opacity property. + - Added a holes property to GMSPolygon to allow for the subtraction away from + the filled area in order to create more complex shapes. + - At zoom levels greater than 14, the maximum tilt has been increased. + - Added an autocomplete screen to the Place Picker. + - Split autocomplete predictions into primary and secondary text fields. + - Added a country filter option to GMSAutocompleteFilter. + - Added a viewport field to GMSPlace. + +Resolved Issues: + - Correct handling of taps on overlapping markers. + - Address a race condition dependent crash which can happen when an application + enters and leaves the background while showing a map. + - Fix blank maps which can happen when launching an app into the background. + - Workaround issues with core animation that caused markers to jump. + - Updated to avoid subtle conflicts with applications which use + google-toolbox-for-mac. + - Use the iPhone language instead of the region formatting language for + Places API results. + +Notes: + - Setting GMSMapView selectedMarker to a marker not on the map is now ignored, + always set the marker's map property before attempting to select it. + +Version 1.10.5 - October 2015 +============================= +Resolved Issues: + - Workaround an issue in the Swift compiler's handling of umbrella header + module entries. + +Version 1.10.4 - October 2015 +============================= +Resolved Issues: + - Fixed a crash on iOS 9 when dismissing the place picker without a selection. + - Fixed a crash when using both a GMSMapView and a UIWebView or WKWebView in the view + hierarchy at the same time. + - Recompiled with Xcode 7 to avoid raising failed to load optimized model log messages + on iOS 9 devices. + +Version 1.10.3 - September 2015 +=============================== +Features: + - Google logos have been updated. + +Resolved Issues: + - Framework now ships with the device version of bundles to pass Xcode 7 archive checks. + +Version 1.10.2 - August 2015 +============================ +Resolved Issues: + - Fixed a crash releasing a map view while in background. + - Resolved a conflict with apps using gtm-session-fetcher resumable downloads. + - Recompiled with Xcode 6.4 to avoid some bugs in Xcode 6.3 compiler. + - Updated GoogleMaps.bundle info.plist to avoid triggering new checks in + pre-submission verification. + +Version 1.10.1 - June 2015 +========================== +Resolved Issues: + - Fixed an issue where instantiating GMSPlacesClient triggered a request to enable Bluetooth. + - Miscellaneous improvements to the GMSPlacePicker UI. + +Version 1.10.0 - May 2015 +========================= +Major Feature: + - Places API is now bundled with the Google Maps SDK for iOS. + +Features: + - New allowScrollGesturesDuringRotateOrZoom property on GMSUISettings controls whether + the user can scroll by panning during multi-touch rotate or zoom gestures. + - GMSPanoramaView now supports being used via storyboard. + - GMSGeocoder now supports being used while the application is in the background. + - GMSServices sharedServices can now be called while application is in the background. Note + that if the first call to sharedServices is while application is in the background some + async initialization work will be deferred until the first time a map is shown where it will + be performed synchronously. + - GMSMapView/GMSPanoramaView init messages can now be handled while the application is in + background. This should remove the last case where GMSMapView/GMSPanoramaView could not + be used in the background. + - GMSMapView/GMSPanormaView delegate properties now support IBOutlet for easier use via + storyboard. + +Resolved Issues: + - mapView:didTapMyLocationButtonForMapView: is now correctly called even if no location is + available. + - GMSGroundOverlay now shows correctly when rotated if image aspect ratio doesn't match the + selected ground region. + - Fixed an issue resizing the map on iOS 8. + - Fixed a rare crash under fast camera changes. + - Map no longer hangs when adding a ground overlay with certain invalid bounds. + - Fixed a crash when texture memory is exhausted by markers. + - Correctly return the tapped GMSCircle to mapView:didTapOverlay: for tappable circles. + - mapView:idleAtCameraPosition: will now be called even if there is an ongoing update of the + my location dot. + +Notes: + - Due to an ABI change in the Xcode compiler, Xcode 6.3 is now the only supported version for + compiling against Google Maps SDK for iOS. + - The minimum target iOS version for Google Maps SDK for iOS is now 7.0. Version 6.0 is no + longer supported. + +Version 1.9.2 - February 2015 +============================= +Resolved Issues: + - Show correct characters for Myanmar place labels. + - Fixed small memory leak related to font registration. + - Fixed large memory leak in rare cases where My Location is enabled and the user rotates + the screen. + - Correctly show ground overlays defined by zoom level which extend across >180 degrees + of longitude. + - Allow selected marker to be set during mapView:didTapAtCoordinate:. + - Throw exception rather than crash when map services are initialized while application is + in background. + - Raise mapView:willMove: and mapView:idleAtCameraPosition: even for swipe motions which + last less than 30ms. + - Correctly handle animations starting while a gesture is decelerating. + - Always return an error from GMSPanoramaService callbacks if panorama is nil. + - Don't attempt to navigate to empty panorama if moveNearCoordinate: resolves to nil. + +Version 1.9.1 - December 2014 +============================= +Resolved Issues: + - Added workaround for userEmail private selector false positive. + - Improved handling of info windows for iPhone 6+ running applications in scaled mode. + +Version 1.9.0 - October 2014 +============================ +Features: + - Support for iOS 8 + - Support for iPhone 6/6+ + - Support for Swift + - UI elements have been updated for material design + +Resolved Issues: + - Fixed some memory reclamation issues + - Improved handling of application background state transition + +Notes: + - In order to improve compatibility with Swift, two geometry library + functions have been renamed to avoid function overloading + The new names are GMSGeometryIsLocationOnPathTolerance and + GMSStyleSpansOffset + +Version 1.8.1 - May 2014 +======================== +Resolved Issues: + - Resolved GMSTileLayer not displaying + - Resolved a rare case where an app would crash when displaying polylines + while accessibility features are enabled + - mapView:willMove: is no longer called alongside a tap gesture + - Resolved symbol collisions with the Protocol Buffer library + +Version 1.8.0 - May 2014 +======================== +Resolved Issues: + - Resolved threading deadlock prominent on iPhone 4 running iOS 7.1 or later + - GMSMapView correctly releases some shared GL state previously causing + memory leak + - GMSPolyline no longer crashes in some cases where its path contained more + than 1024 segments + - The delegate method mapView:idleAtCameraPosition: is now only called once + all user gestures are complete + - The Google Maps SDK for iOS now includes fonts for languages currently + unsupported by the iOS system, such as Khmer + - These fonts may be safely removed from your GoogleMaps.framework if you + have no interest in these regions, but some text may render as "[?]" + +Version 1.7.2 - March 2014 +========================== +Resolved Issues: + - Heading will only appear on My Location dot when available + - Better reduction of colors on gradient or colored polylines at low zoom + - The search radius is now respected when retrieving a GMSPanorama object + via GMSPanoramaService and on GMSPanoramaView construction or move + - GMSPolyline is no longer grayscale on iOS 7.1 + +Version 1.7.0 - February 2014 +============================= +Features: + - Styled polylines: additional color options via GMSPolyline, including + gradients and colors per any number of polyline segments + * Each polyline may be drawn with many GMSStyleSpan instances, configuring + a unique color or gradient over an arbitrary number of segments + * Gradient or color may be specified via a GMSStrokeStyle + * GMSPath provides a helper category to determine distance along a path + * GMSStyleSpans helper to apply repeated styles along a polyline + - GMSGeocoder now provides structured addresses via GMSAddress, deprecating + GMSReverseGeocodeResult + - Added mutable version of GMSCameraPosition, GMSMutableCameraPosition + - Delegate method for user tapping the My Location button + - Added GMSMapPoint for linear interpolation between points in Mercator space + on the Earth + - My Location dot now shows compass arrow + - 3D building data at many places on the Earth + +Resolved Issues: + - GMSPolyline width is much closer to screen width + - GMSPolyline performance and memory improvements + - Reduced memory use of OpenGL textures + - Floor picker is positioned correctly when My Location button is disabled + - cameraForBounds:insets: on GMSMapView now correctly accounts for padding + +Notes: + - To align with other Google Maps APIs, GMSMapView no longer provides helper + methods to retrieve previously added overlays, such as -markers, -polylines + and -groundOverlays + +Version 1.6.2 - January 2014 +============================ +Resolved Issues: + - Resolved a gesture bug effecting full-screen maps on iOS 7 + - Resolved an issue where overlays were sometimes not initially tappable + +Version 1.6.1 - December 2013 +============================= +Resolved Issues: + - Resolved a memory leak involving vector tiles + - Markers not immediately added to a GMSMapView no longer fail to appear + when configured at a later point + - GMSMapView/GMSPanoramaView will now continue to render while your + application is resigned + +Version 1.6.0 - November 2013 +============================= +Features: + - The Google Maps SDK for iOS now supports 64-bit architectures + - Added the ability to restrict min and max zoom on GMSMapView + - Added opacity on GMSTileLayer + - Added opacity on GMSMarker, which may be animated + - Updated types within the SDK and used float or double instead of CGFloat + in cases where it was more appropriate + - Core Animation on GMSMapView now requires model values to be set + +Resolved Issues: + - Marker info windows and tappable regions now rotate correctly with markers + - Padding on a GMSMapView is no longer clamped to its bounds (useful if + setting padding on an initially zero-sized map) + - Copyright information now animates alongside changing GMSMapView size or + padding + - Info windows are removed if their GMSMarker is removed from a GMSMapView + - My Location dot uses the last known information when enabled + - Resolved two rare race conditions that were causing crashes + - Resolved an issue where retain cycles were causing memory leaks on + GMSMapView and GMSPanoramaView + +Version 1.5.0 - September 2013 +============================== +Features: + - This release officially supports iOS 7, and requires iOS 6.0 or later (iOS + 5.1 is no longer supported). + - The 'animated' field on GMSMarker is now known as 'appearAnimation', and + may be set to kGMSMarkerAnimationNone (default) or kGMSMarkerAnimationPop + - The Google Maps SDK for iOS now ships with an armv7s slice + - New features for GMSMarker instances + * Markers can be made draggable using the draggable property, and new drag + delegate methods have been added to GMSMapViewDelegate + * Added GMSMarkerLayer, a custom CALayer subclass for GMSMarker that + supports animation of marker position and rotation + * Added support for markers that appear flat against the Earth's surface + * Added rotation property to rotate markers around their ground anchor + * The UIImage used by GMSMarker now supports the images and duration + properties, and will animate images with multiple frames + * The UIImage used by GMSMarker now supports alignmentRectInsets, and will + adjust groundAnchor, infoWindowAnchor, and the tappable region + - Added padding on GMSMapView, allowing you to indicate parts of the map that + may be obscured by other views; setting padding re-positions the standard + map controls, and the camera and camera updates will use the padded region + - GMSPanoramaView and GMSPanoramaService now support searching for panoramas + with custom radius + - Added cameraForBounds:insets: to GMSMapView, allowing construction of a + GMSCameraPosition for the map from a specified GMSCoordinateBounds + +Resolved Issues: + - My Location button now clips within GMSMapView + - Reduced memory usage of GMSMapView through less agressive tile caching + - Reduced the time taken to obtain GMSServices by moving some startup tasks + to a background thread; obtaining this object early in your application + (before creating a GMSMapView or other objects) may improve performance + - Polylines may now be drawn twice, as required, if they have very large + longitudinal span + - Resolved a rounding error with very small polygons far from latlng (0,0) + +Version 1.4.3 - August 2013 +=========================== +Resolved Issues: + - Resolved several causes of modifying markers that could cause 'ghost' + markers to appear + - Resolved excess texture use when modifying animated markers + +Version 1.4.2 - August 2013 +=========================== +Resolved Issues: + - Fixed a rare case where modifying an animated marker could cause 'ghost' + markers to appear + - Prioritized markers over other overlays for tappability + +Version 1.4.1 - August 2013 +=========================== +Features: + - Tappable markers inside GMSPanoramaView using the + panoramaView:didTapMarker: delegate method on GMSPanoramaViewDelegate + - Added GMSPanoramaLayer, a custom CALayer subclass for GMSPanoramaView that + supports animation of the panorama camera + - GMSPanoramaCamera supports custom field of view (FOV) + - Programmatic access to the floor picker allows you to enable or disable the + selector, and set which floor should be displayed + - GMSTileLayer now supports high DPI tiles, for use on a Retina device + - GMSMapView.camera is now observable via KVO + - Added fitBounds:withEdgeInsets: to GMSCameraUpdate + - The default behavior of a GMSMapView to consume all gestures within its + bounds may now be disabled via consumesGesturesInView + - Expanded GMSGeometryUtils to include additional helper methods + - GMSServices may be held by applications to maintain cache and connection to + Google; this can improve performance when creating and destroying many maps + - Improved visuals when resizing a GMSMapView via UIView animation methods + +Resolved Issues: + - Fixed crash bug during memory warning (related to indoor) + - Fixed crash bug with indoor maps on iOS 5.1 + - Performance improvements when using hundreds of GMSMarkers + - Reduced memory footprint of GMSMapView + - Touch target for GMSMarkers matches the size and shape of the marker when + the GMSMapView is tilted + - GMSMapView will no longer render a single frame of black in some cases + (noticable e.g., inside UISplitViewController on iPad) + - Street View imagery is now adjusted correctly for tilted base data + (e.g., data taken by a Street View car on a slope) + - Geodesic interpolation has been tweaked to be more correct + - Fixed incorrect GMSGroundOverlay sizing (regression in 1.4.0) + - fitBounds:withPadding: on GMSCameraUpdate now correctly applies padding to + all edges of the bounds; previously it used 1/2 padding on each edge + +Version 1.4.0 - July 2013 +========================= +Features: + - Support for Google Street View imagery, with coverage in 50+ countries + * Added GMSPanoramaView, a viewer for Street View imagery, that enables + both programmatic and user control + * GMSMarkers can be shared between GMSMapView and GMSPanoramaView + * GMSPanoramaService may be used to load panorama data ahead of display + - Indoor floor plans and a floor selector control will now be displayed when + available + - Updated map design inspired by the new Google Maps + - Info windows now show at 1:1 resolution on the screen regardless of tilt + - Additional delegate methods on GMSMapView - mapView:willMove: and + mapView:idleAtCameraPosition: - allow you to detect the start and + end of camera movement, respectively + - An improved look and feel for polylines and polygon stroke + - Added a zIndex property on all overlays; z-indexes are calculated in two + groups: GMSMarkers and all other overlays + - Added GMSGeometryUtils methods for heading, distance, offset etc. with + respect to points on the Earth + +Resolved Issues: + - Improved the tappability of GMSPolygon + - The compass now disappears when the map returns to zero bearing for any + reason, including animation + - Resolved crash issue when creating a zero-sized GMSPolygon + - Resolved an issue where active gestures could cause a GMSMapView to not + be released until deceleration completed + - Info windows no longer allow taps to pass through them + - Accessibility elements on GMSMapView are now hidden by default; you can + enable via accessibilityElementsHidden + +Notes: + - To align with other Google Maps APIs, GMSGroundOverlay no longer supports + the zoomLevel property. You can use the helper method + groundOverlayWithPosition:icon:zoomLevel: to migrate existing code + +Version 1.3.1 - June 2013 +========================= +Resolved Issues: + - Shows all tiles when animating across the antimeridian + - Performance improvements while zooming + - Touches are consumed more agressively by GMSMapView + - Fixed constructing a GMSMutablePath via pathFromEncodedPath: + - Restores OpenGL state correctly in GMSMapView in applications that also use + GLKView + +Version 1.3.0 - May 2013 +======================== +Features: + - Support for custom tile overlays (image-based) via GMSTileLayer + - Anti-aliasing for GMSPolyline and GMSPolygon stroke + - Support for 'invisible' base map tiles via kGMSTypeNone + - Basic support for CAAnimationGroup on GMSMapLayer + +Resolved Issues: + - Performance improvements with large numbers of overlays + - Resolved excessive memory use when device was locked/unlocked while an info + window was displayed + - Animations are stopped when a user performs a gesture + - Animations stop any active gesture (e.g., a pan) + - Resolved crash issue with setting/clearing My Location dot. + - GMSPolyline and GMSPolygon now support greater precision at high zoom + - GMSPolyline and GMSPolygon use the correct alpha values + - Touches are consumed by GMSMapView, allowing use within e.g. a scroll view + +Version 1.2.2 - April 2013 +========================== +Resolved Issues: + - Tappable regions for GMSMarker fixed. + - Overlays are no longer able to render on half pixels. + - Ground overlays appear underneath the My Location dot. + - GMSPolyline 'strokeColor' is no longer erroneously deallocated. + +Version 1.2.0 - April 2013 +========================== +Features: + - Removed GMS...Options classes in favor of creating overlays directly + and setting their 'map' property + - Map overlays (GMSMarker, GMSPolyline, others) now inherit from a shared + GMSOverlay class + - GMSPolyline now has 'strokeWidth' and 'strokeColor' to match GMSPolygon, + rather than 'width' and 'stroke' + - More helper methods on GMSCoordinateBounds, 'including' renamed to + 'includingCoordinate', added 'includingBounds' + - Added GMSPolygon and GMSCircle overlays + - A GMSMarker may be animated when added to a map + - Overlay types may now be subclassed + - GMSCameraUpdate to create camera update objects, including operations to + set a camera that presents a specified GMSCoordinateBounds + - GMSUISettings may be used to add a compass or My Location button (disabled + by default) + - Non-marker overlay types may be tapped (see GMSMapViewDelegate) + - Default marker changed to the Google Maps for iPhone marker + - Added markerImageWithColor: to create tinted versions of the default marker + - GMSMapLayer, the CALayer subclass for GMSMapView, now supports modification + of its camera properties, allowing for advanced animation effects + +Resolved Issues: + - visibleRegion now reports correctly sized region on Retina devices + - Double-tap to zoom now centers around tapped point + - Disabling pan via UISettings now prevents movement with zoom gestures + - GMSPolyline performance is improved for large polylines + - GMSMapView may be subclassed + - My Location dot appears underneath markers + - Performance improvements when using the My Location dot + - Grayscale polylines now render correctly + - Calling renderInContext: on the GMSMapView layer now renders correctly; + this allows for snapshots and UI effects + - The default behavior when a marker is tapped has been updated to also pan + the camera to the marker's position + - semaphore_wait_trap issue resolved + +Version 1.1.2 - March 2013 +========================== +Resolved Issues: + - Updated the SDK to use libc++ instead of libstdc++ + - Improved support for including a GMSMapView and GLKView in the same app + +Version 1.1.1 - March 2013 +========================== +Features: + - Improved the messages that are logged to the console when a invalid key is + used or a connection error occurs + - Added multi-line snippet support for GMSMarker + +Resolved Issues: + - GMSMapView could return a nil camera + - Multiple GMSMapView instances no longer 'camera crosstalk.' + - The SDK contained unresolved external references + - A GMSMarker with an empty title and snippet no longer shows an empty + info window. + +Version 1.1.0 - February 2013 +============================= +Features: + - The points of a GMSPolyline (and GMSPolylineOptions) are now specified as + a GMSPath and built via a GMSMutablePath, rather than addVertex: etc + - GMSPolyline may now be specified as geodesic + - animateToCameraPosition: method on GMSMapView + - GMSProjection provides containsCoordinate: and visibleRegion helpers + +Resolved Issues: + - GMSCameraPosition and animateToLocation: now clamp/wrap latitude/longitude + respectively; similarly, bearing is clamped to 0 <= bearing < 360 + - GMSGroundOverlay may be modified after creation + - The points of a GMSPoyline may be modified after creation + - GMSPolyline may cross the antimeridian + - Resolved a marker sorting issue + +Version 1.0.2 - January 2013 +============================ +Features: + - GMSCamera (struct) has been dropped in favor of GMSCameraPosition * (objc + class), supports finer control of bearing and viewing angle + - Added GMSUISettings to control gesture availability + - Added GMSGroundOverlay/GMSGroundOverlayOptions for basic ground overlay + support + - Removed requirement to call startRendering/stopRendering + - Support for adding GMSMapView as a custom UIView in Interface Builder + - Improved texture memory handling + +Resolved Issues: + - Info windows now have highest tap priority + - Selected markers are automatically brought to front + - Polylines now render at constant size regardless of the zoom level + +Version 1.0.1 - December 2012 +============================= +Initial release alongside Google Maps for iOS. +Support for 3D maps, rotation, tilt, 3D buildings, markers, polylines, +satellite and terrain tiles, traffic data, and other features. diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj b/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj new file mode 100755 index 0000000..874b9b4 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj @@ -0,0 +1,637 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 04A6E32691762C9B82741DD3 /* AnimatedUIViewMarkerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EB950AA302B77F16CF18088 /* AnimatedUIViewMarkerViewController.m */; }; + 06A6DB21EBC3BEE5EFC18F63 /* DemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C7AD415580B4A6B35532456A /* DemoAppDelegate.m */; }; + 098A6903B793226E41655E9A /* australia-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 9F4CB893BCACB294FBCEC850 /* australia-large.png */; }; + 0A6ABA75278F49BBE253AB14 /* Samples.m in Sources */ = {isa = PBXBuildFile; fileRef = 115963CCE082409262D179F3 /* Samples.m */; }; + 0A993DA21C49FA93BD34D9AB /* VisibleRegionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A0518A8C9E543FFBA7F8305E /* VisibleRegionViewController.m */; }; + 0BFB1CE395345832444BB754 /* TrafficMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 611E9F57BD5274878732C0BE /* TrafficMapViewController.m */; }; + 0FA2ABEFE1C97FBAC51862A4 /* IndoorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DA013030BC14C994AEA2428 /* IndoorViewController.m */; }; + 1356F8E5750C793966437D77 /* StyledMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3408578DDDF6D8B183D9B91E /* StyledMapViewController.m */; }; + 15C05007C9E2A96F24EA9F5E /* newark_nj_1922.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 2B0884C720D5AE0BDCC1903D /* newark_nj_1922.jpg */; }; + 19FE865B8D874541ADF29D86 /* MarkerLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C3E84ED0331DFB2A7082CA36 /* MarkerLayerViewController.m */; }; + 1A3DA97F99AF723B7107AF35 /* step1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C6A156792608F06437E5931 /* step1@2x.png */; }; + 20298941EFC09F43D63DCE5A /* CustomMarkersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DC77B503E93E88F6E254A170 /* CustomMarkersViewController.m */; }; + 20D8B040CD85902D32D3FF1F /* step4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 60944672BB9D460BE315ECB8 /* step4@2x.png */; }; + 22F37937FCB1678CA41A3B9C /* h1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 16C4B08486C9905568685983 /* h1@2x.png */; }; + 2697C9A8D582C19EB30D5FD6 /* MapsDemoAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B53B4C2097A6AD4A98746495 /* MapsDemoAssets.xcassets */; }; + 2A2DEEBBC313603053606408 /* argentina-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 4D8E4A10394122CD9C9CD157 /* argentina-large.png */; }; + 2C99845EF56A93DE151A312C /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1D504741871952487BB5BE /* MasterViewController.m */; }; + 2D468948D33349CAA702223C /* FixedPanoramaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C762E469D796AFF83D3516EF /* FixedPanoramaViewController.m */; }; + 378986C8682C3E9502BF3AB1 /* aeroplane.png in Resources */ = {isa = PBXBuildFile; fileRef = 937B2FC602E80ADC11CF364F /* aeroplane.png */; }; + 3A03EFC97500E90F5BA4B154 /* step2.png in Resources */ = {isa = PBXBuildFile; fileRef = BB85B60A794D982F001E5D1D /* step2.png */; }; + 3B5BFC9FF8920B3C0094CB2C /* botswana.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C186E84CB691DD6239C5E57 /* botswana.png */; }; + 3BBAD9FD0A0306B2F3A0017B /* step7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E3C8118FBF6DF1D4996693 /* step7@2x.png */; }; + 3F1CD8E1AF755A78EB905F52 /* popup_santa.png in Resources */ = {isa = PBXBuildFile; fileRef = EF01EFEF0FC77447C02FE86C /* popup_santa.png */; }; + 42873FDCAF070F7C97FA6CD8 /* step7.png in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B37F0669CF34418A263F9 /* step7.png */; }; + 4619B918B8B9F159C1E96881 /* australia.png in Resources */ = {isa = PBXBuildFile; fileRef = 304A2B780A4A9B2D32261355 /* australia.png */; }; + 4A15D118D86D82C11D071B2C /* StructuredGeocoderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AAFE928C9FDAA1B5703AE31 /* StructuredGeocoderViewController.m */; }; + 4AF30BA2FC6298BE86F69993 /* mapstyle-night.json in Resources */ = {isa = PBXBuildFile; fileRef = FFEED4DDB04F69C84A1924F1 /* mapstyle-night.json */; }; + 51B83EFF06E04A24A563001A /* IndoorMuseumNavigationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1318E0A2BA2A41F2E8759CFE /* IndoorMuseumNavigationViewController.m */; }; + 5659C71D0D7318D593860C3F /* MapZoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B3D673FA7036FA5D07CB287 /* MapZoomViewController.m */; }; + 59060F253A6002024FC080CD /* track.json in Resources */ = {isa = PBXBuildFile; fileRef = AD6B1AF49A87CC079E9CA862 /* track.json */; }; + 59EE98AF87BFE6B4535EC9A6 /* PanoramaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9ECA1CA359738BB8B17657F /* PanoramaViewController.m */; }; + 5B8111397A7EABE0DCC77622 /* step5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AB708C911CD9B99ADBB07D08 /* step5@2x.png */; }; + 5C7670767D52307133D1BCFE /* DoubleMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DFCC9D1D1F70D492149D65 /* DoubleMapViewController.m */; }; + 64984B84B09FD0DF72308C07 /* CameraViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A36E26A0818D4F0DF21051 /* CameraViewController.m */; }; + 68679F97011184371A35D7C7 /* bulgaria-large.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6BF21C0287E5828A770C09 /* bulgaria-large.png */; }; + 6CC9DED8E8F3CE56B8E94872 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 21267D205F7EC280F26D97ED /* main.m */; }; + 6D1C9B07CAEDF524673ED31E /* BasicMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC5AD93CD72DE8F5B004A621 /* BasicMapViewController.m */; }; + 703FCE6348C17E69ED669A78 /* GroundOverlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8038AEC0AF9CBD2EBB975F54 /* GroundOverlayViewController.m */; }; + 74F05FB9E466D95B85A15A58 /* MarkerInfoWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89DFB3350D98DA617A2ECE85 /* MarkerInfoWindowViewController.m */; }; + 7AE0FCC85B7BBE162025751C /* step8.png in Resources */ = {isa = PBXBuildFile; fileRef = B7B684AAFC3CA2232721C6D0 /* step8.png */; }; + 7D2186B159E9848AA6C7386C /* step6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C0E7585025B57F969D8C3CCD /* step6@2x.png */; }; + 8491B4753D6795A5CB69AF74 /* TileLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CEA86A42848E5BAA7B523FB /* TileLayerViewController.m */; }; + 853063CF351F34F9F1DBD8CC /* step4.png in Resources */ = {isa = PBXBuildFile; fileRef = 99C6A64731FB5249BA53255D /* step4.png */; }; + 8852EA6A02F703F08F9458F3 /* x29.png in Resources */ = {isa = PBXBuildFile; fileRef = 77E4A5AC4E17EB252D617792 /* x29.png */; }; + 8950E155E20CB2893D279F3D /* AnimatedCurrentLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C37F2216D5D94A3F8B698AF2 /* AnimatedCurrentLocationViewController.m */; }; + 8EFDA781EBA17E7CD7301272 /* glow-marker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 430314741C873551A75A6748 /* glow-marker@2x.png */; }; + 8F9917C4115CD02B657B331A /* spitfire.png in Resources */ = {isa = PBXBuildFile; fileRef = 91BCD28A8D5451665C5B3FDE /* spitfire.png */; }; + 8FE940554B1218140ABEE6BB /* PolylinesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FA4145303F340FC3675AABA5 /* PolylinesViewController.m */; }; + 91A98DD42AE05DDD991B8788 /* glow-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = 57D0C4A29B66857C926387F0 /* glow-marker.png */; }; + 925BF76B710DA288319498D5 /* argentina.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B80BDCF78F436799462F76 /* argentina.png */; }; + 93B36402D287634E247E5631 /* GeocoderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A77C64C5A8B8109E6AFC41F /* GeocoderViewController.m */; }; + 9594F950A37D8665796B334D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F4C119D42CF37317FA0DFA9 /* UIKit.framework */; }; + 9D84E6619020CE531E5823CD /* botswana-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 440513A7769094565EA82DD2 /* botswana-large.png */; }; + A04BBCC3FF015903AF7CD93F /* museum-exhibits.json in Resources */ = {isa = PBXBuildFile; fileRef = 346BE94E21267BA7E00E1B94 /* museum-exhibits.json */; }; + A137149150C011207E2F8EE1 /* MyLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0878372A9A7274B74BCBE0 /* MyLocationViewController.m */; }; + A1F2D1C33D98B28D454849A2 /* step2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F955F74654756E7F7DBD9C1 /* step2@2x.png */; }; + A35320D9B69272ACF3B9139F /* SnapshotReadyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15E621C7788D69B720052601 /* SnapshotReadyViewController.m */; }; + A85222E1796CDBCBB8F98B6B /* CustomIndoorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5563ED82E4E77A76707DAF12 /* CustomIndoorViewController.m */; }; + B646C0BAD2A245557B519931 /* step1.png in Resources */ = {isa = PBXBuildFile; fileRef = D66EF243066A58A0D10280D4 /* step1.png */; }; + BA2D028BE5ED8042FEB05D8F /* bulgaria.png in Resources */ = {isa = PBXBuildFile; fileRef = 2BC67BDB51522BC85EBFED8E /* bulgaria.png */; }; + C0210C5B8B348A0348D92DA9 /* step8@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E5AF68BBC86BA530755A20 /* step8@2x.png */; }; + C24A5F52692CDC51864F522C /* FrameRateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DB963F858613E50A64CFAE6 /* FrameRateViewController.m */; }; + C2BC30E26D4D2515FDB15848 /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 6614BE28012C7A7508437047 /* arrow.png */; }; + C3BC945D74D0E19BCCA532DE /* voyager.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B3B4C44092471CA56ACFD4C /* voyager.png */; }; + C665CD379C7D3EA34F31733E /* MarkersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D4CFDA7D44E2CF33EB10072B /* MarkersViewController.m */; }; + C68C326EC8F06BD2844D239A /* MapLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E7BBD64FA078FC4259FCBD2 /* MapLayerViewController.m */; }; + C72707078B04ECA88BB00B14 /* FitBoundsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 721936633CF79A85B5EF0E92 /* FitBoundsViewController.m */; }; + CEF41B4E3CA0239A4A40AD88 /* step3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A3AE3B168663EA43D3F2F259 /* step3@2x.png */; }; + D2D3662C0F97C35BB54234A7 /* australia-large@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A1D521E4FF1F8F85E084ED60 /* australia-large@2x.png */; }; + D315909F7B28D2B51914678F /* step5.png in Resources */ = {isa = PBXBuildFile; fileRef = B1763EA929EC73C50D294134 /* step5.png */; }; + D33BBB708DE21370608DABD7 /* arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66DE8D273E896D7FF5B86DC9 /* arrow@2x.png */; }; + D522835123F06D863FA47A03 /* MapTypesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F371BFD608DCF4DA1671DB03 /* MapTypesViewController.m */; }; + D9978336CFEF2FB35E1512B7 /* mapstyle-silver.json in Resources */ = {isa = PBXBuildFile; fileRef = B4C89E62C05816B590F45D57 /* mapstyle-silver.json */; }; + E026AFA1FD4D48D34E41812C /* x29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD1DD5592D028FDD5E527FDF /* x29@2x.png */; }; + E03EA95750E7A51C555D13D5 /* PolygonsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ED9C84A592EB6464725BB9C /* PolygonsViewController.m */; }; + E0C0502D8979F84036A8282C /* popup_santa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E2E2B19EF6846F007A7A909 /* popup_santa@2x.png */; }; + E16060A9BF2245DFA511E5B9 /* MarkerEventsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9450C49DDD49AF9182779EB /* MarkerEventsViewController.m */; }; + E1DA9796D5C0B3265B5F5BC2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DBB8C9AD891A00824AE32343 /* LaunchScreen.storyboard */; }; + E333D8C48DCB564E46915AB1 /* aeroplane@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3F716156C215C436D55F5696 /* aeroplane@2x.png */; }; + E4FE8CE15D430EB5589CE54C /* voyager@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C56541EDCEFDB922783385B5 /* voyager@2x.png */; }; + E7202399F72A85099331EF13 /* h1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B05E27C8BB92E89D2DC78AC /* h1.png */; }; + E7E8214CC970237B5D2B03DC /* spitfire@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15768E1EE7E314DF1B0A395 /* spitfire@2x.png */; }; + EBF76DDAB230B2E52D0BD7D7 /* step6.png in Resources */ = {isa = PBXBuildFile; fileRef = F64D45825D2647898331A1FF /* step6.png */; }; + ECE3127B3EECC2B55DCCC5A6 /* step3.png in Resources */ = {isa = PBXBuildFile; fileRef = 6533FA4161283F8F6A5F2CC3 /* step3.png */; }; + EE4D614B504845ADC2EA771A /* GradientPolylinesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B4378F4DBE15BB0E32690CE /* GradientPolylinesViewController.m */; }; + F01D751710D9C729085F540B /* boat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E00AE555F58259DD31C383 /* boat@2x.png */; }; + FE8BB1E6E58AE2D5B1226C7B /* GestureControlViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71CE23C2A26FD3C29E6AEEA7 /* GestureControlViewController.m */; }; + FF8065B590AD6493752A8632 /* mapstyle-retro.json in Resources */ = {isa = PBXBuildFile; fileRef = 118A0FE8CA1D110B3C694A8D /* mapstyle-retro.json */; }; + FFE41F3FA7C01734283B9D57 /* boat.png in Resources */ = {isa = PBXBuildFile; fileRef = 2B049CFC81E59949D0184B8B /* boat.png */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 02A7C56A409A0CB977458251 /* DemoAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoAppDelegate.h; sourceTree = ""; }; + 03E00AE555F58259DD31C383 /* boat@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "boat@2x.png"; sourceTree = ""; }; + 09A36E26A0818D4F0DF21051 /* CameraViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CameraViewController.m; sourceTree = ""; }; + 0C5E03510539F570D757CAEE /* GestureControlViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GestureControlViewController.h; sourceTree = ""; }; + 0CEA86A42848E5BAA7B523FB /* TileLayerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TileLayerViewController.m; sourceTree = ""; }; + 115963CCE082409262D179F3 /* Samples.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Samples.m; sourceTree = ""; }; + 118A0FE8CA1D110B3C694A8D /* mapstyle-retro.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-retro.json"; sourceTree = ""; }; + 1318E0A2BA2A41F2E8759CFE /* IndoorMuseumNavigationViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IndoorMuseumNavigationViewController.m; sourceTree = ""; }; + 15E621C7788D69B720052601 /* SnapshotReadyViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SnapshotReadyViewController.m; sourceTree = ""; }; + 15E6F2AA55437CFAC24BCFEE /* MarkerInfoWindowViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkerInfoWindowViewController.h; sourceTree = ""; }; + 16C4B08486C9905568685983 /* h1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "h1@2x.png"; sourceTree = ""; }; + 1B4378F4DBE15BB0E32690CE /* GradientPolylinesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GradientPolylinesViewController.m; sourceTree = ""; }; + 21267D205F7EC280F26D97ED /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 281FB700EEAC3323C52CB587 /* AnimatedCurrentLocationViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnimatedCurrentLocationViewController.h; sourceTree = ""; }; + 2A77C64C5A8B8109E6AFC41F /* GeocoderViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GeocoderViewController.m; sourceTree = ""; }; + 2AAFE928C9FDAA1B5703AE31 /* StructuredGeocoderViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StructuredGeocoderViewController.m; sourceTree = ""; }; + 2B049CFC81E59949D0184B8B /* boat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boat.png; sourceTree = ""; }; + 2B0884C720D5AE0BDCC1903D /* newark_nj_1922.jpg */ = {isa = PBXFileReference; lastKnownFileType = text; path = newark_nj_1922.jpg; sourceTree = ""; }; + 2BC67BDB51522BC85EBFED8E /* bulgaria.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bulgaria.png; sourceTree = ""; }; + 2D030F81AEB6D3278B8EA303 /* VisibleRegionViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VisibleRegionViewController.h; sourceTree = ""; }; + 2EB950AA302B77F16CF18088 /* AnimatedUIViewMarkerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnimatedUIViewMarkerViewController.m; sourceTree = ""; }; + 2ED9C84A592EB6464725BB9C /* PolygonsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PolygonsViewController.m; sourceTree = ""; }; + 304A2B780A4A9B2D32261355 /* australia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = australia.png; sourceTree = ""; }; + 33BC04FF4445AA4649D16101 /* TileLayerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TileLayerViewController.h; sourceTree = ""; }; + 3408578DDDF6D8B183D9B91E /* StyledMapViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StyledMapViewController.m; sourceTree = ""; }; + 346BE94E21267BA7E00E1B94 /* museum-exhibits.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "museum-exhibits.json"; sourceTree = ""; }; + 3B0B37F0669CF34418A263F9 /* step7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step7.png; sourceTree = ""; }; + 3B3D673FA7036FA5D07CB287 /* MapZoomViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapZoomViewController.m; sourceTree = ""; }; + 3E7BBD64FA078FC4259FCBD2 /* MapLayerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapLayerViewController.m; sourceTree = ""; }; + 3F716156C215C436D55F5696 /* aeroplane@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "aeroplane@2x.png"; sourceTree = ""; }; + 430314741C873551A75A6748 /* glow-marker@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "glow-marker@2x.png"; sourceTree = ""; }; + 440513A7769094565EA82DD2 /* botswana-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "botswana-large.png"; sourceTree = ""; }; + 4B436F286FDDDE125BA44AEE /* MapTypesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapTypesViewController.h; sourceTree = ""; }; + 4D8E4A10394122CD9C9CD157 /* argentina-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "argentina-large.png"; sourceTree = ""; }; + 4F955F74654756E7F7DBD9C1 /* step2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step2@2x.png"; sourceTree = ""; }; + 51B3E8FEDF5AFB146C099C21 /* MapLayerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapLayerViewController.h; sourceTree = ""; }; + 5563ED82E4E77A76707DAF12 /* CustomIndoorViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomIndoorViewController.m; sourceTree = ""; }; + 57D0C4A29B66857C926387F0 /* glow-marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "glow-marker.png"; sourceTree = ""; }; + 5B3B4C44092471CA56ACFD4C /* voyager.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = voyager.png; sourceTree = ""; }; + 5C9035433ADBDA49B4FF973F /* StructuredGeocoderViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StructuredGeocoderViewController.h; sourceTree = ""; }; + 5E2E2B19EF6846F007A7A909 /* popup_santa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "popup_santa@2x.png"; sourceTree = ""; }; + 5F34640A0EABB50A24705F03 /* MyLocationViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLocationViewController.h; sourceTree = ""; }; + 60944672BB9D460BE315ECB8 /* step4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step4@2x.png"; sourceTree = ""; }; + 611E9F57BD5274878732C0BE /* TrafficMapViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TrafficMapViewController.m; sourceTree = ""; }; + 6140C36D94B102F62C26B713 /* IndoorMuseumNavigationViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IndoorMuseumNavigationViewController.h; sourceTree = ""; }; + 6533FA4161283F8F6A5F2CC3 /* step3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step3.png; sourceTree = ""; }; + 658307DB8F671E9CA0B1A2E6 /* GoogleMapsDemos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GoogleMapsDemos.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 6614BE28012C7A7508437047 /* arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow.png; sourceTree = ""; }; + 66DE8D273E896D7FF5B86DC9 /* arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "arrow@2x.png"; sourceTree = ""; }; + 6B05E27C8BB92E89D2DC78AC /* h1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = h1.png; sourceTree = ""; }; + 6C186E84CB691DD6239C5E57 /* botswana.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = botswana.png; sourceTree = ""; }; + 6C6A156792608F06437E5931 /* step1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step1@2x.png"; sourceTree = ""; }; + 6F4C119D42CF37317FA0DFA9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 71CE23C2A26FD3C29E6AEEA7 /* GestureControlViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GestureControlViewController.m; sourceTree = ""; }; + 721936633CF79A85B5EF0E92 /* FitBoundsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FitBoundsViewController.m; sourceTree = ""; }; + 726F8CE865076A20EE4C4408 /* PanoramaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PanoramaViewController.h; sourceTree = ""; }; + 77E4A5AC4E17EB252D617792 /* x29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = x29.png; sourceTree = ""; }; + 7BAA2BF38E0B41197BB6CA14 /* GroundOverlayViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GroundOverlayViewController.h; sourceTree = ""; }; + 7DB963F858613E50A64CFAE6 /* FrameRateViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FrameRateViewController.m; sourceTree = ""; }; + 8038AEC0AF9CBD2EBB975F54 /* GroundOverlayViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GroundOverlayViewController.m; sourceTree = ""; }; + 805803DEB0E29A1395C6ABB6 /* TrafficMapViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TrafficMapViewController.h; sourceTree = ""; }; + 8348F1BC33E5DCAAB85BBA43 /* DoubleMapViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DoubleMapViewController.h; sourceTree = ""; }; + 87C50C8E191C32391FCDE143 /* CameraViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CameraViewController.h; sourceTree = ""; }; + 89DFB3350D98DA617A2ECE85 /* MarkerInfoWindowViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MarkerInfoWindowViewController.m; sourceTree = ""; }; + 8BEC50A442A8A75604D7007D /* FixedPanoramaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FixedPanoramaViewController.h; sourceTree = ""; }; + 8DA013030BC14C994AEA2428 /* IndoorViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IndoorViewController.m; sourceTree = ""; }; + 90AFC572AAEC55CB23E0EDB4 /* BasicMapViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BasicMapViewController.h; sourceTree = ""; }; + 91BCD28A8D5451665C5B3FDE /* spitfire.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spitfire.png; sourceTree = ""; }; + 937B2FC602E80ADC11CF364F /* aeroplane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = aeroplane.png; sourceTree = ""; }; + 99C6A64731FB5249BA53255D /* step4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step4.png; sourceTree = ""; }; + 9F4CB893BCACB294FBCEC850 /* australia-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "australia-large.png"; sourceTree = ""; }; + A0518A8C9E543FFBA7F8305E /* VisibleRegionViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VisibleRegionViewController.m; sourceTree = ""; }; + A1D521E4FF1F8F85E084ED60 /* australia-large@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "australia-large@2x.png"; sourceTree = ""; }; + A3AE3B168663EA43D3F2F259 /* step3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step3@2x.png"; sourceTree = ""; }; + A6B80BDCF78F436799462F76 /* argentina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = argentina.png; sourceTree = ""; }; + A9ECA1CA359738BB8B17657F /* PanoramaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PanoramaViewController.m; sourceTree = ""; }; + AA7FD859248BB356AA73A407 /* FrameRateViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrameRateViewController.h; sourceTree = ""; }; + AAB5CC69AA4A14C0B11D0F2B /* MapZoomViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapZoomViewController.h; sourceTree = ""; }; + AB6D8FD2BBEB798B9D0A33DE /* IndoorViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IndoorViewController.h; sourceTree = ""; }; + AB708C911CD9B99ADBB07D08 /* step5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step5@2x.png"; sourceTree = ""; }; + AD6B1AF49A87CC079E9CA862 /* track.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = track.json; sourceTree = ""; }; + B15768E1EE7E314DF1B0A395 /* spitfire@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "spitfire@2x.png"; sourceTree = ""; }; + B1763EA929EC73C50D294134 /* step5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step5.png; sourceTree = ""; }; + B4C89E62C05816B590F45D57 /* mapstyle-silver.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-silver.json"; sourceTree = ""; }; + B53058D6D185A08DDEF65436 /* Samples.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Samples.h; sourceTree = ""; }; + B53B4C2097A6AD4A98746495 /* MapsDemoAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MapsDemoAssets.xcassets; sourceTree = ""; }; + B7B684AAFC3CA2232721C6D0 /* step8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step8.png; sourceTree = ""; }; + B9450C49DDD49AF9182779EB /* MarkerEventsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MarkerEventsViewController.m; sourceTree = ""; }; + BB653990DAD6FDE28A9E4158 /* FitBoundsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FitBoundsViewController.h; sourceTree = ""; }; + BB85B60A794D982F001E5D1D /* step2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step2.png; sourceTree = ""; }; + BEDC49669DBDA8BE37BFAB29 /* GeocoderViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeocoderViewController.h; sourceTree = ""; }; + BF0878372A9A7274B74BCBE0 /* MyLocationViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLocationViewController.m; sourceTree = ""; }; + C0E7585025B57F969D8C3CCD /* step6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step6@2x.png"; sourceTree = ""; }; + C37F2216D5D94A3F8B698AF2 /* AnimatedCurrentLocationViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnimatedCurrentLocationViewController.m; sourceTree = ""; }; + C3E84ED0331DFB2A7082CA36 /* MarkerLayerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MarkerLayerViewController.m; sourceTree = ""; }; + C4C3F5556675D1A9408F7C5F /* MasterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = ""; }; + C56541EDCEFDB922783385B5 /* voyager@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "voyager@2x.png"; sourceTree = ""; }; + C762E469D796AFF83D3516EF /* FixedPanoramaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FixedPanoramaViewController.m; sourceTree = ""; }; + C7AD415580B4A6B35532456A /* DemoAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoAppDelegate.m; sourceTree = ""; }; + CF8997BED409E528D34BA344 /* PolylinesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PolylinesViewController.h; sourceTree = ""; }; + D0E3C8118FBF6DF1D4996693 /* step7@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step7@2x.png"; sourceTree = ""; }; + D30CF0DFCD652D6DF10187D7 /* MarkerLayerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkerLayerViewController.h; sourceTree = ""; }; + D4CFDA7D44E2CF33EB10072B /* MarkersViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MarkersViewController.m; sourceTree = ""; }; + D5E5AF68BBC86BA530755A20 /* step8@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step8@2x.png"; sourceTree = ""; }; + D66EF243066A58A0D10280D4 /* step1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step1.png; sourceTree = ""; }; + D78B4ACC4D102CC9EC32C8A3 /* SnapshotReadyViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SnapshotReadyViewController.h; sourceTree = ""; }; + DA6BF21C0287E5828A770C09 /* bulgaria-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bulgaria-large.png"; sourceTree = ""; }; + DB481265195ED47C9D3588AB /* CustomIndoorViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomIndoorViewController.h; sourceTree = ""; }; + DBB8C9AD891A00824AE32343 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + DC77B503E93E88F6E254A170 /* CustomMarkersViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomMarkersViewController.m; sourceTree = ""; }; + DD1DD5592D028FDD5E527FDF /* x29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "x29@2x.png"; sourceTree = ""; }; + DD87868F23D05E5CFADEAB4F /* MarkerEventsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkerEventsViewController.h; sourceTree = ""; }; + E40A76286C824B75258FDF5E /* StyledMapViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StyledMapViewController.h; sourceTree = ""; }; + E4F81E0232539CC089AE8893 /* CustomMarkersViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomMarkersViewController.h; sourceTree = ""; }; + E85063B5DC5D93C8875E3EBC /* PolygonsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PolygonsViewController.h; sourceTree = ""; }; + EE1D504741871952487BB5BE /* MasterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MasterViewController.m; sourceTree = ""; }; + EF01EFEF0FC77447C02FE86C /* popup_santa.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = popup_santa.png; sourceTree = ""; }; + F371BFD608DCF4DA1671DB03 /* MapTypesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapTypesViewController.m; sourceTree = ""; }; + F59393018D5AC385BE80BE57 /* MarkersViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkersViewController.h; sourceTree = ""; }; + F64D45825D2647898331A1FF /* step6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step6.png; sourceTree = ""; }; + F8DFCC9D1D1F70D492149D65 /* DoubleMapViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DoubleMapViewController.m; sourceTree = ""; }; + FA4145303F340FC3675AABA5 /* PolylinesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PolylinesViewController.m; sourceTree = ""; }; + FAF7CEAC34C5EBC5F05412EC /* GradientPolylinesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GradientPolylinesViewController.h; sourceTree = ""; }; + FC2C54DF6BAAE16F877D8A66 /* AnimatedUIViewMarkerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnimatedUIViewMarkerViewController.h; sourceTree = ""; }; + FC5AD93CD72DE8F5B004A621 /* BasicMapViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BasicMapViewController.m; sourceTree = ""; }; + FCA64CCA86165B04BDDE0A93 /* SDKDemoAPIKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDKDemoAPIKey.h; sourceTree = ""; }; + FFEED4DDB04F69C84A1924F1 /* mapstyle-night.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-night.json"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8B9B135C626B0FF8CC12CB4D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9594F950A37D8665796B334D /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1D27564BB990E3F72332953D = { + isa = PBXGroup; + children = ( + 3F84FF5646DF0F79669A6A34 /* Source */, + E5703B81550DFC98B8650F07 /* Frameworks */, + 9C667AD7285A7D36180D29BE /* Products */, + ); + sourceTree = ""; + }; + 3F84FF5646DF0F79669A6A34 /* Source */ = { + isa = PBXGroup; + children = ( + 45BAB561C27E46122745337A /* GoogleMapsDemos */, + ); + name = Source; + sourceTree = ""; + }; + 45BAB561C27E46122745337A /* GoogleMapsDemos */ = { + isa = PBXGroup; + children = ( + E9C287B2214772B64F89F90B /* Resources */, + FF5D55EF552627DDF8369CDC /* Samples */, + 02A7C56A409A0CB977458251 /* DemoAppDelegate.h */, + C7AD415580B4A6B35532456A /* DemoAppDelegate.m */, + B53B4C2097A6AD4A98746495 /* MapsDemoAssets.xcassets */, + C4C3F5556675D1A9408F7C5F /* MasterViewController.h */, + EE1D504741871952487BB5BE /* MasterViewController.m */, + FCA64CCA86165B04BDDE0A93 /* SDKDemoAPIKey.h */, + 21267D205F7EC280F26D97ED /* main.m */, + ); + path = GoogleMapsDemos; + sourceTree = ""; + }; + 8AEE26F54DD8496915CC250C /* Museum-Icons */ = { + isa = PBXGroup; + children = ( + 6B05E27C8BB92E89D2DC78AC /* h1.png */, + 16C4B08486C9905568685983 /* h1@2x.png */, + 91BCD28A8D5451665C5B3FDE /* spitfire.png */, + B15768E1EE7E314DF1B0A395 /* spitfire@2x.png */, + 5B3B4C44092471CA56ACFD4C /* voyager.png */, + C56541EDCEFDB922783385B5 /* voyager@2x.png */, + 77E4A5AC4E17EB252D617792 /* x29.png */, + DD1DD5592D028FDD5E527FDF /* x29@2x.png */, + ); + path = "Museum-Icons"; + sourceTree = ""; + }; + 9C667AD7285A7D36180D29BE /* Products */ = { + isa = PBXGroup; + children = ( + 658307DB8F671E9CA0B1A2E6 /* GoogleMapsDemos.app */, + ); + name = Products; + sourceTree = ""; + }; + E5703B81550DFC98B8650F07 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6F4C119D42CF37317FA0DFA9 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + E9C287B2214772B64F89F90B /* Resources */ = { + isa = PBXGroup; + children = ( + 8AEE26F54DD8496915CC250C /* Museum-Icons */, + DBB8C9AD891A00824AE32343 /* LaunchScreen.storyboard */, + 937B2FC602E80ADC11CF364F /* aeroplane.png */, + 3F716156C215C436D55F5696 /* aeroplane@2x.png */, + 4D8E4A10394122CD9C9CD157 /* argentina-large.png */, + A6B80BDCF78F436799462F76 /* argentina.png */, + 6614BE28012C7A7508437047 /* arrow.png */, + 66DE8D273E896D7FF5B86DC9 /* arrow@2x.png */, + 9F4CB893BCACB294FBCEC850 /* australia-large.png */, + A1D521E4FF1F8F85E084ED60 /* australia-large@2x.png */, + 304A2B780A4A9B2D32261355 /* australia.png */, + 2B049CFC81E59949D0184B8B /* boat.png */, + 03E00AE555F58259DD31C383 /* boat@2x.png */, + 440513A7769094565EA82DD2 /* botswana-large.png */, + 6C186E84CB691DD6239C5E57 /* botswana.png */, + DA6BF21C0287E5828A770C09 /* bulgaria-large.png */, + 2BC67BDB51522BC85EBFED8E /* bulgaria.png */, + 57D0C4A29B66857C926387F0 /* glow-marker.png */, + 430314741C873551A75A6748 /* glow-marker@2x.png */, + FFEED4DDB04F69C84A1924F1 /* mapstyle-night.json */, + 118A0FE8CA1D110B3C694A8D /* mapstyle-retro.json */, + B4C89E62C05816B590F45D57 /* mapstyle-silver.json */, + 346BE94E21267BA7E00E1B94 /* museum-exhibits.json */, + 2B0884C720D5AE0BDCC1903D /* newark_nj_1922.jpg */, + EF01EFEF0FC77447C02FE86C /* popup_santa.png */, + 5E2E2B19EF6846F007A7A909 /* popup_santa@2x.png */, + D66EF243066A58A0D10280D4 /* step1.png */, + 6C6A156792608F06437E5931 /* step1@2x.png */, + BB85B60A794D982F001E5D1D /* step2.png */, + 4F955F74654756E7F7DBD9C1 /* step2@2x.png */, + 6533FA4161283F8F6A5F2CC3 /* step3.png */, + A3AE3B168663EA43D3F2F259 /* step3@2x.png */, + 99C6A64731FB5249BA53255D /* step4.png */, + 60944672BB9D460BE315ECB8 /* step4@2x.png */, + B1763EA929EC73C50D294134 /* step5.png */, + AB708C911CD9B99ADBB07D08 /* step5@2x.png */, + F64D45825D2647898331A1FF /* step6.png */, + C0E7585025B57F969D8C3CCD /* step6@2x.png */, + 3B0B37F0669CF34418A263F9 /* step7.png */, + D0E3C8118FBF6DF1D4996693 /* step7@2x.png */, + B7B684AAFC3CA2232721C6D0 /* step8.png */, + D5E5AF68BBC86BA530755A20 /* step8@2x.png */, + AD6B1AF49A87CC079E9CA862 /* track.json */, + ); + path = Resources; + sourceTree = ""; + }; + FF5D55EF552627DDF8369CDC /* Samples */ = { + isa = PBXGroup; + children = ( + 281FB700EEAC3323C52CB587 /* AnimatedCurrentLocationViewController.h */, + C37F2216D5D94A3F8B698AF2 /* AnimatedCurrentLocationViewController.m */, + FC2C54DF6BAAE16F877D8A66 /* AnimatedUIViewMarkerViewController.h */, + 2EB950AA302B77F16CF18088 /* AnimatedUIViewMarkerViewController.m */, + 90AFC572AAEC55CB23E0EDB4 /* BasicMapViewController.h */, + FC5AD93CD72DE8F5B004A621 /* BasicMapViewController.m */, + 87C50C8E191C32391FCDE143 /* CameraViewController.h */, + 09A36E26A0818D4F0DF21051 /* CameraViewController.m */, + DB481265195ED47C9D3588AB /* CustomIndoorViewController.h */, + 5563ED82E4E77A76707DAF12 /* CustomIndoorViewController.m */, + E4F81E0232539CC089AE8893 /* CustomMarkersViewController.h */, + DC77B503E93E88F6E254A170 /* CustomMarkersViewController.m */, + 8348F1BC33E5DCAAB85BBA43 /* DoubleMapViewController.h */, + F8DFCC9D1D1F70D492149D65 /* DoubleMapViewController.m */, + BB653990DAD6FDE28A9E4158 /* FitBoundsViewController.h */, + 721936633CF79A85B5EF0E92 /* FitBoundsViewController.m */, + 8BEC50A442A8A75604D7007D /* FixedPanoramaViewController.h */, + C762E469D796AFF83D3516EF /* FixedPanoramaViewController.m */, + AA7FD859248BB356AA73A407 /* FrameRateViewController.h */, + 7DB963F858613E50A64CFAE6 /* FrameRateViewController.m */, + BEDC49669DBDA8BE37BFAB29 /* GeocoderViewController.h */, + 2A77C64C5A8B8109E6AFC41F /* GeocoderViewController.m */, + 0C5E03510539F570D757CAEE /* GestureControlViewController.h */, + 71CE23C2A26FD3C29E6AEEA7 /* GestureControlViewController.m */, + FAF7CEAC34C5EBC5F05412EC /* GradientPolylinesViewController.h */, + 1B4378F4DBE15BB0E32690CE /* GradientPolylinesViewController.m */, + 7BAA2BF38E0B41197BB6CA14 /* GroundOverlayViewController.h */, + 8038AEC0AF9CBD2EBB975F54 /* GroundOverlayViewController.m */, + 6140C36D94B102F62C26B713 /* IndoorMuseumNavigationViewController.h */, + 1318E0A2BA2A41F2E8759CFE /* IndoorMuseumNavigationViewController.m */, + AB6D8FD2BBEB798B9D0A33DE /* IndoorViewController.h */, + 8DA013030BC14C994AEA2428 /* IndoorViewController.m */, + 51B3E8FEDF5AFB146C099C21 /* MapLayerViewController.h */, + 3E7BBD64FA078FC4259FCBD2 /* MapLayerViewController.m */, + 4B436F286FDDDE125BA44AEE /* MapTypesViewController.h */, + F371BFD608DCF4DA1671DB03 /* MapTypesViewController.m */, + AAB5CC69AA4A14C0B11D0F2B /* MapZoomViewController.h */, + 3B3D673FA7036FA5D07CB287 /* MapZoomViewController.m */, + DD87868F23D05E5CFADEAB4F /* MarkerEventsViewController.h */, + B9450C49DDD49AF9182779EB /* MarkerEventsViewController.m */, + 15E6F2AA55437CFAC24BCFEE /* MarkerInfoWindowViewController.h */, + 89DFB3350D98DA617A2ECE85 /* MarkerInfoWindowViewController.m */, + D30CF0DFCD652D6DF10187D7 /* MarkerLayerViewController.h */, + C3E84ED0331DFB2A7082CA36 /* MarkerLayerViewController.m */, + F59393018D5AC385BE80BE57 /* MarkersViewController.h */, + D4CFDA7D44E2CF33EB10072B /* MarkersViewController.m */, + 5F34640A0EABB50A24705F03 /* MyLocationViewController.h */, + BF0878372A9A7274B74BCBE0 /* MyLocationViewController.m */, + 726F8CE865076A20EE4C4408 /* PanoramaViewController.h */, + A9ECA1CA359738BB8B17657F /* PanoramaViewController.m */, + E85063B5DC5D93C8875E3EBC /* PolygonsViewController.h */, + 2ED9C84A592EB6464725BB9C /* PolygonsViewController.m */, + CF8997BED409E528D34BA344 /* PolylinesViewController.h */, + FA4145303F340FC3675AABA5 /* PolylinesViewController.m */, + B53058D6D185A08DDEF65436 /* Samples.h */, + 115963CCE082409262D179F3 /* Samples.m */, + D78B4ACC4D102CC9EC32C8A3 /* SnapshotReadyViewController.h */, + 15E621C7788D69B720052601 /* SnapshotReadyViewController.m */, + 5C9035433ADBDA49B4FF973F /* StructuredGeocoderViewController.h */, + 2AAFE928C9FDAA1B5703AE31 /* StructuredGeocoderViewController.m */, + E40A76286C824B75258FDF5E /* StyledMapViewController.h */, + 3408578DDDF6D8B183D9B91E /* StyledMapViewController.m */, + 33BC04FF4445AA4649D16101 /* TileLayerViewController.h */, + 0CEA86A42848E5BAA7B523FB /* TileLayerViewController.m */, + 805803DEB0E29A1395C6ABB6 /* TrafficMapViewController.h */, + 611E9F57BD5274878732C0BE /* TrafficMapViewController.m */, + 2D030F81AEB6D3278B8EA303 /* VisibleRegionViewController.h */, + A0518A8C9E543FFBA7F8305E /* VisibleRegionViewController.m */, + ); + path = Samples; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F934453EF090BCCB93E78E83 /* GoogleMapsDemos */ = { + isa = PBXNativeTarget; + buildConfigurationList = 56D55B92E97A2AAB3D261D4A /* Build configuration list for PBXNativeTarget "GoogleMapsDemos" */; + buildPhases = ( + C434996613C0A2FED463783D /* Resources */, + 06DE6F27AD1DD8E5163683B6 /* Sources */, + 8B9B135C626B0FF8CC12CB4D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GoogleMapsDemos; + productName = GoogleMapsDemos; + productReference = 658307DB8F671E9CA0B1A2E6 /* GoogleMapsDemos.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E1E34A01E38954F1DD4BCD39 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 0830; + }; + buildConfigurationList = 80C3BB6A64A9375104C7ACB9 /* Build configuration list for PBXProject "GoogleMapsDemos" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + en, + ); + mainGroup = 1D27564BB990E3F72332953D; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F934453EF090BCCB93E78E83 /* GoogleMapsDemos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C434996613C0A2FED463783D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 378986C8682C3E9502BF3AB1 /* aeroplane.png in Resources */, + E333D8C48DCB564E46915AB1 /* aeroplane@2x.png in Resources */, + 2A2DEEBBC313603053606408 /* argentina-large.png in Resources */, + 925BF76B710DA288319498D5 /* argentina.png in Resources */, + C2BC30E26D4D2515FDB15848 /* arrow.png in Resources */, + D33BBB708DE21370608DABD7 /* arrow@2x.png in Resources */, + 098A6903B793226E41655E9A /* australia-large.png in Resources */, + D2D3662C0F97C35BB54234A7 /* australia-large@2x.png in Resources */, + 4619B918B8B9F159C1E96881 /* australia.png in Resources */, + FFE41F3FA7C01734283B9D57 /* boat.png in Resources */, + F01D751710D9C729085F540B /* boat@2x.png in Resources */, + 9D84E6619020CE531E5823CD /* botswana-large.png in Resources */, + 3B5BFC9FF8920B3C0094CB2C /* botswana.png in Resources */, + 68679F97011184371A35D7C7 /* bulgaria-large.png in Resources */, + BA2D028BE5ED8042FEB05D8F /* bulgaria.png in Resources */, + 91A98DD42AE05DDD991B8788 /* glow-marker.png in Resources */, + 8EFDA781EBA17E7CD7301272 /* glow-marker@2x.png in Resources */, + E7202399F72A85099331EF13 /* h1.png in Resources */, + 22F37937FCB1678CA41A3B9C /* h1@2x.png in Resources */, + 8F9917C4115CD02B657B331A /* spitfire.png in Resources */, + E7E8214CC970237B5D2B03DC /* spitfire@2x.png in Resources */, + C3BC945D74D0E19BCCA532DE /* voyager.png in Resources */, + E4FE8CE15D430EB5589CE54C /* voyager@2x.png in Resources */, + 8852EA6A02F703F08F9458F3 /* x29.png in Resources */, + E026AFA1FD4D48D34E41812C /* x29@2x.png in Resources */, + 3F1CD8E1AF755A78EB905F52 /* popup_santa.png in Resources */, + E0C0502D8979F84036A8282C /* popup_santa@2x.png in Resources */, + B646C0BAD2A245557B519931 /* step1.png in Resources */, + 1A3DA97F99AF723B7107AF35 /* step1@2x.png in Resources */, + 3A03EFC97500E90F5BA4B154 /* step2.png in Resources */, + A1F2D1C33D98B28D454849A2 /* step2@2x.png in Resources */, + ECE3127B3EECC2B55DCCC5A6 /* step3.png in Resources */, + CEF41B4E3CA0239A4A40AD88 /* step3@2x.png in Resources */, + 853063CF351F34F9F1DBD8CC /* step4.png in Resources */, + 20D8B040CD85902D32D3FF1F /* step4@2x.png in Resources */, + D315909F7B28D2B51914678F /* step5.png in Resources */, + 5B8111397A7EABE0DCC77622 /* step5@2x.png in Resources */, + EBF76DDAB230B2E52D0BD7D7 /* step6.png in Resources */, + 7D2186B159E9848AA6C7386C /* step6@2x.png in Resources */, + 42873FDCAF070F7C97FA6CD8 /* step7.png in Resources */, + 3BBAD9FD0A0306B2F3A0017B /* step7@2x.png in Resources */, + 7AE0FCC85B7BBE162025751C /* step8.png in Resources */, + C0210C5B8B348A0348D92DA9 /* step8@2x.png in Resources */, + 15C05007C9E2A96F24EA9F5E /* newark_nj_1922.jpg in Resources */, + 4AF30BA2FC6298BE86F69993 /* mapstyle-night.json in Resources */, + FF8065B590AD6493752A8632 /* mapstyle-retro.json in Resources */, + D9978336CFEF2FB35E1512B7 /* mapstyle-silver.json in Resources */, + A04BBCC3FF015903AF7CD93F /* museum-exhibits.json in Resources */, + 59060F253A6002024FC080CD /* track.json in Resources */, + E1DA9796D5C0B3265B5F5BC2 /* LaunchScreen.storyboard in Resources */, + 2697C9A8D582C19EB30D5FD6 /* MapsDemoAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 06DE6F27AD1DD8E5163683B6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06A6DB21EBC3BEE5EFC18F63 /* DemoAppDelegate.m in Sources */, + 6CC9DED8E8F3CE56B8E94872 /* main.m in Sources */, + 2C99845EF56A93DE151A312C /* MasterViewController.m in Sources */, + 8950E155E20CB2893D279F3D /* AnimatedCurrentLocationViewController.m in Sources */, + 04A6E32691762C9B82741DD3 /* AnimatedUIViewMarkerViewController.m in Sources */, + 6D1C9B07CAEDF524673ED31E /* BasicMapViewController.m in Sources */, + 64984B84B09FD0DF72308C07 /* CameraViewController.m in Sources */, + A85222E1796CDBCBB8F98B6B /* CustomIndoorViewController.m in Sources */, + 20298941EFC09F43D63DCE5A /* CustomMarkersViewController.m in Sources */, + 5C7670767D52307133D1BCFE /* DoubleMapViewController.m in Sources */, + C72707078B04ECA88BB00B14 /* FitBoundsViewController.m in Sources */, + 2D468948D33349CAA702223C /* FixedPanoramaViewController.m in Sources */, + C24A5F52692CDC51864F522C /* FrameRateViewController.m in Sources */, + 93B36402D287634E247E5631 /* GeocoderViewController.m in Sources */, + FE8BB1E6E58AE2D5B1226C7B /* GestureControlViewController.m in Sources */, + EE4D614B504845ADC2EA771A /* GradientPolylinesViewController.m in Sources */, + 703FCE6348C17E69ED669A78 /* GroundOverlayViewController.m in Sources */, + 51B83EFF06E04A24A563001A /* IndoorMuseumNavigationViewController.m in Sources */, + 0FA2ABEFE1C97FBAC51862A4 /* IndoorViewController.m in Sources */, + C68C326EC8F06BD2844D239A /* MapLayerViewController.m in Sources */, + D522835123F06D863FA47A03 /* MapTypesViewController.m in Sources */, + 5659C71D0D7318D593860C3F /* MapZoomViewController.m in Sources */, + E16060A9BF2245DFA511E5B9 /* MarkerEventsViewController.m in Sources */, + 74F05FB9E466D95B85A15A58 /* MarkerInfoWindowViewController.m in Sources */, + 19FE865B8D874541ADF29D86 /* MarkerLayerViewController.m in Sources */, + C665CD379C7D3EA34F31733E /* MarkersViewController.m in Sources */, + A137149150C011207E2F8EE1 /* MyLocationViewController.m in Sources */, + 59EE98AF87BFE6B4535EC9A6 /* PanoramaViewController.m in Sources */, + E03EA95750E7A51C555D13D5 /* PolygonsViewController.m in Sources */, + 8FE940554B1218140ABEE6BB /* PolylinesViewController.m in Sources */, + 0A6ABA75278F49BBE253AB14 /* Samples.m in Sources */, + A35320D9B69272ACF3B9139F /* SnapshotReadyViewController.m in Sources */, + 4A15D118D86D82C11D071B2C /* StructuredGeocoderViewController.m in Sources */, + 1356F8E5750C793966437D77 /* StyledMapViewController.m in Sources */, + 8491B4753D6795A5CB69AF74 /* TileLayerViewController.m in Sources */, + 0BFB1CE395345832444BB754 /* TrafficMapViewController.m in Sources */, + 0A993DA21C49FA93BD34D9AB /* VisibleRegionViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2723CC697F2C564456B7C001 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = ./GoogleMapsDemos/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SDKROOT)/System/Library/Frameworks", + ); + PRODUCT_NAME = GoogleMapsDemos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)"; + USE_HEADERMAP = NO; + WRAPPER_PREFIX = ""; + }; + name = Default; + }; + C39588D2DC04B7B9CBE846E5 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SDKROOT = iphoneos; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 56D55B92E97A2AAB3D261D4A /* Build configuration list for PBXNativeTarget "GoogleMapsDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2723CC697F2C564456B7C001 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; + 80C3BB6A64A9375104C7ACB9 /* Build configuration list for PBXProject "GoogleMapsDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C39588D2DC04B7B9CBE846E5 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = E1E34A01E38954F1DD4BCD39 /* Project object */; +} diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h new file mode 100755 index 0000000..66cd1ad --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h @@ -0,0 +1,32 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface DemoAppDelegate : UIResponder < + UIApplicationDelegate, + UISplitViewControllerDelegate> + +@property(strong, nonatomic) UIWindow *window; +@property(strong, nonatomic) UINavigationController *navigationController; +@property(strong, nonatomic) UISplitViewController *splitViewController; + +/** + * If the device is an iPad, this property controls the sample displayed in the + * right side of its split view controller. + */ +@property(strong, nonatomic) UIViewController *sample; + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m new file mode 100755 index 0000000..71b0422 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m @@ -0,0 +1,117 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/DemoAppDelegate.h" + +#import +#import "GoogleMapsDemos/MasterViewController.h" +#import "GoogleMapsDemos/SDKDemoAPIKey.h" + +@implementation DemoAppDelegate { + id _services; +} + +@synthesize window = _window; + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + NSLog(@"Build version: %d", __apple_build_version__); + + if (kAPIKey.length == 0) { + // Blow up if APIKey has not yet been set. + NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier]; + NSString *format = @"Configure APIKey inside SDKDemoAPIKey.h for your " + @"bundle `%@`, see README.GoogleMapsDemos for more information"; + @throw [NSException exceptionWithName:@"DemoAppDelegate" + reason:[NSString stringWithFormat:format, bundleId] + userInfo:nil]; + } + [GMSServices provideAPIKey:kAPIKey]; + _services = [GMSServices sharedServices]; + + // Log the required open source licenses! Yes, just NSLog-ing them is not enough but is good for + // a demo. + NSLog(@"Open source licenses:\n%@", [GMSServices openSourceLicenseInfo]); + + self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + MasterViewController *master = [[MasterViewController alloc] init]; + master.appDelegate = self; + + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { + // This is an iPhone; configure the top-level navigation controller as the + // rootViewController, which contains the 'master' list of samples. + self.navigationController = + [[UINavigationController alloc] initWithRootViewController:master]; + + // Force non-translucent navigation bar for consistency of demo between + // iOS 6 and iOS 7. + self.navigationController.navigationBar.translucent = NO; + + self.window.rootViewController = self.navigationController; + } else { + // This is an iPad; configure a split-view controller that contains the + // the 'master' list of samples on the left side, and the current displayed + // sample on the right (begins empty). + UINavigationController *masterNavigationController = + [[UINavigationController alloc] initWithRootViewController:master]; + + UIViewController *empty = [[UIViewController alloc] init]; + UINavigationController *detailNavigationController = + [[UINavigationController alloc] initWithRootViewController:empty]; + + // Force non-translucent navigation bar for consistency of demo between + // iOS 6 and iOS 7. + detailNavigationController.navigationBar.translucent = NO; + + self.splitViewController = [[UISplitViewController alloc] init]; + self.splitViewController.delegate = master; + self.splitViewController.viewControllers = + @[masterNavigationController, detailNavigationController]; + self.splitViewController.presentsWithGesture = NO; + + self.window.rootViewController = self.splitViewController; + } + + [self.window makeKeyAndVisible]; + return YES; +} + +- (void)setSample:(UIViewController *)sample { + NSAssert([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad, + @"Expected device to be iPad inside setSample:"); + + // Finds the UINavigationController in the right side of the sample, and + // replace its displayed controller with the new sample. + UINavigationController *nav = + [self.splitViewController.viewControllers objectAtIndex:1]; + [nav setViewControllers:[NSArray arrayWithObject:sample] animated:NO]; +} + +- (UIViewController *)sample { + NSAssert([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad, + @"Expected device to be iPad inside sample"); + + // The current sample is the top-most VC in the right-hand pane of the + // splitViewController. + UINavigationController *nav = + [self.splitViewController.viewControllers objectAtIndex:1]; + return [[nav viewControllers] objectAtIndex:0]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist b/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist new file mode 100755 index 0000000..2bc0fc8 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.example.GoogleMapsDemos + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSLocationWhenInUseUsageDescription + Show your location on the map + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..5fce6cf --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Maps-SDK-Demo-App_120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Maps-SDK-Demo-App_180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Maps-SDK-Demo-App_76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Maps-SDK-Demo-App_152.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Maps-SDK-Demo-App_167.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png new file mode 100755 index 0000000..46d9c3f Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png new file mode 100755 index 0000000..237bba1 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png new file mode 100755 index 0000000..8bee0dd Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png new file mode 100755 index 0000000..0299a1d Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png new file mode 100755 index 0000000..db89154 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h new file mode 100755 index 0000000..1facbea --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h @@ -0,0 +1,27 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@class DemoAppDelegate; + +@interface MasterViewController : UITableViewController < + UISplitViewControllerDelegate, + UITableViewDataSource, + UITableViewDelegate> + +@property(nonatomic, assign) DemoAppDelegate *appDelegate; + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m new file mode 100755 index 0000000..c798aa3 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m @@ -0,0 +1,163 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/MasterViewController.h" + +#import +#import "GoogleMapsDemos/DemoAppDelegate.h" +#import "GoogleMapsDemos/Samples/Samples.h" + +@implementation MasterViewController { + NSArray *_demos; + NSArray *_demoSections; + BOOL _isPhone; + UIPopoverController *_popover; + UIBarButtonItem *_samplesButton; + __weak UIViewController *_controller; + CLLocationManager *_locationManager; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + _isPhone = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone; + + if (!_isPhone) { + self.clearsSelectionOnViewWillAppear = NO; + } else { + UIBarButtonItem *backButton = + [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", @"Back") + style:UIBarButtonItemStylePlain + target:nil + action:nil]; + [self.navigationItem setBackBarButtonItem:backButton]; + } + + self.title = NSLocalizedString(@"Maps SDK Demos", @"Maps SDK Demos"); + self.title = [NSString stringWithFormat:@"%@: %@", self.title, [GMSServices SDKVersion]]; + + self.tableView.autoresizingMask = + UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + self.tableView.delegate = self; + self.tableView.dataSource = self; + + _demoSections = [Samples loadSections]; + _demos = [Samples loadDemos]; + + if (!_isPhone) { + [self loadDemo:0 atIndex:0]; + } +} + +#pragma mark - UITableViewController + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return _demoSections.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 35.0; +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { + return [_demoSections objectAtIndex:section]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + NSArray *demosInSection = [_demos objectAtIndex:section]; + return demosInSection.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView + cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *cellIdentifier = @"Cell"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle + reuseIdentifier:cellIdentifier]; + + if (_isPhone) { + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + } + } + + NSDictionary *demo = [[_demos objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]; + cell.textLabel.text = [demo objectForKey:@"title"]; + cell.detailTextLabel.text = [demo objectForKey:@"description"]; + + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + // The user has chosen a sample; load it and clear the selection! + [self loadDemo:indexPath.section atIndex:indexPath.row]; + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - Split view + +- (void)splitViewController:(UISplitViewController *)splitController + willHideViewController:(UIViewController *)viewController + withBarButtonItem:(UIBarButtonItem *)barButtonItem + forPopoverController:(UIPopoverController *)popoverController { + _popover = popoverController; + _samplesButton = barButtonItem; + _samplesButton.title = NSLocalizedString(@"Samples", @"Samples"); + _samplesButton.style = UIBarButtonItemStyleDone; + [self updateSamplesButton]; +} + +- (void)splitViewController:(UISplitViewController *)splitController + willShowViewController:(UIViewController *)viewController + invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem { + _popover = nil; + _samplesButton = nil; + [self updateSamplesButton]; +} + +#pragma mark - Private methods + +- (void)loadDemo:(NSUInteger)section atIndex:(NSUInteger)index { + NSDictionary *demo = [[_demos objectAtIndex:section] objectAtIndex:index]; + UIViewController *controller = [[[demo objectForKey:@"controller"] alloc] init]; + _controller = controller; + + if (controller != nil) { + controller.title = [demo objectForKey:@"title"]; + + if (_isPhone) { + [self.navigationController pushViewController:controller animated:YES]; + } else { + [self.appDelegate setSample:controller]; + [_popover dismissPopoverAnimated:YES]; + } + + [self updateSamplesButton]; + } +} + +// This method is invoked when the left 'back' button in the split view +// controller on iPad should be updated (either made visible or hidden). +// It assumes that the left bar button item may be safely modified to contain +// the samples button. +- (void)updateSamplesButton { + _controller.navigationItem.leftBarButtonItem = _samplesButton; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard new file mode 100755 index 0000000..8c740c7 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png new file mode 100755 index 0000000..fff8197 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png new file mode 100755 index 0000000..ce36c63 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png new file mode 100755 index 0000000..5c76dc9 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png new file mode 100755 index 0000000..a09b75c Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png new file mode 100755 index 0000000..d657f22 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png new file mode 100755 index 0000000..b2a668e Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png new file mode 100755 index 0000000..0edd3f1 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png new file mode 100755 index 0000000..eda3d15 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png new file mode 100755 index 0000000..5114ee4 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png new file mode 100755 index 0000000..5c5012c Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png new file mode 100755 index 0000000..b75247c Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png new file mode 100755 index 0000000..9095376 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png new file mode 100755 index 0000000..8d8c3f7 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png new file mode 100755 index 0000000..4b0ff7c Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png new file mode 100755 index 0000000..787aed5 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png new file mode 100755 index 0000000..15d4d2a Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png new file mode 100755 index 0000000..12afbb9 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png new file mode 100755 index 0000000..67221da Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png new file mode 100755 index 0000000..3f316d3 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png new file mode 100755 index 0000000..c150491 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png new file mode 100755 index 0000000..a006d99 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png new file mode 100755 index 0000000..0107da0 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png new file mode 100755 index 0000000..04cdb29 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png new file mode 100755 index 0000000..eb0f596 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png new file mode 100755 index 0000000..e415c3f Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-night.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-night.json new file mode 100755 index 0000000..1cbd616 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-night.json @@ -0,0 +1,191 @@ +[ + { + "featureType": "all", + "elementType": "geometry", + "stylers": [ + { + "color": "#242f3e" + } + ] + }, + { + "featureType": "all", + "elementType": "labels.text.stroke", + "stylers": [ + { + "lightness": -80 + } + ] + }, + { + "featureType": "administrative", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#746855" + } + ] + }, + { + "featureType": "administrative.locality", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#d59563" + } + ] + }, + { + "featureType": "poi", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#d59563" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "geometry", + "stylers": [ + { + "color": "#263c3f" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#6b9a76" + } + ] + }, + { + "featureType": "road", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#2b3544" + } + ] + }, + { + "featureType": "road", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#9ca5b3" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#38414e" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#212a37" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#746855" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#1f2835" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#f3d19c" + } + ] + }, + { + "featureType": "road.local", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#38414e" + } + ] + }, + { + "featureType": "road.local", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#212a37" + } + ] + }, + { + "featureType": "transit", + "elementType": "geometry", + "stylers": [ + { + "color": "#2f3948" + } + ] + }, + { + "featureType": "transit.station", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#d59563" + } + ] + }, + { + "featureType": "water", + "elementType": "geometry", + "stylers": [ + { + "color": "#17263c" + } + ] + }, + { + "featureType": "water", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#515c6d" + } + ] + }, + { + "featureType": "water", + "elementType": "labels.text.stroke", + "stylers": [ + { + "lightness": -20 + } + ] + } +] diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-retro.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-retro.json new file mode 100755 index 0000000..f6a16e8 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-retro.json @@ -0,0 +1,191 @@ +[ + { + "featureType": "all", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#755f5d" + } + ] + }, + { + "featureType": "administrative", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#d4ccb9" + } + ] + }, + { + "featureType": "administrative.country", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#baafae" + } + ] + }, + { + "featureType": "administrative.land_parcel", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#d4ccb9" + } + ] + }, + { + "featureType": "landscape.man_made", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#ebe3cd" + } + ] + }, + { + "featureType": "landscape.natural", + "elementType": "geometry", + "stylers": [ + { + "color": "#ebe3cd" + } + ] + }, + { + "featureType": "landscape.natural", + "elementType": "geometry.fill", + "stylers": [ + { + "lightness": -10 + } + ] + }, + { + "featureType": "poi", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#d4ccb9" + } + ] + }, + { + "featureType": "poi", + "elementType": "labels.icon", + "stylers": [ + { + "hue": "#ff7f00" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#9ba56f" + } + ] + }, + { + "featureType": "road", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#f5f1e6" + } + ] + }, + { + "featureType": "road", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#dfd8c3" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#fdfcf8" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#e4e3df" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#f2cb77" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#ecb43d" + } + ] + }, + { + "featureType": "road.highway.controlled_access", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#e98d58" + } + ] + }, + { + "featureType": "road.highway.controlled_access", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#d27f4f" + } + ] + }, + { + "featureType": "transit.line", + "elementType": "geometry", + "stylers": [ + { + "color": "#d4ccb9" + } + ] + }, + { + "featureType": "transit.station.airport", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#d4ccb9" + } + ] + }, + { + "featureType": "water", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#b9d3c2" + } + ] + } +] diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-silver.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-silver.json new file mode 100755 index 0000000..340e5d6 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-silver.json @@ -0,0 +1,101 @@ +[ + { + "featureType": "all", + "elementType": "geometry", + "stylers": [ + { + "color": "#f5f5f5" + } + ] + }, + { + "featureType": "all", + "elementType": "labels.icon", + "stylers": [ + { + "saturation": -100 + } + ] + }, + { + "featureType": "all", + "elementType": "labels.text", + "stylers": [ + { + "saturation": -100 + } + ] + }, + { + "featureType": "poi", + "elementType": "geometry", + "stylers": [ + { + "color": "#eeeeee" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "geometry", + "stylers": [ + { + "color": "#e5e5e5" + } + ] + }, + { + "featureType": "road", + "elementType": "geometry", + "stylers": [ + { + "color": "#ffffff" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry", + "stylers": [ + { + "color": "#dadada" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "labels.icon", + "stylers": [ + { + "lightness": 30 + } + ] + }, + { + "featureType": "transit.line", + "elementType": "geometry", + "stylers": [ + { + "color": "#e5e5e5" + } + ] + }, + { + "featureType": "transit.station", + "elementType": "geometry", + "stylers": [ + { + "color": "#eeeeee" + } + ] + }, + { + "featureType": "water", + "elementType": "geometry", + "stylers": [ + { + "color": "#c9c9c9" + } + ] + } +] diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/museum-exhibits.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/museum-exhibits.json new file mode 100755 index 0000000..25b0a5d --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/museum-exhibits.json @@ -0,0 +1,30 @@ +[ + { + "key": "h1", + "name": "Hughes H-1", + "lat": 38.8879, + "lng": -77.02085, + "level": "1" + }, + { + "key": "voyager", + "name": "Rutan Voyager", + "lat": 38.8880, + "lng": -77.0199, + "level": "1" + }, + { + "key": "spitfire", + "name": "Supermarine Spitfire", + "lat": 38.8879, + "lng": -77.0208, + "level": "2" + }, + { + "key": "x29", + "name": "Grumman X-29", + "lat": 38.88845, + "lng": -77.01875, + "level": "2" + } +] diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg new file mode 100755 index 0000000..1f4ae59 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png new file mode 100755 index 0000000..f2968ef Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png new file mode 100755 index 0000000..3f90828 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png new file mode 100755 index 0000000..1cac697 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png new file mode 100755 index 0000000..8d99108 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png new file mode 100755 index 0000000..18ee7f2 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png new file mode 100755 index 0000000..5c37b1d Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png new file mode 100755 index 0000000..795b90f Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png new file mode 100755 index 0000000..950d754 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png new file mode 100755 index 0000000..3d7416b Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png new file mode 100755 index 0000000..7ae50e5 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png new file mode 100755 index 0000000..3a8bd1e Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png new file mode 100755 index 0000000..236f3a0 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png new file mode 100755 index 0000000..c6580e6 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png new file mode 100755 index 0000000..2bed812 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png new file mode 100755 index 0000000..4e17178 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png new file mode 100755 index 0000000..88932e6 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png new file mode 100755 index 0000000..7eefde7 Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png new file mode 100755 index 0000000..6f49e3d Binary files /dev/null and b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png differ diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/track.json b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/track.json new file mode 100755 index 0000000..6a0ed63 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/track.json @@ -0,0 +1 @@ +[{"lat": "44.145331", "lng": "9.661942", "elevation": "173.8000030517578", "time": "2013-09-20T08:40:00.855Z"}, {"lat": "44.145157", "lng": "9.661917", "elevation": "177.3000030517578", "time": "2013-09-20T08:40:01.824Z"}, {"lat": "44.14505", "lng": "9.662049", "elevation": "170.60000610351563", "time": "2013-09-20T08:40:02.945Z"}, {"lat": "44.145", "lng": "9.662165", "elevation": "156.5", "time": "2013-09-20T08:40:03.828Z"}, {"lat": "44.144918", "lng": "9.662227", "elevation": "130.6999969482422", "time": "2013-09-20T08:40:04.823Z"}, {"lat": "44.144945", "lng": "9.662122", "elevation": "149.5", "time": "2013-09-20T08:40:06.123Z"}, {"lat": "44.14503", "lng": "9.662141", "elevation": "152.89999389648438", "time": "2013-09-20T08:40:07.122Z"}, {"lat": "44.144943", "lng": "9.662169", "elevation": "155.3000030517578", "time": "2013-09-20T08:40:19.117Z"}, {"lat": "44.144937", "lng": "9.66217", "elevation": "155.5", "time": "2013-09-20T08:40:20.157Z"}, {"lat": "44.144933", "lng": "9.662171", "elevation": "154.8000030517578", "time": "2013-09-20T08:40:22.132Z"}, {"lat": "44.144933", "lng": "9.662173", "elevation": "155.0", "time": "2013-09-20T08:40:23.141Z"}, {"lat": "44.144937", "lng": "9.662186", "elevation": "155.8000030517578", "time": "2013-09-20T08:40:45.224Z"}, {"lat": "44.144934", "lng": "9.66219", "elevation": "158.5", "time": "2013-09-20T08:40:46.191Z"}, {"lat": "44.144911", "lng": "9.662248", "elevation": "161.6999969482422", "time": "2013-09-20T08:40:59.133Z"}, {"lat": "44.144911", "lng": "9.662249", "elevation": "161.8000030517578", "time": "2013-09-20T08:41:00.124Z"}, {"lat": "44.14491", "lng": "9.662258", "elevation": "161.6999969482422", "time": "2013-09-20T08:41:09.127Z"}, {"lat": "44.144907", "lng": "9.662263", "elevation": "162.0", "time": "2013-09-20T08:41:10.185Z"}, {"lat": "44.144884", "lng": "9.662378", "elevation": "161.3000030517578", "time": "2013-09-20T08:41:17.137Z"}, {"lat": "44.144879", "lng": "9.662397", "elevation": "161.1999969482422", "time": "2013-09-20T08:41:18.211Z"}, {"lat": "44.144874", "lng": "9.662517", "elevation": "163.0", "time": "2013-09-20T08:41:26.217Z"}, {"lat": "44.144877", "lng": "9.66253", "elevation": "163.39999389648438", "time": "2013-09-20T08:41:27.220Z"}, {"lat": "44.144812", "lng": "9.662617", "elevation": "166.8000030517578", "time": "2013-09-20T08:41:36.137Z"}, {"lat": "44.144806", "lng": "9.662625", "elevation": "166.89999389648438", "time": "2013-09-20T08:41:37.146Z"}, {"lat": "44.14477", "lng": "9.662604", "elevation": "167.10000610351563", "time": "2013-09-20T08:41:49.143Z"}, {"lat": "44.14477", "lng": "9.662607", "elevation": "167.1999969482422", "time": "2013-09-20T08:41:50.138Z"}, {"lat": "44.144763", "lng": "9.662619", "elevation": "168.0", "time": "2013-09-20T08:41:58.146Z"}, {"lat": "44.14476", "lng": "9.662618", "elevation": "168.3000030517578", "time": "2013-09-20T08:41:59.133Z"}, {"lat": "44.144755", "lng": "9.662616", "elevation": "168.5", "time": "2013-09-20T08:42:01.147Z"}, {"lat": "44.144755", "lng": "9.662616", "elevation": "168.6999969482422", "time": "2013-09-20T08:42:02.133Z"}, {"lat": "44.144754", "lng": "9.662623", "elevation": "169.8000030517578", "time": "2013-09-20T08:43:18.202Z"}, {"lat": "44.144753", "lng": "9.662633", "elevation": "169.39999389648438", "time": "2013-09-20T08:43:19.274Z"}, {"lat": "44.144768", "lng": "9.662683", "elevation": "173.8000030517578", "time": "2013-09-20T08:43:28.140Z"}, {"lat": "44.144768", "lng": "9.662684", "elevation": "174.0", "time": "2013-09-20T08:43:29.177Z"}, {"lat": "44.144764", "lng": "9.662687", "elevation": "172.89999389648438", "time": "2013-09-20T08:43:33.140Z"}, {"lat": "44.144761", "lng": "9.662692", "elevation": "173.3000030517578", "time": "2013-09-20T08:43:34.147Z"}, {"lat": "44.144755", "lng": "9.662699", "elevation": "173.1999969482422", "time": "2013-09-20T08:43:37.220Z"}, {"lat": "44.144754", "lng": "9.6627", "elevation": "173.1999969482422", "time": "2013-09-20T08:43:38.164Z"}, {"lat": "44.144755", "lng": "9.662702", "elevation": "173.3000030517578", "time": "2013-09-20T08:43:43.148Z"}, {"lat": "44.144756", "lng": "9.662709", "elevation": "172.6999969482422", "time": "2013-09-20T08:43:44.141Z"}, {"lat": "44.144716", "lng": "9.662816", "elevation": "179.5", "time": "2013-09-20T08:43:51.157Z"}, {"lat": "44.144717", "lng": "9.662831", "elevation": "180.8000030517578", "time": "2013-09-20T08:43:52.141Z"}, {"lat": "44.1447", "lng": "9.662945", "elevation": "182.3000030517578", "time": "2013-09-20T08:44:01.165Z"}, {"lat": "44.144696", "lng": "9.662956", "elevation": "181.89999389648438", "time": "2013-09-20T08:44:02.153Z"}, {"lat": "44.144679", "lng": "9.662965", "elevation": "181.6999969482422", "time": "2013-09-20T08:44:08.135Z"}, {"lat": "44.144679", "lng": "9.662966", "elevation": "181.60000610351563", "time": "2013-09-20T08:44:09.139Z"}, {"lat": "44.14469", "lng": "9.66299", "elevation": "183.1999969482422", "time": "2013-09-20T08:44:26.146Z"}, {"lat": "44.144687", "lng": "9.662998", "elevation": "182.89999389648438", "time": "2013-09-20T08:44:27.145Z"}, {"lat": "44.144661", "lng": "9.663117", "elevation": "193.1999969482422", "time": "2013-09-20T08:44:38.177Z"}, {"lat": "44.144658", "lng": "9.66312", "elevation": "193.1999969482422", "time": "2013-09-20T08:44:39.232Z"}, {"lat": "44.144581", "lng": "9.663173", "elevation": "199.3000030517578", "time": "2013-09-20T08:44:51.156Z"}, {"lat": "44.144572", "lng": "9.66319", "elevation": "199.39999389648438", "time": "2013-09-20T08:44:52.153Z"}, {"lat": "44.144518", "lng": "9.663271", "elevation": "201.1999969482422", "time": "2013-09-20T08:44:57.156Z"}, {"lat": "44.144506", "lng": "9.663276", "elevation": "202.5", "time": "2013-09-20T08:44:58.141Z"}, {"lat": "44.144498", "lng": "9.663277", "elevation": "202.3000030517578", "time": "2013-09-20T08:45:02.212Z"}, {"lat": "44.144506", "lng": "9.663277", "elevation": "201.8000030517578", "time": "2013-09-20T08:45:03.249Z"}, {"lat": "44.144513", "lng": "9.66328", "elevation": "201.1999969482422", "time": "2013-09-20T08:45:04.186Z"}, {"lat": "44.144526", "lng": "9.663302", "elevation": "199.5", "time": "2013-09-20T08:45:09.163Z"}, {"lat": "44.144526", "lng": "9.663298", "elevation": "199.89999389648438", "time": "2013-09-20T08:45:10.157Z"}, {"lat": "44.144527", "lng": "9.663291", "elevation": "200.6999969482422", "time": "2013-09-20T08:45:11.229Z"}, {"lat": "44.144527", "lng": "9.663281", "elevation": "201.8000030517578", "time": "2013-09-20T08:45:12.229Z"}, {"lat": "44.144522", "lng": "9.663257", "elevation": "202.0", "time": "2013-09-20T08:45:17.165Z"}, {"lat": "44.14452", "lng": "9.663259", "elevation": "201.60000610351563", "time": "2013-09-20T08:45:18.220Z"}, {"lat": "44.144511", "lng": "9.663258", "elevation": "202.0", "time": "2013-09-20T08:45:27.262Z"}, {"lat": "44.144503", "lng": "9.663259", "elevation": "200.39999389648438", "time": "2013-09-20T08:45:28.141Z"}, {"lat": "44.144419", "lng": "9.663262", "elevation": "198.3000030517578", "time": "2013-09-20T08:45:33.164Z"}, {"lat": "44.144404", "lng": "9.663262", "elevation": "197.3000030517578", "time": "2013-09-20T08:45:34.204Z"}, {"lat": "44.144364", "lng": "9.663282", "elevation": "198.3000030517578", "time": "2013-09-20T08:45:42.142Z"}, {"lat": "44.144366", "lng": "9.663283", "elevation": "198.10000610351563", "time": "2013-09-20T08:45:43.149Z"}, {"lat": "44.144362", "lng": "9.663275", "elevation": "199.3000030517578", "time": "2013-09-20T08:46:03.152Z"}, {"lat": "44.144358", "lng": "9.663284", "elevation": "199.1999969482422", "time": "2013-09-20T08:46:04.142Z"}, {"lat": "44.144319", "lng": "9.663392", "elevation": "201.60000610351563", "time": "2013-09-20T08:46:12.160Z"}, {"lat": "44.144313", "lng": "9.663404", "elevation": "201.0", "time": "2013-09-20T08:46:13.153Z"}, {"lat": "44.144264", "lng": "9.663501", "elevation": "204.89999389648438", "time": "2013-09-20T08:46:20.144Z"}, {"lat": "44.144256", "lng": "9.663513", "elevation": "206.60000610351563", "time": "2013-09-20T08:46:21.170Z"}, {"lat": "44.144207", "lng": "9.663617", "elevation": "207.89999389648438", "time": "2013-09-20T08:46:31.257Z"}, {"lat": "44.144203", "lng": "9.663625", "elevation": "208.6999969482422", "time": "2013-09-20T08:46:32.221Z"}, {"lat": "44.144194", "lng": "9.6637", "elevation": "210.10000610351563", "time": "2013-09-20T08:46:44.148Z"}, {"lat": "44.144195", "lng": "9.663701", "elevation": "210.0", "time": "2013-09-20T08:46:45.162Z"}, {"lat": "44.144193", "lng": "9.663706", "elevation": "210.0", "time": "2013-09-20T08:47:02.176Z"}, {"lat": "44.144194", "lng": "9.663712", "elevation": "209.39999389648438", "time": "2013-09-20T08:47:03.180Z"}, {"lat": "44.144242", "lng": "9.663813", "elevation": "205.8000030517578", "time": "2013-09-20T08:47:19.246Z"}, {"lat": "44.144247", "lng": "9.663822", "elevation": "205.1999969482422", "time": "2013-09-20T08:47:20.183Z"}, {"lat": "44.144316", "lng": "9.663899", "elevation": "202.10000610351563", "time": "2013-09-20T08:47:34.231Z"}, {"lat": "44.14432", "lng": "9.663909", "elevation": "201.89999389648438", "time": "2013-09-20T08:47:35.229Z"}, {"lat": "44.144355", "lng": "9.66397", "elevation": "205.89999389648438", "time": "2013-09-20T08:47:43.176Z"}, {"lat": "44.144354", "lng": "9.663968", "elevation": "205.8000030517578", "time": "2013-09-20T08:47:44.172Z"}, {"lat": "44.144359", "lng": "9.663989", "elevation": "207.8000030517578", "time": "2013-09-20T08:47:53.213Z"}, {"lat": "44.14436", "lng": "9.663996", "elevation": "207.89999389648438", "time": "2013-09-20T08:47:54.162Z"}, {"lat": "44.144404", "lng": "9.664094", "elevation": "210.10000610351563", "time": "2013-09-20T08:48:01.203Z"}, {"lat": "44.14441", "lng": "9.664112", "elevation": "209.89999389648438", "time": "2013-09-20T08:48:02.167Z"}, {"lat": "44.144445", "lng": "9.664217", "elevation": "208.39999389648438", "time": "2013-09-20T08:48:09.225Z"}, {"lat": "44.14445", "lng": "9.664226", "elevation": "207.39999389648438", "time": "2013-09-20T08:48:10.169Z"}, {"lat": "44.14451", "lng": "9.664318", "elevation": "207.6999969482422", "time": "2013-09-20T08:48:19.190Z"}, {"lat": "44.144516", "lng": "9.664334", "elevation": "206.0", "time": "2013-09-20T08:48:20.177Z"}, {"lat": "44.144565", "lng": "9.664426", "elevation": "205.0", "time": "2013-09-20T08:48:27.171Z"}, {"lat": "44.144574", "lng": "9.664434", "elevation": "205.10000610351563", "time": "2013-09-20T08:48:28.180Z"}, {"lat": "44.144609", "lng": "9.664543", "elevation": "206.6999969482422", "time": "2013-09-20T08:48:40.184Z"}, {"lat": "44.14461", "lng": "9.664554", "elevation": "206.39999389648438", "time": "2013-09-20T08:48:41.182Z"}, {"lat": "44.144638", "lng": "9.664672", "elevation": "205.10000610351563", "time": "2013-09-20T08:48:51.188Z"}, {"lat": "44.144642", "lng": "9.664682", "elevation": "205.60000610351563", "time": "2013-09-20T08:48:52.230Z"}, {"lat": "44.144682", "lng": "9.664781", "elevation": "205.8000030517578", "time": "2013-09-20T08:49:02.254Z"}, {"lat": "44.144687", "lng": "9.664793", "elevation": "206.0", "time": "2013-09-20T08:49:03.262Z"}, {"lat": "44.144653", "lng": "9.664906", "elevation": "206.60000610351563", "time": "2013-09-20T08:49:15.287Z"}, {"lat": "44.14465", "lng": "9.664912", "elevation": "207.10000610351563", "time": "2013-09-20T08:49:16.261Z"}, {"lat": "44.144651", "lng": "9.664916", "elevation": "205.89999389648438", "time": "2013-09-20T08:49:18.271Z"}, {"lat": "44.144656", "lng": "9.664914", "elevation": "205.89999389648438", "time": "2013-09-20T08:49:19.343Z"}, {"lat": "44.144661", "lng": "9.664911", "elevation": "206.0", "time": "2013-09-20T08:49:20.304Z"}, {"lat": "44.144685", "lng": "9.664912", "elevation": "205.89999389648438", "time": "2013-09-20T08:49:28.388Z"}, {"lat": "44.144686", "lng": "9.664914", "elevation": "206.0", "time": "2013-09-20T08:49:29.371Z"}, {"lat": "44.144687", "lng": "9.66492", "elevation": "205.89999389648438", "time": "2013-09-20T08:49:35.323Z"}, {"lat": "44.144691", "lng": "9.664926", "elevation": "205.39999389648438", "time": "2013-09-20T08:49:36.247Z"}, {"lat": "44.144753", "lng": "9.665007", "elevation": "203.6999969482422", "time": "2013-09-20T08:49:42.194Z"}, {"lat": "44.144764", "lng": "9.665024", "elevation": "203.89999389648438", "time": "2013-09-20T08:49:43.371Z"}, {"lat": "44.144819", "lng": "9.66512", "elevation": "204.10000610351563", "time": "2013-09-20T08:49:51.386Z"}, {"lat": "44.14482", "lng": "9.665126", "elevation": "204.3000030517578", "time": "2013-09-20T08:49:52.321Z"}, {"lat": "44.144856", "lng": "9.665239", "elevation": "205.89999389648438", "time": "2013-09-20T08:50:03.402Z"}, {"lat": "44.144859", "lng": "9.665241", "elevation": "205.60000610351563", "time": "2013-09-20T08:50:04.370Z"}, {"lat": "44.144862", "lng": "9.665246", "elevation": "205.5", "time": "2013-09-20T08:50:07.377Z"}, {"lat": "44.144862", "lng": "9.665247", "elevation": "205.5", "time": "2013-09-20T08:50:08.322Z"}, {"lat": "44.144864", "lng": "9.665254", "elevation": "206.1999969482422", "time": "2013-09-20T08:50:17.332Z"}, {"lat": "44.144867", "lng": "9.665261", "elevation": "206.10000610351563", "time": "2013-09-20T08:50:18.349Z"}, {"lat": "44.144931", "lng": "9.665342", "elevation": "207.6999969482422", "time": "2013-09-20T08:50:23.347Z"}, {"lat": "44.144945", "lng": "9.66536", "elevation": "208.0", "time": "2013-09-20T08:50:24.325Z"}, {"lat": "44.144995", "lng": "9.665457", "elevation": "206.39999389648438", "time": "2013-09-20T08:50:30.244Z"}, {"lat": "44.144997", "lng": "9.665466", "elevation": "206.3000030517578", "time": "2013-09-20T08:50:31.187Z"}, {"lat": "44.144991", "lng": "9.6655", "elevation": "206.1999969482422", "time": "2013-09-20T08:50:41.277Z"}, {"lat": "44.144991", "lng": "9.665502", "elevation": "205.8000030517578", "time": "2013-09-20T08:50:42.244Z"}, {"lat": "44.144995", "lng": "9.665519", "elevation": "204.1999969482422", "time": "2013-09-20T08:50:54.344Z"}, {"lat": "44.144995", "lng": "9.665528", "elevation": "204.1999969482422", "time": "2013-09-20T08:50:55.360Z"}, {"lat": "44.144992", "lng": "9.665644", "elevation": "206.8000030517578", "time": "2013-09-20T08:51:02.176Z"}, {"lat": "44.14499", "lng": "9.665659", "elevation": "206.6999969482422", "time": "2013-09-20T08:51:03.176Z"}, {"lat": "44.145013", "lng": "9.665772", "elevation": "204.60000610351563", "time": "2013-09-20T08:51:12.336Z"}, {"lat": "44.145022", "lng": "9.665786", "elevation": "204.10000610351563", "time": "2013-09-20T08:51:13.305Z"}, {"lat": "44.14507", "lng": "9.665875", "elevation": "204.3000030517578", "time": "2013-09-20T08:51:20.280Z"}, {"lat": "44.145072", "lng": "9.665891", "elevation": "202.89999389648438", "time": "2013-09-20T08:51:21.363Z"}, {"lat": "44.145067", "lng": "9.666001", "elevation": "197.8000030517578", "time": "2013-09-20T08:51:37.323Z"}, {"lat": "44.145074", "lng": "9.666025", "elevation": "197.5", "time": "2013-09-20T08:51:38.322Z"}, {"lat": "44.145099", "lng": "9.666122", "elevation": "196.3000030517578", "time": "2013-09-20T08:51:41.330Z"}, {"lat": "44.145112", "lng": "9.666149", "elevation": "196.3000030517578", "time": "2013-09-20T08:51:42.355Z"}, {"lat": "44.14516", "lng": "9.666228", "elevation": "197.6999969482422", "time": "2013-09-20T08:51:46.256Z"}, {"lat": "44.14517", "lng": "9.666247", "elevation": "197.3000030517578", "time": "2013-09-20T08:51:47.227Z"}, {"lat": "44.145223", "lng": "9.666331", "elevation": "199.89999389648438", "time": "2013-09-20T08:51:54.211Z"}, {"lat": "44.145231", "lng": "9.666343", "elevation": "201.0", "time": "2013-09-20T08:51:55.178Z"}, {"lat": "44.145287", "lng": "9.666436", "elevation": "202.60000610351563", "time": "2013-09-20T08:52:02.194Z"}, {"lat": "44.145294", "lng": "9.666447", "elevation": "202.89999389648438", "time": "2013-09-20T08:52:03.228Z"}, {"lat": "44.145377", "lng": "9.666465", "elevation": "201.0", "time": "2013-09-20T08:52:13.181Z"}, {"lat": "44.145386", "lng": "9.666461", "elevation": "201.10000610351563", "time": "2013-09-20T08:52:14.212Z"}, {"lat": "44.14542", "lng": "9.666575", "elevation": "199.1999969482422", "time": "2013-09-20T08:52:29.348Z"}, {"lat": "44.145421", "lng": "9.666594", "elevation": "199.0", "time": "2013-09-20T08:52:30.327Z"}, {"lat": "44.145417", "lng": "9.666709", "elevation": "195.39999389648438", "time": "2013-09-20T08:52:36.199Z"}, {"lat": "44.145418", "lng": "9.666721", "elevation": "196.10000610351563", "time": "2013-09-20T08:52:37.197Z"}, {"lat": "44.145423", "lng": "9.666843", "elevation": "195.6999969482422", "time": "2013-09-20T08:52:49.192Z"}, {"lat": "44.145426", "lng": "9.666855", "elevation": "195.10000610351563", "time": "2013-09-20T08:52:50.233Z"}, {"lat": "44.145455", "lng": "9.666967", "elevation": "194.1999969482422", "time": "2013-09-20T08:52:58.191Z"}, {"lat": "44.145459", "lng": "9.66698", "elevation": "194.0", "time": "2013-09-20T08:52:59.184Z"}, {"lat": "44.145496", "lng": "9.667082", "elevation": "191.10000610351563", "time": "2013-09-20T08:53:09.183Z"}, {"lat": "44.1455", "lng": "9.667098", "elevation": "191.1999969482422", "time": "2013-09-20T08:53:10.200Z"}, {"lat": "44.145552", "lng": "9.667184", "elevation": "191.8000030517578", "time": "2013-09-20T08:53:16.329Z"}, {"lat": "44.145557", "lng": "9.667196", "elevation": "191.8000030517578", "time": "2013-09-20T08:53:17.356Z"}, {"lat": "44.145562", "lng": "9.667214", "elevation": "189.60000610351563", "time": "2013-09-20T08:53:22.291Z"}, {"lat": "44.14556", "lng": "9.667212", "elevation": "189.6999969482422", "time": "2013-09-20T08:53:23.241Z"}, {"lat": "44.145553", "lng": "9.66721", "elevation": "188.6999969482422", "time": "2013-09-20T08:53:50.175Z"}, {"lat": "44.145559", "lng": "9.66721", "elevation": "189.1999969482422", "time": "2013-09-20T08:53:51.175Z"}, {"lat": "44.145641", "lng": "9.667257", "elevation": "192.10000610351563", "time": "2013-09-20T08:53:58.197Z"}, {"lat": "44.14565", "lng": "9.667267", "elevation": "192.5", "time": "2013-09-20T08:53:59.181Z"}, {"lat": "44.145691", "lng": "9.66735", "elevation": "193.1999969482422", "time": "2013-09-20T08:54:05.205Z"}, {"lat": "44.145695", "lng": "9.667379", "elevation": "193.39999389648438", "time": "2013-09-20T08:54:06.190Z"}, {"lat": "44.145706", "lng": "9.66749", "elevation": "194.60000610351563", "time": "2013-09-20T08:54:09.182Z"}, {"lat": "44.145712", "lng": "9.667534", "elevation": "195.3000030517578", "time": "2013-09-20T08:54:10.213Z"}, {"lat": "44.145739", "lng": "9.667573", "elevation": "194.89999389648438", "time": "2013-09-20T08:54:19.207Z"}, {"lat": "44.145739", "lng": "9.667574", "elevation": "194.0", "time": "2013-09-20T08:54:20.196Z"}, {"lat": "44.14574", "lng": "9.667582", "elevation": "195.39999389648438", "time": "2013-09-20T08:54:22.213Z"}, {"lat": "44.145741", "lng": "9.667587", "elevation": "194.5", "time": "2013-09-20T08:54:23.191Z"}, {"lat": "44.145733", "lng": "9.667644", "elevation": "198.1999969482422", "time": "2013-09-20T08:54:32.207Z"}, {"lat": "44.145733", "lng": "9.667643", "elevation": "198.89999389648438", "time": "2013-09-20T08:54:33.214Z"}, {"lat": "44.145739", "lng": "9.667633", "elevation": "198.10000610351563", "time": "2013-09-20T08:54:42.192Z"}, {"lat": "44.145741", "lng": "9.667637", "elevation": "198.39999389648438", "time": "2013-09-20T08:54:43.214Z"}, {"lat": "44.145724", "lng": "9.667754", "elevation": "199.8000030517578", "time": "2013-09-20T08:54:52.188Z"}, {"lat": "44.145723", "lng": "9.667775", "elevation": "198.5", "time": "2013-09-20T08:54:53.202Z"}, {"lat": "44.145703", "lng": "9.667889", "elevation": "197.0", "time": "2013-09-20T08:55:07.208Z"}, {"lat": "44.145707", "lng": "9.667901", "elevation": "196.6999969482422", "time": "2013-09-20T08:55:08.242Z"}, {"lat": "44.14571", "lng": "9.667922", "elevation": "195.6999969482422", "time": "2013-09-20T08:55:13.217Z"}, {"lat": "44.145707", "lng": "9.667921", "elevation": "196.6999969482422", "time": "2013-09-20T08:55:14.251Z"}, {"lat": "44.145704", "lng": "9.66792", "elevation": "196.1999969482422", "time": "2013-09-20T08:55:15.210Z"}, {"lat": "44.1457", "lng": "9.667919", "elevation": "196.60000610351563", "time": "2013-09-20T08:55:16.230Z"}, {"lat": "44.145617", "lng": "9.667918", "elevation": "196.3000030517578", "time": "2013-09-20T08:55:29.211Z"}, {"lat": "44.145603", "lng": "9.667908", "elevation": "197.39999389648438", "time": "2013-09-20T08:55:30.197Z"}, {"lat": "44.145516", "lng": "9.667888", "elevation": "197.10000610351563", "time": "2013-09-20T08:55:37.203Z"}, {"lat": "44.145508", "lng": "9.667883", "elevation": "198.60000610351563", "time": "2013-09-20T08:55:38.212Z"}, {"lat": "44.14545", "lng": "9.667852", "elevation": "196.8000030517578", "time": "2013-09-20T08:55:56.193Z"}, {"lat": "44.14545", "lng": "9.667852", "elevation": "197.0", "time": "2013-09-20T08:55:57.198Z"}, {"lat": "44.145443", "lng": "9.667863", "elevation": "195.6999969482422", "time": "2013-09-20T08:56:10.210Z"}, {"lat": "44.145437", "lng": "9.667863", "elevation": "198.1999969482422", "time": "2013-09-20T08:56:11.230Z"}, {"lat": "44.145349", "lng": "9.667869", "elevation": "197.10000610351563", "time": "2013-09-20T08:56:18.200Z"}, {"lat": "44.145335", "lng": "9.66787", "elevation": "198.0", "time": "2013-09-20T08:56:19.231Z"}, {"lat": "44.145254", "lng": "9.667841", "elevation": "193.89999389648438", "time": "2013-09-20T08:56:25.279Z"}, {"lat": "44.145241", "lng": "9.667831", "elevation": "192.6999969482422", "time": "2013-09-20T08:56:26.230Z"}, {"lat": "44.145155", "lng": "9.667803", "elevation": "194.10000610351563", "time": "2013-09-20T08:56:32.207Z"}, {"lat": "44.145141", "lng": "9.667805", "elevation": "194.3000030517578", "time": "2013-09-20T08:56:33.233Z"}, {"lat": "44.145086", "lng": "9.667807", "elevation": "191.8000030517578", "time": "2013-09-20T08:56:46.216Z"}, {"lat": "44.145085", "lng": "9.667808", "elevation": "191.8000030517578", "time": "2013-09-20T08:56:47.207Z"}, {"lat": "44.145082", "lng": "9.667807", "elevation": "192.1999969482422", "time": "2013-09-20T08:56:48.217Z"}, {"lat": "44.145076", "lng": "9.667807", "elevation": "192.39999389648438", "time": "2013-09-20T08:56:49.217Z"}, {"lat": "44.144992", "lng": "9.667778", "elevation": "194.0", "time": "2013-09-20T08:56:55.208Z"}, {"lat": "44.144977", "lng": "9.667771", "elevation": "194.10000610351563", "time": "2013-09-20T08:56:56.234Z"}, {"lat": "44.1449", "lng": "9.66773", "elevation": "195.39999389648438", "time": "2013-09-20T08:57:02.217Z"}, {"lat": "44.144888", "lng": "9.667724", "elevation": "196.10000610351563", "time": "2013-09-20T08:57:03.267Z"}, {"lat": "44.144801", "lng": "9.667719", "elevation": "193.3000030517578", "time": "2013-09-20T08:57:15.224Z"}, {"lat": "44.144792", "lng": "9.667717", "elevation": "193.10000610351563", "time": "2013-09-20T08:57:16.310Z"}, {"lat": "44.144702", "lng": "9.667699", "elevation": "189.5", "time": "2013-09-20T08:57:30.220Z"}, {"lat": "44.144698", "lng": "9.667704", "elevation": "189.5", "time": "2013-09-20T08:57:31.220Z"}, {"lat": "44.144612", "lng": "9.667714", "elevation": "184.1999969482422", "time": "2013-09-20T08:57:41.244Z"}, {"lat": "44.144597", "lng": "9.667713", "elevation": "184.39999389648438", "time": "2013-09-20T08:57:42.215Z"}, {"lat": "44.144547", "lng": "9.667816", "elevation": "194.1999969482422", "time": "2013-09-20T08:57:57.230Z"}, {"lat": "44.144544", "lng": "9.667823", "elevation": "195.39999389648438", "time": "2013-09-20T08:57:58.256Z"}, {"lat": "44.144581", "lng": "9.667931", "elevation": "200.8000030517578", "time": "2013-09-20T08:58:12.304Z"}, {"lat": "44.144579", "lng": "9.667938", "elevation": "201.10000610351563", "time": "2013-09-20T08:58:13.264Z"}, {"lat": "44.144543", "lng": "9.668047", "elevation": "200.6999969482422", "time": "2013-09-20T08:58:22.288Z"}, {"lat": "44.144541", "lng": "9.668063", "elevation": "201.10000610351563", "time": "2013-09-20T08:58:23.381Z"}, {"lat": "44.144542", "lng": "9.668181", "elevation": "200.39999389648438", "time": "2013-09-20T08:58:32.226Z"}, {"lat": "44.144542", "lng": "9.66819", "elevation": "201.89999389648438", "time": "2013-09-20T08:58:33.213Z"}, {"lat": "44.144476", "lng": "9.668256", "elevation": "198.6999969482422", "time": "2013-09-20T08:58:44.323Z"}, {"lat": "44.14447", "lng": "9.668272", "elevation": "199.3000030517578", "time": "2013-09-20T08:58:45.291Z"}, {"lat": "44.144473", "lng": "9.668395", "elevation": "207.10000610351563", "time": "2013-09-20T08:58:59.284Z"}, {"lat": "44.144475", "lng": "9.668399", "elevation": "207.5", "time": "2013-09-20T08:59:00.355Z"}, {"lat": "44.144447", "lng": "9.668515", "elevation": "205.5", "time": "2013-09-20T08:59:12.285Z"}, {"lat": "44.144445", "lng": "9.668528", "elevation": "205.8000030517578", "time": "2013-09-20T08:59:13.231Z"}, {"lat": "44.144438", "lng": "9.668644", "elevation": "205.3000030517578", "time": "2013-09-20T08:59:25.359Z"}, {"lat": "44.144429", "lng": "9.668653", "elevation": "205.3000030517578", "time": "2013-09-20T08:59:26.367Z"}, {"lat": "44.144408", "lng": "9.668772", "elevation": "207.5", "time": "2013-09-20T08:59:39.319Z"}, {"lat": "44.144411", "lng": "9.668783", "elevation": "208.10000610351563", "time": "2013-09-20T08:59:40.365Z"}, {"lat": "44.144481", "lng": "9.668861", "elevation": "211.1999969482422", "time": "2013-09-20T08:59:52.223Z"}, {"lat": "44.144485", "lng": "9.66887", "elevation": "211.39999389648438", "time": "2013-09-20T08:59:53.240Z"}, {"lat": "44.144481", "lng": "9.668992", "elevation": "210.39999389648438", "time": "2013-09-20T09:00:04.345Z"}, {"lat": "44.144482", "lng": "9.669003", "elevation": "210.60000610351563", "time": "2013-09-20T09:00:05.306Z"}, {"lat": "44.144454", "lng": "9.66906", "elevation": "210.39999389648438", "time": "2013-09-20T09:00:15.349Z"}, {"lat": "44.144453", "lng": "9.66906", "elevation": "210.3000030517578", "time": "2013-09-20T09:00:16.373Z"}, {"lat": "44.144451", "lng": "9.669059", "elevation": "210.1999969482422", "time": "2013-09-20T09:00:17.328Z"}, {"lat": "44.144447", "lng": "9.669058", "elevation": "210.1999969482422", "time": "2013-09-20T09:00:18.393Z"}, {"lat": "44.144438", "lng": "9.669054", "elevation": "210.10000610351563", "time": "2013-09-20T09:00:22.266Z"}, {"lat": "44.144438", "lng": "9.669054", "elevation": "210.0", "time": "2013-09-20T09:00:23.234Z"}, {"lat": "44.144439", "lng": "9.669063", "elevation": "210.1999969482422", "time": "2013-09-20T09:00:41.226Z"}, {"lat": "44.144439", "lng": "9.669074", "elevation": "210.60000610351563", "time": "2013-09-20T09:00:42.241Z"}, {"lat": "44.144431", "lng": "9.669184", "elevation": "213.1999969482422", "time": "2013-09-20T09:00:48.323Z"}, {"lat": "44.144428", "lng": "9.669204", "elevation": "213.6999969482422", "time": "2013-09-20T09:00:49.323Z"}, {"lat": "44.144437", "lng": "9.669318", "elevation": "212.39999389648438", "time": "2013-09-20T09:00:54.282Z"}, {"lat": "44.14444", "lng": "9.669341", "elevation": "212.0", "time": "2013-09-20T09:00:55.227Z"}, {"lat": "44.144402", "lng": "9.669447", "elevation": "211.3000030517578", "time": "2013-09-20T09:01:02.394Z"}, {"lat": "44.144399", "lng": "9.669458", "elevation": "211.3000030517578", "time": "2013-09-20T09:01:03.344Z"}, {"lat": "44.144371", "lng": "9.669565", "elevation": "213.89999389648438", "time": "2013-09-20T09:01:13.236Z"}, {"lat": "44.144368", "lng": "9.669583", "elevation": "214.8000030517578", "time": "2013-09-20T09:01:14.244Z"}, {"lat": "44.144391", "lng": "9.669694", "elevation": "215.0", "time": "2013-09-20T09:01:21.336Z"}, {"lat": "44.144397", "lng": "9.669703", "elevation": "214.6999969482422", "time": "2013-09-20T09:01:22.334Z"}, {"lat": "44.144386", "lng": "9.66982", "elevation": "215.1999969482422", "time": "2013-09-20T09:01:31.282Z"}, {"lat": "44.144379", "lng": "9.669826", "elevation": "216.3000030517578", "time": "2013-09-20T09:01:32.321Z"}, {"lat": "44.144351", "lng": "9.669856", "elevation": "217.0", "time": "2013-09-20T09:01:41.344Z"}, {"lat": "44.144351", "lng": "9.669857", "elevation": "216.6999969482422", "time": "2013-09-20T09:01:42.295Z"}, {"lat": "44.144337", "lng": "9.66986", "elevation": "214.39999389648438", "time": "2013-09-20T09:01:55.249Z"}, {"lat": "44.144331", "lng": "9.669859", "elevation": "213.3000030517578", "time": "2013-09-20T09:01:56.251Z"}, {"lat": "44.144244", "lng": "9.669859", "elevation": "210.6999969482422", "time": "2013-09-20T09:02:04.326Z"}, {"lat": "44.144229", "lng": "9.669855", "elevation": "209.6999969482422", "time": "2013-09-20T09:02:05.266Z"}, {"lat": "44.144145", "lng": "9.669813", "elevation": "210.3000030517578", "time": "2013-09-20T09:02:12.254Z"}, {"lat": "44.144133", "lng": "9.669806", "elevation": "211.60000610351563", "time": "2013-09-20T09:02:13.307Z"}, {"lat": "44.144084", "lng": "9.669726", "elevation": "211.8000030517578", "time": "2013-09-20T09:02:18.230Z"}, {"lat": "44.144075", "lng": "9.669703", "elevation": "211.60000610351563", "time": "2013-09-20T09:02:19.260Z"}, {"lat": "44.144018", "lng": "9.669627", "elevation": "213.5", "time": "2013-09-20T09:02:24.285Z"}, {"lat": "44.144005", "lng": "9.669616", "elevation": "214.3000030517578", "time": "2013-09-20T09:02:25.259Z"}, {"lat": "44.143925", "lng": "9.669578", "elevation": "214.0", "time": "2013-09-20T09:02:30.279Z"}, {"lat": "44.143911", "lng": "9.669575", "elevation": "213.5", "time": "2013-09-20T09:02:31.326Z"}, {"lat": "44.143833", "lng": "9.669571", "elevation": "214.3000030517578", "time": "2013-09-20T09:02:37.235Z"}, {"lat": "44.143818", "lng": "9.669571", "elevation": "214.10000610351563", "time": "2013-09-20T09:02:38.282Z"}, {"lat": "44.143755", "lng": "9.669483", "elevation": "213.1999969482422", "time": "2013-09-20T09:02:46.284Z"}, {"lat": "44.143748", "lng": "9.669477", "elevation": "212.3000030517578", "time": "2013-09-20T09:02:47.326Z"}, {"lat": "44.143667", "lng": "9.669444", "elevation": "211.1999969482422", "time": "2013-09-20T09:02:57.271Z"}, {"lat": "44.143659", "lng": "9.669438", "elevation": "211.39999389648438", "time": "2013-09-20T09:02:58.247Z"}, {"lat": "44.143598", "lng": "9.669348", "elevation": "216.1999969482422", "time": "2013-09-20T09:03:06.234Z"}, {"lat": "44.143589", "lng": "9.669334", "elevation": "217.0", "time": "2013-09-20T09:03:07.235Z"}, {"lat": "44.143531", "lng": "9.669243", "elevation": "218.8000030517578", "time": "2013-09-20T09:03:13.238Z"}, {"lat": "44.143523", "lng": "9.66923", "elevation": "219.0", "time": "2013-09-20T09:03:14.235Z"}, {"lat": "44.143485", "lng": "9.669128", "elevation": "219.1999969482422", "time": "2013-09-20T09:03:22.241Z"}, {"lat": "44.143479", "lng": "9.66912", "elevation": "219.10000610351563", "time": "2013-09-20T09:03:23.255Z"}, {"lat": "44.143393", "lng": "9.669141", "elevation": "220.3000030517578", "time": "2013-09-20T09:03:42.332Z"}, {"lat": "44.143389", "lng": "9.66914", "elevation": "220.8000030517578", "time": "2013-09-20T09:03:43.343Z"}, {"lat": "44.143316", "lng": "9.669112", "elevation": "224.60000610351563", "time": "2013-09-20T09:03:57.267Z"}, {"lat": "44.143317", "lng": "9.669111", "elevation": "224.6999969482422", "time": "2013-09-20T09:03:58.315Z"}, {"lat": "44.143317", "lng": "9.669118", "elevation": "224.10000610351563", "time": "2013-09-20T09:04:03.241Z"}, {"lat": "44.143314", "lng": "9.669121", "elevation": "224.1999969482422", "time": "2013-09-20T09:04:04.306Z"}, {"lat": "44.143311", "lng": "9.669125", "elevation": "224.6999969482422", "time": "2013-09-20T09:04:06.251Z"}, {"lat": "44.14331", "lng": "9.669126", "elevation": "225.10000610351563", "time": "2013-09-20T09:04:07.261Z"}, {"lat": "44.143303", "lng": "9.66912", "elevation": "225.39999389648438", "time": "2013-09-20T09:04:14.248Z"}, {"lat": "44.1433", "lng": "9.669122", "elevation": "224.1999969482422", "time": "2013-09-20T09:04:15.253Z"}, {"lat": "44.143214", "lng": "9.669147", "elevation": "221.60000610351563", "time": "2013-09-20T09:04:23.285Z"}, {"lat": "44.143201", "lng": "9.669156", "elevation": "220.5", "time": "2013-09-20T09:04:24.292Z"}, {"lat": "44.143132", "lng": "9.669228", "elevation": "218.8000030517578", "time": "2013-09-20T09:04:31.331Z"}, {"lat": "44.143125", "lng": "9.669245", "elevation": "219.1999969482422", "time": "2013-09-20T09:04:32.334Z"}, {"lat": "44.143048", "lng": "9.669309", "elevation": "216.0", "time": "2013-09-20T09:04:40.320Z"}, {"lat": "44.143039", "lng": "9.669316", "elevation": "217.39999389648438", "time": "2013-09-20T09:04:41.273Z"}, {"lat": "44.14297", "lng": "9.669391", "elevation": "220.1999969482422", "time": "2013-09-20T09:04:52.254Z"}, {"lat": "44.142966", "lng": "9.669397", "elevation": "220.3000030517578", "time": "2013-09-20T09:04:53.262Z"}, {"lat": "44.14292", "lng": "9.669493", "elevation": "231.0", "time": "2013-09-20T09:05:08.249Z"}, {"lat": "44.142916", "lng": "9.669504", "elevation": "231.6999969482422", "time": "2013-09-20T09:05:09.270Z"}, {"lat": "44.142854", "lng": "9.669583", "elevation": "229.3000030517578", "time": "2013-09-20T09:05:17.264Z"}, {"lat": "44.142843", "lng": "9.669591", "elevation": "229.0", "time": "2013-09-20T09:05:18.267Z"}, {"lat": "44.142811", "lng": "9.669699", "elevation": "229.1999969482422", "time": "2013-09-20T09:05:38.291Z"}, {"lat": "44.142812", "lng": "9.6697", "elevation": "229.39999389648438", "time": "2013-09-20T09:05:39.265Z"}, {"lat": "44.142807", "lng": "9.669704", "elevation": "229.10000610351563", "time": "2013-09-20T09:05:53.343Z"}, {"lat": "44.142802", "lng": "9.66971", "elevation": "228.60000610351563", "time": "2013-09-20T09:05:54.266Z"}, {"lat": "44.142739", "lng": "9.669788", "elevation": "226.89999389648438", "time": "2013-09-20T09:06:00.365Z"}, {"lat": "44.142725", "lng": "9.669803", "elevation": "225.60000610351563", "time": "2013-09-20T09:06:01.348Z"}, {"lat": "44.142665", "lng": "9.669875", "elevation": "224.6999969482422", "time": "2013-09-20T09:06:06.260Z"}, {"lat": "44.142658", "lng": "9.669893", "elevation": "225.39999389648438", "time": "2013-09-20T09:06:07.262Z"}, {"lat": "44.142614", "lng": "9.669987", "elevation": "223.60000610351563", "time": "2013-09-20T09:06:12.262Z"}, {"lat": "44.1426", "lng": "9.670006", "elevation": "223.5", "time": "2013-09-20T09:06:13.255Z"}, {"lat": "44.142532", "lng": "9.670084", "elevation": "221.60000610351563", "time": "2013-09-20T09:06:18.269Z"}, {"lat": "44.142521", "lng": "9.670096", "elevation": "221.0", "time": "2013-09-20T09:06:19.292Z"}, {"lat": "44.142444", "lng": "9.670138", "elevation": "220.39999389648438", "time": "2013-09-20T09:06:28.263Z"}, {"lat": "44.142433", "lng": "9.670138", "elevation": "219.5", "time": "2013-09-20T09:06:29.275Z"}, {"lat": "44.142349", "lng": "9.67018", "elevation": "215.10000610351563", "time": "2013-09-20T09:06:37.272Z"}, {"lat": "44.14234", "lng": "9.670191", "elevation": "215.0", "time": "2013-09-20T09:06:38.255Z"}, {"lat": "44.142282", "lng": "9.670284", "elevation": "212.60000610351563", "time": "2013-09-20T09:06:47.259Z"}, {"lat": "44.142278", "lng": "9.670289", "elevation": "211.6999969482422", "time": "2013-09-20T09:06:48.281Z"}, {"lat": "44.142205", "lng": "9.670358", "elevation": "212.3000030517578", "time": "2013-09-20T09:06:58.282Z"}, {"lat": "44.142197", "lng": "9.670374", "elevation": "212.0", "time": "2013-09-20T09:06:59.264Z"}, {"lat": "44.142145", "lng": "9.670464", "elevation": "211.60000610351563", "time": "2013-09-20T09:07:07.267Z"}, {"lat": "44.142132", "lng": "9.670468", "elevation": "211.89999389648438", "time": "2013-09-20T09:07:08.264Z"}, {"lat": "44.142055", "lng": "9.670509", "elevation": "208.5", "time": "2013-09-20T09:07:19.283Z"}, {"lat": "44.142045", "lng": "9.670511", "elevation": "207.8000030517578", "time": "2013-09-20T09:07:20.310Z"}, {"lat": "44.141963", "lng": "9.670544", "elevation": "205.1999969482422", "time": "2013-09-20T09:07:28.260Z"}, {"lat": "44.141956", "lng": "9.670557", "elevation": "204.89999389648438", "time": "2013-09-20T09:07:29.274Z"}, {"lat": "44.141916", "lng": "9.670662", "elevation": "203.6999969482422", "time": "2013-09-20T09:07:37.269Z"}, {"lat": "44.141911", "lng": "9.670673", "elevation": "204.0", "time": "2013-09-20T09:07:38.292Z"}, {"lat": "44.141832", "lng": "9.670726", "elevation": "203.5", "time": "2013-09-20T09:07:56.270Z"}, {"lat": "44.141829", "lng": "9.670736", "elevation": "203.89999389648438", "time": "2013-09-20T09:07:57.278Z"}, {"lat": "44.141775", "lng": "9.67069", "elevation": "208.89999389648438", "time": "2013-09-20T09:08:14.343Z"}, {"lat": "44.141775", "lng": "9.670689", "elevation": "208.6999969482422", "time": "2013-09-20T09:08:15.377Z"}, {"lat": "44.141772", "lng": "9.670694", "elevation": "208.89999389648438", "time": "2013-09-20T09:08:29.334Z"}, {"lat": "44.141767", "lng": "9.6707", "elevation": "209.8000030517578", "time": "2013-09-20T09:08:30.313Z"}, {"lat": "44.141695", "lng": "9.670774", "elevation": "209.0", "time": "2013-09-20T09:08:36.290Z"}, {"lat": "44.141682", "lng": "9.670793", "elevation": "206.3000030517578", "time": "2013-09-20T09:08:37.303Z"}, {"lat": "44.141676", "lng": "9.670903", "elevation": "206.3000030517578", "time": "2013-09-20T09:08:42.272Z"}, {"lat": "44.141676", "lng": "9.670921", "elevation": "206.5", "time": "2013-09-20T09:08:43.264Z"}, {"lat": "44.141665", "lng": "9.671042", "elevation": "209.10000610351563", "time": "2013-09-20T09:08:51.284Z"}, {"lat": "44.141658", "lng": "9.671052", "elevation": "208.60000610351563", "time": "2013-09-20T09:08:52.281Z"}, {"lat": "44.141598", "lng": "9.671141", "elevation": "207.5", "time": "2013-09-20T09:09:01.265Z"}, {"lat": "44.141586", "lng": "9.671158", "elevation": "207.8000030517578", "time": "2013-09-20T09:09:02.296Z"}, {"lat": "44.141525", "lng": "9.671237", "elevation": "208.8000030517578", "time": "2013-09-20T09:09:07.275Z"}, {"lat": "44.141513", "lng": "9.67125", "elevation": "209.1999969482422", "time": "2013-09-20T09:09:08.265Z"}, {"lat": "44.141455", "lng": "9.671324", "elevation": "210.39999389648438", "time": "2013-09-20T09:09:13.267Z"}, {"lat": "44.141449", "lng": "9.671346", "elevation": "210.89999389648438", "time": "2013-09-20T09:09:14.305Z"}, {"lat": "44.141409", "lng": "9.671437", "elevation": "212.5", "time": "2013-09-20T09:09:19.330Z"}, {"lat": "44.141397", "lng": "9.67145", "elevation": "212.10000610351563", "time": "2013-09-20T09:09:20.267Z"}, {"lat": "44.141331", "lng": "9.671521", "elevation": "211.39999389648438", "time": "2013-09-20T09:09:27.267Z"}, {"lat": "44.141326", "lng": "9.671536", "elevation": "211.3000030517578", "time": "2013-09-20T09:09:28.285Z"}, {"lat": "44.141303", "lng": "9.671647", "elevation": "212.6999969482422", "time": "2013-09-20T09:09:34.347Z"}, {"lat": "44.141298", "lng": "9.671664", "elevation": "212.60000610351563", "time": "2013-09-20T09:09:35.362Z"}, {"lat": "44.141252", "lng": "9.671752", "elevation": "211.3000030517578", "time": "2013-09-20T09:09:41.277Z"}, {"lat": "44.141247", "lng": "9.671769", "elevation": "211.1999969482422", "time": "2013-09-20T09:09:42.325Z"}, {"lat": "44.141196", "lng": "9.671864", "elevation": "213.8000030517578", "time": "2013-09-20T09:09:48.287Z"}, {"lat": "44.141177", "lng": "9.671877", "elevation": "213.3000030517578", "time": "2013-09-20T09:09:49.287Z"}, {"lat": "44.141107", "lng": "9.671917", "elevation": "214.3000030517578", "time": "2013-09-20T09:09:53.318Z"}, {"lat": "44.141094", "lng": "9.671927", "elevation": "214.10000610351563", "time": "2013-09-20T09:09:54.286Z"}, {"lat": "44.141035", "lng": "9.672006", "elevation": "213.6999969482422", "time": "2013-09-20T09:10:00.393Z"}, {"lat": "44.141027", "lng": "9.672018", "elevation": "212.60000610351563", "time": "2013-09-20T09:10:01.294Z"}, {"lat": "44.14094", "lng": "9.672043", "elevation": "213.1999969482422", "time": "2013-09-20T09:10:07.286Z"}, {"lat": "44.140927", "lng": "9.672048", "elevation": "214.39999389648438", "time": "2013-09-20T09:10:08.301Z"}, {"lat": "44.140852", "lng": "9.672109", "elevation": "217.5", "time": "2013-09-20T09:10:15.367Z"}, {"lat": "44.140845", "lng": "9.672117", "elevation": "217.0", "time": "2013-09-20T09:10:16.345Z"}, {"lat": "44.140788", "lng": "9.672193", "elevation": "215.60000610351563", "time": "2013-09-20T09:10:28.273Z"}, {"lat": "44.140779", "lng": "9.672203", "elevation": "216.1999969482422", "time": "2013-09-20T09:10:29.281Z"}, {"lat": "44.140702", "lng": "9.672256", "elevation": "214.89999389648438", "time": "2013-09-20T09:10:45.297Z"}, {"lat": "44.140699", "lng": "9.672262", "elevation": "214.1999969482422", "time": "2013-09-20T09:10:46.331Z"}, {"lat": "44.140637", "lng": "9.672337", "elevation": "216.10000610351563", "time": "2013-09-20T09:10:57.306Z"}, {"lat": "44.140626", "lng": "9.672344", "elevation": "216.1999969482422", "time": "2013-09-20T09:10:58.274Z"}, {"lat": "44.140567", "lng": "9.67243", "elevation": "216.10000610351563", "time": "2013-09-20T09:11:05.308Z"}, {"lat": "44.140564", "lng": "9.672447", "elevation": "216.8000030517578", "time": "2013-09-20T09:11:06.283Z"}, {"lat": "44.140541", "lng": "9.672555", "elevation": "218.5", "time": "2013-09-20T09:11:12.293Z"}, {"lat": "44.140535", "lng": "9.672568", "elevation": "218.89999389648438", "time": "2013-09-20T09:11:13.309Z"}, {"lat": "44.14053", "lng": "9.672691", "elevation": "218.0", "time": "2013-09-20T09:11:23.294Z"}, {"lat": "44.140535", "lng": "9.672708", "elevation": "216.89999389648438", "time": "2013-09-20T09:11:24.308Z"}, {"lat": "44.140551", "lng": "9.672822", "elevation": "221.10000610351563", "time": "2013-09-20T09:11:36.304Z"}, {"lat": "44.140552", "lng": "9.672832", "elevation": "221.5", "time": "2013-09-20T09:11:37.287Z"}, {"lat": "44.140572", "lng": "9.672943", "elevation": "219.8000030517578", "time": "2013-09-20T09:11:47.311Z"}, {"lat": "44.140574", "lng": "9.672955", "elevation": "219.3000030517578", "time": "2013-09-20T09:11:48.303Z"}, {"lat": "44.140561", "lng": "9.673054", "elevation": "218.5", "time": "2013-09-20T09:12:00.309Z"}, {"lat": "44.140562", "lng": "9.673054", "elevation": "218.6999969482422", "time": "2013-09-20T09:12:01.281Z"}, {"lat": "44.140573", "lng": "9.673073", "elevation": "217.6999969482422", "time": "2013-09-20T09:12:42.300Z"}, {"lat": "44.140572", "lng": "9.673081", "elevation": "216.60000610351563", "time": "2013-09-20T09:12:43.380Z"}, {"lat": "44.140562", "lng": "9.673203", "elevation": "212.5", "time": "2013-09-20T09:12:50.300Z"}, {"lat": "44.140571", "lng": "9.673217", "elevation": "212.39999389648438", "time": "2013-09-20T09:12:51.357Z"}, {"lat": "44.140627", "lng": "9.673314", "elevation": "209.8000030517578", "time": "2013-09-20T09:12:59.363Z"}, {"lat": "44.140628", "lng": "9.673317", "elevation": "210.10000610351563", "time": "2013-09-20T09:13:00.451Z"}, {"lat": "44.140604", "lng": "9.673426", "elevation": "208.89999389648438", "time": "2013-09-20T09:13:09.349Z"}, {"lat": "44.140605", "lng": "9.673443", "elevation": "206.89999389648438", "time": "2013-09-20T09:13:10.332Z"}, {"lat": "44.140649", "lng": "9.67355", "elevation": "204.89999389648438", "time": "2013-09-20T09:13:18.320Z"}, {"lat": "44.140649", "lng": "9.673571", "elevation": "204.8000030517578", "time": "2013-09-20T09:13:19.320Z"}, {"lat": "44.140614", "lng": "9.673678", "elevation": "208.0", "time": "2013-09-20T09:13:24.313Z"}, {"lat": "44.140609", "lng": "9.673696", "elevation": "208.5", "time": "2013-09-20T09:13:25.307Z"}, {"lat": "44.140609", "lng": "9.673815", "elevation": "209.1999969482422", "time": "2013-09-20T09:13:33.316Z"}, {"lat": "44.140604", "lng": "9.673838", "elevation": "208.8000030517578", "time": "2013-09-20T09:13:34.347Z"}, {"lat": "44.140612", "lng": "9.673959", "elevation": "205.10000610351563", "time": "2013-09-20T09:13:41.294Z"}, {"lat": "44.140623", "lng": "9.673962", "elevation": "205.5", "time": "2013-09-20T09:13:42.294Z"}, {"lat": "44.140633", "lng": "9.67408", "elevation": "206.60000610351563", "time": "2013-09-20T09:13:56.327Z"}, {"lat": "44.140625", "lng": "9.674094", "elevation": "205.3000030517578", "time": "2013-09-20T09:13:57.367Z"}, {"lat": "44.14059", "lng": "9.674206", "elevation": "204.5", "time": "2013-09-20T09:14:04.403Z"}, {"lat": "44.140588", "lng": "9.674225", "elevation": "204.89999389648438", "time": "2013-09-20T09:14:05.377Z"}, {"lat": "44.140568", "lng": "9.674345", "elevation": "206.0", "time": "2013-09-20T09:14:19.314Z"}, {"lat": "44.140567", "lng": "9.674357", "elevation": "206.39999389648438", "time": "2013-09-20T09:14:20.324Z"}, {"lat": "44.140591", "lng": "9.674469", "elevation": "207.1999969482422", "time": "2013-09-20T09:14:28.305Z"}, {"lat": "44.140591", "lng": "9.674481", "elevation": "206.89999389648438", "time": "2013-09-20T09:14:29.331Z"}, {"lat": "44.140605", "lng": "9.674598", "elevation": "209.60000610351563", "time": "2013-09-20T09:14:41.301Z"}, {"lat": "44.140609", "lng": "9.674611", "elevation": "210.60000610351563", "time": "2013-09-20T09:14:42.300Z"}, {"lat": "44.140588", "lng": "9.674654", "elevation": "211.3000030517578", "time": "2013-09-20T09:14:52.377Z"}, {"lat": "44.140587", "lng": "9.674654", "elevation": "211.10000610351563", "time": "2013-09-20T09:14:53.377Z"}, {"lat": "44.140596", "lng": "9.674662", "elevation": "210.3000030517578", "time": "2013-09-20T09:15:08.326Z"}, {"lat": "44.140596", "lng": "9.674669", "elevation": "210.10000610351563", "time": "2013-09-20T09:15:09.303Z"}, {"lat": "44.140624", "lng": "9.674769", "elevation": "205.1999969482422", "time": "2013-09-20T09:15:15.295Z"}, {"lat": "44.140634", "lng": "9.67479", "elevation": "204.60000610351563", "time": "2013-09-20T09:15:16.295Z"}, {"lat": "44.140666", "lng": "9.67489", "elevation": "206.10000610351563", "time": "2013-09-20T09:15:21.336Z"}, {"lat": "44.140673", "lng": "9.67491", "elevation": "207.39999389648438", "time": "2013-09-20T09:15:22.319Z"}, {"lat": "44.140681", "lng": "9.67502", "elevation": "207.6999969482422", "time": "2013-09-20T09:15:26.308Z"}, {"lat": "44.140676", "lng": "9.675045", "elevation": "209.3000030517578", "time": "2013-09-20T09:15:27.294Z"}, {"lat": "44.140648", "lng": "9.675161", "elevation": "210.10000610351563", "time": "2013-09-20T09:15:33.304Z"}, {"lat": "44.140649", "lng": "9.675166", "elevation": "210.0", "time": "2013-09-20T09:15:34.317Z"}, {"lat": "44.140668", "lng": "9.675164", "elevation": "210.0", "time": "2013-09-20T09:15:41.295Z"}, {"lat": "44.140669", "lng": "9.675165", "elevation": "210.0", "time": "2013-09-20T09:15:42.312Z"}, {"lat": "44.140668", "lng": "9.675169", "elevation": "209.1999969482422", "time": "2013-09-20T09:16:01.315Z"}, {"lat": "44.140663", "lng": "9.675176", "elevation": "208.1999969482422", "time": "2013-09-20T09:16:02.333Z"}, {"lat": "44.140639", "lng": "9.675219", "elevation": "207.10000610351563", "time": "2013-09-20T09:16:06.354Z"}, {"lat": "44.140631", "lng": "9.675516", "elevation": "195.5", "time": "2013-09-20T09:16:40.254Z"}, {"lat": "44.1406", "lng": "9.675602", "elevation": "206.89999389648438", "time": "2013-09-20T09:16:44.253Z"}, {"lat": "44.140593", "lng": "9.675632", "elevation": "209.0", "time": "2013-09-20T09:16:45.231Z"}, {"lat": "44.140526", "lng": "9.675678", "elevation": "207.89999389648438", "time": "2013-09-20T09:16:50.222Z"}, {"lat": "44.140505", "lng": "9.675667", "elevation": "207.3000030517578", "time": "2013-09-20T09:16:51.262Z"}, {"lat": "44.140521", "lng": "9.675644", "elevation": "205.60000610351563", "time": "2013-09-20T09:16:59.234Z"}, {"lat": "44.140522", "lng": "9.675644", "elevation": "205.6999969482422", "time": "2013-09-20T09:17:00.270Z"}, {"lat": "44.140515", "lng": "9.675657", "elevation": "206.0", "time": "2013-09-20T09:17:55.237Z"}, {"lat": "44.140517", "lng": "9.675663", "elevation": "207.5", "time": "2013-09-20T09:17:56.239Z"}, {"lat": "44.14057", "lng": "9.675754", "elevation": "209.39999389648438", "time": "2013-09-20T09:18:03.245Z"}, {"lat": "44.14058", "lng": "9.675765", "elevation": "209.1999969482422", "time": "2013-09-20T09:18:04.238Z"}, {"lat": "44.140586", "lng": "9.675823", "elevation": "211.5", "time": "2013-09-20T09:18:16.245Z"}, {"lat": "44.140586", "lng": "9.675825", "elevation": "211.60000610351563", "time": "2013-09-20T09:18:17.255Z"}, {"lat": "44.140592", "lng": "9.675829", "elevation": "211.6999969482422", "time": "2013-09-20T09:18:27.265Z"}, {"lat": "44.140593", "lng": "9.675839", "elevation": "212.6999969482422", "time": "2013-09-20T09:18:28.239Z"}, {"lat": "44.140558", "lng": "9.675943", "elevation": "219.39999389648438", "time": "2013-09-20T09:18:35.254Z"}, {"lat": "44.140548", "lng": "9.675955", "elevation": "220.1999969482422", "time": "2013-09-20T09:18:36.272Z"}, {"lat": "44.140505", "lng": "9.676063", "elevation": "222.6999969482422", "time": "2013-09-20T09:18:41.262Z"}, {"lat": "44.140501", "lng": "9.676086", "elevation": "223.3000030517578", "time": "2013-09-20T09:18:42.242Z"}, {"lat": "44.140424", "lng": "9.676136", "elevation": "223.60000610351563", "time": "2013-09-20T09:18:48.329Z"}, {"lat": "44.140408", "lng": "9.676142", "elevation": "223.60000610351563", "time": "2013-09-20T09:18:49.258Z"}, {"lat": "44.14036", "lng": "9.676245", "elevation": "221.0", "time": "2013-09-20T09:18:57.256Z"}, {"lat": "44.140359", "lng": "9.67626", "elevation": "219.8000030517578", "time": "2013-09-20T09:18:58.264Z"}, {"lat": "44.140321", "lng": "9.676372", "elevation": "220.60000610351563", "time": "2013-09-20T09:19:08.242Z"}, {"lat": "44.140317", "lng": "9.676377", "elevation": "221.0", "time": "2013-09-20T09:19:09.241Z"}, {"lat": "44.140239", "lng": "9.676438", "elevation": "218.89999389648438", "time": "2013-09-20T09:19:25.242Z"}, {"lat": "44.140236", "lng": "9.676448", "elevation": "220.5", "time": "2013-09-20T09:19:26.252Z"}, {"lat": "44.140213", "lng": "9.676558", "elevation": "213.5", "time": "2013-09-20T09:19:36.244Z"}, {"lat": "44.140218", "lng": "9.67658", "elevation": "212.3000030517578", "time": "2013-09-20T09:19:37.252Z"}, {"lat": "44.140208", "lng": "9.676694", "elevation": "208.10000610351563", "time": "2013-09-20T09:19:44.317Z"}, {"lat": "44.140202", "lng": "9.676706", "elevation": "207.1999969482422", "time": "2013-09-20T09:19:45.245Z"}, {"lat": "44.140178", "lng": "9.67682", "elevation": "206.60000610351563", "time": "2013-09-20T09:19:53.350Z"}, {"lat": "44.140177", "lng": "9.676834", "elevation": "207.3000030517578", "time": "2013-09-20T09:19:54.269Z"}, {"lat": "44.140178", "lng": "9.676951", "elevation": "204.5", "time": "2013-09-20T09:20:07.247Z"}, {"lat": "44.140184", "lng": "9.676964", "elevation": "204.10000610351563", "time": "2013-09-20T09:20:08.249Z"}, {"lat": "44.140158", "lng": "9.677077", "elevation": "206.10000610351563", "time": "2013-09-20T09:20:17.254Z"}, {"lat": "44.140146", "lng": "9.677089", "elevation": "206.60000610351563", "time": "2013-09-20T09:20:18.257Z"}, {"lat": "44.140076", "lng": "9.677164", "elevation": "208.10000610351563", "time": "2013-09-20T09:20:24.263Z"}, {"lat": "44.140066", "lng": "9.677187", "elevation": "207.3000030517578", "time": "2013-09-20T09:20:25.240Z"}, {"lat": "44.140011", "lng": "9.677273", "elevation": "208.39999389648438", "time": "2013-09-20T09:20:31.239Z"}, {"lat": "44.140003", "lng": "9.677287", "elevation": "208.3000030517578", "time": "2013-09-20T09:20:32.354Z"}, {"lat": "44.139937", "lng": "9.677346", "elevation": "209.39999389648438", "time": "2013-09-20T09:20:38.400Z"}, {"lat": "44.139926", "lng": "9.677353", "elevation": "210.0", "time": "2013-09-20T09:20:39.352Z"}, {"lat": "44.139849", "lng": "9.677395", "elevation": "208.39999389648438", "time": "2013-09-20T09:20:46.251Z"}, {"lat": "44.139841", "lng": "9.677402", "elevation": "210.39999389648438", "time": "2013-09-20T09:20:47.272Z"}, {"lat": "44.13977", "lng": "9.677457", "elevation": "211.60000610351563", "time": "2013-09-20T09:20:54.275Z"}, {"lat": "44.139763", "lng": "9.677472", "elevation": "212.0", "time": "2013-09-20T09:20:55.243Z"}, {"lat": "44.139711", "lng": "9.677569", "elevation": "214.0", "time": "2013-09-20T09:21:04.245Z"}, {"lat": "44.139705", "lng": "9.677577", "elevation": "213.60000610351563", "time": "2013-09-20T09:21:05.251Z"}, {"lat": "44.139645", "lng": "9.677534", "elevation": "217.1999969482422", "time": "2013-09-20T09:21:20.247Z"}, {"lat": "44.139644", "lng": "9.677533", "elevation": "217.1999969482422", "time": "2013-09-20T09:21:21.252Z"}, {"lat": "44.139635", "lng": "9.677543", "elevation": "216.89999389648438", "time": "2013-09-20T09:21:30.277Z"}, {"lat": "44.139631", "lng": "9.677547", "elevation": "217.10000610351563", "time": "2013-09-20T09:21:31.253Z"}, {"lat": "44.139551", "lng": "9.677589", "elevation": "218.8000030517578", "time": "2013-09-20T09:21:35.259Z"}, {"lat": "44.139524", "lng": "9.67759", "elevation": "218.60000610351563", "time": "2013-09-20T09:21:36.248Z"}, {"lat": "44.139454", "lng": "9.677585", "elevation": "219.10000610351563", "time": "2013-09-20T09:21:39.283Z"}, {"lat": "44.139433", "lng": "9.677585", "elevation": "218.89999389648438", "time": "2013-09-20T09:21:40.253Z"}, {"lat": "44.13935", "lng": "9.677614", "elevation": "219.1999969482422", "time": "2013-09-20T09:21:44.252Z"}, {"lat": "44.139334", "lng": "9.677625", "elevation": "218.60000610351563", "time": "2013-09-20T09:21:45.262Z"}, {"lat": "44.139269", "lng": "9.677702", "elevation": "216.5", "time": "2013-09-20T09:21:49.284Z"}, {"lat": "44.139256", "lng": "9.677719", "elevation": "214.89999389648438", "time": "2013-09-20T09:21:50.277Z"}, {"lat": "44.13917", "lng": "9.677756", "elevation": "220.89999389648438", "time": "2013-09-20T09:21:57.255Z"}, {"lat": "44.139157", "lng": "9.677764", "elevation": "221.5", "time": "2013-09-20T09:21:58.270Z"}, {"lat": "44.13907", "lng": "9.677779", "elevation": "221.5", "time": "2013-09-20T09:22:06.319Z"}, {"lat": "44.139058", "lng": "9.677776", "elevation": "220.6999969482422", "time": "2013-09-20T09:22:07.350Z"}, {"lat": "44.139001", "lng": "9.677871", "elevation": "224.0", "time": "2013-09-20T09:22:15.265Z"}, {"lat": "44.138985", "lng": "9.677885", "elevation": "225.0", "time": "2013-09-20T09:22:16.321Z"}, {"lat": "44.138915", "lng": "9.677936", "elevation": "227.10000610351563", "time": "2013-09-20T09:22:20.255Z"}, {"lat": "44.138896", "lng": "9.677943", "elevation": "227.39999389648438", "time": "2013-09-20T09:22:21.280Z"}, {"lat": "44.138807", "lng": "9.677963", "elevation": "228.60000610351563", "time": "2013-09-20T09:22:27.258Z"}, {"lat": "44.138795", "lng": "9.677966", "elevation": "228.5", "time": "2013-09-20T09:22:28.288Z"}, {"lat": "44.13872", "lng": "9.677989", "elevation": "229.60000610351563", "time": "2013-09-20T09:22:33.282Z"}, {"lat": "44.138702", "lng": "9.677992", "elevation": "232.39999389648438", "time": "2013-09-20T09:22:34.279Z"}, {"lat": "44.138622", "lng": "9.677985", "elevation": "231.39999389648438", "time": "2013-09-20T09:22:38.282Z"}, {"lat": "44.138604", "lng": "9.677982", "elevation": "232.10000610351563", "time": "2013-09-20T09:22:39.282Z"}, {"lat": "44.138516", "lng": "9.677967", "elevation": "234.60000610351563", "time": "2013-09-20T09:22:45.267Z"}, {"lat": "44.138508", "lng": "9.677969", "elevation": "236.3000030517578", "time": "2013-09-20T09:22:46.285Z"}, {"lat": "44.138439", "lng": "9.678037", "elevation": "238.89999389648438", "time": "2013-09-20T09:22:54.343Z"}, {"lat": "44.138428", "lng": "9.678039", "elevation": "240.1999969482422", "time": "2013-09-20T09:22:55.326Z"}, {"lat": "44.138345", "lng": "9.678053", "elevation": "235.39999389648438", "time": "2013-09-20T09:23:07.297Z"}, {"lat": "44.138338", "lng": "9.678057", "elevation": "236.39999389648438", "time": "2013-09-20T09:23:08.282Z"}, {"lat": "44.138254", "lng": "9.678067", "elevation": "240.89999389648438", "time": "2013-09-20T09:23:17.285Z"}, {"lat": "44.138247", "lng": "9.678071", "elevation": "240.8000030517578", "time": "2013-09-20T09:23:18.359Z"}, {"lat": "44.138243", "lng": "9.678189", "elevation": "224.6999969482422", "time": "2013-09-20T09:23:38.272Z"}, {"lat": "44.138243", "lng": "9.678197", "elevation": "224.5", "time": "2013-09-20T09:23:39.280Z"}, {"lat": "44.138248", "lng": "9.678206", "elevation": "223.8000030517578", "time": "2013-09-20T09:23:43.366Z"}, {"lat": "44.138248", "lng": "9.678205", "elevation": "224.8000030517578", "time": "2013-09-20T09:23:44.326Z"}, {"lat": "44.13825", "lng": "9.678205", "elevation": "223.10000610351563", "time": "2013-09-20T09:23:46.278Z"}, {"lat": "44.138254", "lng": "9.678206", "elevation": "222.89999389648438", "time": "2013-09-20T09:23:47.294Z"}, {"lat": "44.138273", "lng": "9.678225", "elevation": "219.39999389648438", "time": "2013-09-20T09:23:55.289Z"}, {"lat": "44.138273", "lng": "9.678226", "elevation": "219.3000030517578", "time": "2013-09-20T09:23:56.295Z"}, {"lat": "44.138272", "lng": "9.678229", "elevation": "219.0", "time": "2013-09-20T09:23:59.366Z"}, {"lat": "44.138272", "lng": "9.678235", "elevation": "216.6999969482422", "time": "2013-09-20T09:24:00.358Z"}, {"lat": "44.13827", "lng": "9.678347", "elevation": "205.6999969482422", "time": "2013-09-20T09:24:06.311Z"}, {"lat": "44.138268", "lng": "9.678371", "elevation": "204.8000030517578", "time": "2013-09-20T09:24:07.289Z"}, {"lat": "44.138286", "lng": "9.678438", "elevation": "204.8000030517578", "time": "2013-09-20T09:24:17.283Z"}, {"lat": "44.138286", "lng": "9.678439", "elevation": "204.5", "time": "2013-09-20T09:24:18.321Z"}, {"lat": "44.138282", "lng": "9.678456", "elevation": "202.89999389648438", "time": "2013-09-20T09:24:32.284Z"}, {"lat": "44.13828", "lng": "9.678465", "elevation": "202.3000030517578", "time": "2013-09-20T09:24:33.275Z"}, {"lat": "44.138262", "lng": "9.678573", "elevation": "197.1999969482422", "time": "2013-09-20T09:24:39.282Z"}, {"lat": "44.138254", "lng": "9.678589", "elevation": "197.6999969482422", "time": "2013-09-20T09:24:40.350Z"}, {"lat": "44.1382", "lng": "9.678683", "elevation": "196.39999389648438", "time": "2013-09-20T09:24:52.299Z"}, {"lat": "44.138196", "lng": "9.678692", "elevation": "195.0", "time": "2013-09-20T09:24:53.310Z"}, {"lat": "44.138166", "lng": "9.678792", "elevation": "196.10000610351563", "time": "2013-09-20T09:25:00.368Z"}, {"lat": "44.138159", "lng": "9.678807", "elevation": "196.3000030517578", "time": "2013-09-20T09:25:01.268Z"}, {"lat": "44.138194", "lng": "9.678917", "elevation": "198.6999969482422", "time": "2013-09-20T09:25:12.278Z"}, {"lat": "44.138197", "lng": "9.678928", "elevation": "198.8000030517578", "time": "2013-09-20T09:25:13.270Z"}, {"lat": "44.138226", "lng": "9.678961", "elevation": "197.39999389648438", "time": "2013-09-20T09:25:22.286Z"}, {"lat": "44.138225", "lng": "9.678964", "elevation": "197.1999969482422", "time": "2013-09-20T09:25:23.295Z"}, {"lat": "44.13823", "lng": "9.678985", "elevation": "194.39999389648438", "time": "2013-09-20T09:25:41.296Z"}, {"lat": "44.138232", "lng": "9.678992", "elevation": "194.6999969482422", "time": "2013-09-20T09:25:42.279Z"}, {"lat": "44.138286", "lng": "9.679026", "elevation": "190.8000030517578", "time": "2013-09-20T09:25:53.328Z"}, {"lat": "44.138286", "lng": "9.679026", "elevation": "190.5", "time": "2013-09-20T09:25:54.291Z"}, {"lat": "44.138286", "lng": "9.679034", "elevation": "191.0", "time": "2013-09-20T09:25:58.330Z"}, {"lat": "44.138288", "lng": "9.679045", "elevation": "190.1999969482422", "time": "2013-09-20T09:25:59.291Z"}, {"lat": "44.138312", "lng": "9.679158", "elevation": "185.89999389648438", "time": "2013-09-20T09:26:07.275Z"}, {"lat": "44.138313", "lng": "9.679171", "elevation": "184.6999969482422", "time": "2013-09-20T09:26:08.298Z"}, {"lat": "44.138306", "lng": "9.679292", "elevation": "183.10000610351563", "time": "2013-09-20T09:26:21.294Z"}, {"lat": "44.138303", "lng": "9.679298", "elevation": "183.39999389648438", "time": "2013-09-20T09:26:22.282Z"}, {"lat": "44.138285", "lng": "9.679396", "elevation": "176.60000610351563", "time": "2013-09-20T09:26:40.299Z"}, {"lat": "44.138285", "lng": "9.679395", "elevation": "176.6999969482422", "time": "2013-09-20T09:26:41.292Z"}, {"lat": "44.138283", "lng": "9.679398", "elevation": "176.60000610351563", "time": "2013-09-20T09:26:43.291Z"}, {"lat": "44.138279", "lng": "9.679403", "elevation": "176.3000030517578", "time": "2013-09-20T09:26:44.301Z"}, {"lat": "44.138229", "lng": "9.679493", "elevation": "172.5", "time": "2013-09-20T09:26:55.358Z"}, {"lat": "44.138228", "lng": "9.679506", "elevation": "172.89999389648438", "time": "2013-09-20T09:26:56.326Z"}, {"lat": "44.138213", "lng": "9.679581", "elevation": "172.60000610351563", "time": "2013-09-20T09:27:06.325Z"}, {"lat": "44.138215", "lng": "9.679582", "elevation": "172.6999969482422", "time": "2013-09-20T09:27:07.294Z"}, {"lat": "44.138199", "lng": "9.679572", "elevation": "172.0", "time": "2013-09-20T09:27:23.288Z"}, {"lat": "44.138195", "lng": "9.679574", "elevation": "172.1999969482422", "time": "2013-09-20T09:27:24.287Z"}, {"lat": "44.138114", "lng": "9.679621", "elevation": "169.5", "time": "2013-09-20T09:27:32.315Z"}, {"lat": "44.138106", "lng": "9.679629", "elevation": "170.60000610351563", "time": "2013-09-20T09:27:33.290Z"}, {"lat": "44.138108", "lng": "9.67968", "elevation": "168.1999969482422", "time": "2013-09-20T09:27:41.305Z"}, {"lat": "44.138107", "lng": "9.679679", "elevation": "168.1999969482422", "time": "2013-09-20T09:27:42.305Z"}, {"lat": "44.138102", "lng": "9.679695", "elevation": "165.39999389648438", "time": "2013-09-20T09:27:54.314Z"}, {"lat": "44.138099", "lng": "9.6797", "elevation": "165.5", "time": "2013-09-20T09:27:55.296Z"}, {"lat": "44.138052", "lng": "9.679789", "elevation": "166.0", "time": "2013-09-20T09:28:04.304Z"}, {"lat": "44.138043", "lng": "9.679801", "elevation": "166.60000610351563", "time": "2013-09-20T09:28:05.322Z"}, {"lat": "44.137982", "lng": "9.679877", "elevation": "163.5", "time": "2013-09-20T09:28:14.289Z"}, {"lat": "44.137973", "lng": "9.679881", "elevation": "163.6999969482422", "time": "2013-09-20T09:28:15.376Z"}, {"lat": "44.137898", "lng": "9.679945", "elevation": "163.1999969482422", "time": "2013-09-20T09:28:22.307Z"}, {"lat": "44.137892", "lng": "9.679957", "elevation": "163.10000610351563", "time": "2013-09-20T09:28:23.299Z"}, {"lat": "44.137811", "lng": "9.680002", "elevation": "161.0", "time": "2013-09-20T09:28:33.301Z"}, {"lat": "44.137806", "lng": "9.680006", "elevation": "161.6999969482422", "time": "2013-09-20T09:28:34.301Z"}, {"lat": "44.137785", "lng": "9.680024", "elevation": "160.6999969482422", "time": "2013-09-20T09:28:40.318Z"}, {"lat": "44.137789", "lng": "9.680023", "elevation": "161.10000610351563", "time": "2013-09-20T09:28:41.318Z"}, {"lat": "44.137792", "lng": "9.680034", "elevation": "162.5", "time": "2013-09-20T09:28:49.325Z"}, {"lat": "44.137787", "lng": "9.680036", "elevation": "162.1999969482422", "time": "2013-09-20T09:28:50.318Z"}, {"lat": "44.137728", "lng": "9.680109", "elevation": "156.8000030517578", "time": "2013-09-20T09:28:58.302Z"}, {"lat": "44.137718", "lng": "9.680118", "elevation": "155.6999969482422", "time": "2013-09-20T09:28:59.309Z"}, {"lat": "44.13766", "lng": "9.680206", "elevation": "153.60000610351563", "time": "2013-09-20T09:29:07.310Z"}, {"lat": "44.137658", "lng": "9.680217", "elevation": "152.39999389648438", "time": "2013-09-20T09:29:08.311Z"}, {"lat": "44.137629", "lng": "9.68033", "elevation": "151.39999389648438", "time": "2013-09-20T09:29:25.294Z"}, {"lat": "44.137629", "lng": "9.680338", "elevation": "151.1999969482422", "time": "2013-09-20T09:29:26.322Z"}, {"lat": "44.137663", "lng": "9.680357", "elevation": "148.1999969482422", "time": "2013-09-20T09:29:35.304Z"}, {"lat": "44.137662", "lng": "9.680357", "elevation": "148.1999969482422", "time": "2013-09-20T09:29:36.298Z"}, {"lat": "44.137657", "lng": "9.680357", "elevation": "147.8000030517578", "time": "2013-09-20T09:29:38.260Z"}, {"lat": "44.137652", "lng": "9.680356", "elevation": "147.89999389648438", "time": "2013-09-20T09:29:38.294Z"}, {"lat": "44.137566", "lng": "9.680328", "elevation": "147.89999389648438", "time": "2013-09-20T09:29:49.322Z"}, {"lat": "44.137562", "lng": "9.680335", "elevation": "148.3000030517578", "time": "2013-09-20T09:29:50.307Z"}, {"lat": "44.137504", "lng": "9.680421", "elevation": "146.0", "time": "2013-09-20T09:30:01.319Z"}, {"lat": "44.137495", "lng": "9.680429", "elevation": "146.8000030517578", "time": "2013-09-20T09:30:02.322Z"}, {"lat": "44.137471", "lng": "9.68045", "elevation": "142.1999969482422", "time": "2013-09-20T09:30:08.322Z"}, {"lat": "44.137475", "lng": "9.680451", "elevation": "142.39999389648438", "time": "2013-09-20T09:30:09.305Z"}, {"lat": "44.13748", "lng": "9.68045", "elevation": "142.60000610351563", "time": "2013-09-20T09:30:10.322Z"}, {"lat": "44.137481", "lng": "9.68045", "elevation": "142.60000610351563", "time": "2013-09-20T09:30:11.308Z"}, {"lat": "44.137477", "lng": "9.680446", "elevation": "142.8000030517578", "time": "2013-09-20T09:30:13.300Z"}, {"lat": "44.137471", "lng": "9.680443", "elevation": "145.0", "time": "2013-09-20T09:30:14.308Z"}, {"lat": "44.137448", "lng": "9.680447", "elevation": "144.60000610351563", "time": "2013-09-20T09:30:35.325Z"}, {"lat": "44.137448", "lng": "9.680446", "elevation": "144.5", "time": "2013-09-20T09:30:36.319Z"}, {"lat": "44.137441", "lng": "9.680445", "elevation": "144.10000610351563", "time": "2013-09-20T09:30:41.373Z"}, {"lat": "44.137436", "lng": "9.680444", "elevation": "143.6999969482422", "time": "2013-09-20T09:30:42.333Z"}, {"lat": "44.137362", "lng": "9.680377", "elevation": "140.89999389648438", "time": "2013-09-20T09:30:58.336Z"}, {"lat": "44.137354", "lng": "9.680371", "elevation": "141.89999389648438", "time": "2013-09-20T09:30:59.326Z"}, {"lat": "44.137318", "lng": "9.680375", "elevation": "141.3000030517578", "time": "2013-09-20T09:31:07.407Z"}, {"lat": "44.137319", "lng": "9.680376", "elevation": "141.1999969482422", "time": "2013-09-20T09:31:08.446Z"}, {"lat": "44.137316", "lng": "9.680386", "elevation": "140.6999969482422", "time": "2013-09-20T09:31:12.376Z"}, {"lat": "44.137313", "lng": "9.680391", "elevation": "140.1999969482422", "time": "2013-09-20T09:31:13.304Z"}, {"lat": "44.137241", "lng": "9.680448", "elevation": "140.5", "time": "2013-09-20T09:31:22.335Z"}, {"lat": "44.137234", "lng": "9.680452", "elevation": "140.10000610351563", "time": "2013-09-20T09:31:23.426Z"}, {"lat": "44.137146", "lng": "9.680462", "elevation": "139.60000610351563", "time": "2013-09-20T09:31:38.435Z"}, {"lat": "44.137138", "lng": "9.680468", "elevation": "137.39999389648438", "time": "2013-09-20T09:31:39.355Z"}, {"lat": "44.137067", "lng": "9.680541", "elevation": "134.8000030517578", "time": "2013-09-20T09:31:48.350Z"}, {"lat": "44.137056", "lng": "9.680546", "elevation": "135.1999969482422", "time": "2013-09-20T09:31:48.378Z"}, {"lat": "44.136989", "lng": "9.680622", "elevation": "132.10000610351563", "time": "2013-09-20T09:31:58.072Z"}, {"lat": "44.136983", "lng": "9.680626", "elevation": "131.8000030517578", "time": "2013-09-20T09:31:58.411Z"}, {"lat": "44.13691", "lng": "9.680685", "elevation": "122.5", "time": "2013-09-20T09:32:14.311Z"}, {"lat": "44.1369", "lng": "9.680693", "elevation": "122.0999984741211", "time": "2013-09-20T09:32:15.324Z"}, {"lat": "44.136825", "lng": "9.680753", "elevation": "122.30000305175781", "time": "2013-09-20T09:32:24.311Z"}, {"lat": "44.13682", "lng": "9.680757", "elevation": "122.4000015258789", "time": "2013-09-20T09:32:25.318Z"}, {"lat": "44.13679", "lng": "9.680869", "elevation": "118.9000015258789", "time": "2013-09-20T09:32:35.310Z"}, {"lat": "44.136793", "lng": "9.680883", "elevation": "117.69999694824219", "time": "2013-09-20T09:32:36.325Z"}, {"lat": "44.136808", "lng": "9.680865", "elevation": "119.30000305175781", "time": "2013-09-20T09:32:43.487Z"}, {"lat": "44.136807", "lng": "9.680862", "elevation": "119.4000015258789", "time": "2013-09-20T09:32:44.399Z"}, {"lat": "44.136809", "lng": "9.680865", "elevation": "118.0", "time": "2013-09-20T09:32:46.322Z"}, {"lat": "44.136816", "lng": "9.680872", "elevation": "116.0", "time": "2013-09-20T09:32:47.375Z"}, {"lat": "44.136808", "lng": "9.680989", "elevation": "115.19999694824219", "time": "2013-09-20T09:33:01.335Z"}, {"lat": "44.136796", "lng": "9.680997", "elevation": "115.80000305175781", "time": "2013-09-20T09:33:02.329Z"}, {"lat": "44.136744", "lng": "9.681017", "elevation": "122.0", "time": "2013-09-20T09:33:15.387Z"}, {"lat": "44.136743", "lng": "9.681018", "elevation": "122.0", "time": "2013-09-20T09:33:16.440Z"}, {"lat": "44.136747", "lng": "9.681026", "elevation": "122.0", "time": "2013-09-20T09:33:34.434Z"}, {"lat": "44.136746", "lng": "9.681032", "elevation": "121.69999694824219", "time": "2013-09-20T09:33:35.447Z"}, {"lat": "44.136743", "lng": "9.681041", "elevation": "121.80000305175781", "time": "2013-09-20T09:33:38.809Z"}, {"lat": "44.136743", "lng": "9.681042", "elevation": "121.5999984741211", "time": "2013-09-20T09:33:39.348Z"}, {"lat": "44.136738", "lng": "9.681053", "elevation": "121.0999984741211", "time": "2013-09-20T09:33:55.372Z"}, {"lat": "44.136735", "lng": "9.68106", "elevation": "120.5", "time": "2013-09-20T09:33:56.339Z"}, {"lat": "44.13669", "lng": "9.681147", "elevation": "117.0", "time": "2013-09-20T09:34:09.499Z"}, {"lat": "44.136683", "lng": "9.681162", "elevation": "117.0", "time": "2013-09-20T09:34:10.421Z"}, {"lat": "44.136632", "lng": "9.681262", "elevation": "109.9000015258789", "time": "2013-09-20T09:34:18.314Z"}, {"lat": "44.13663", "lng": "9.681274", "elevation": "110.19999694824219", "time": "2013-09-20T09:34:18.356Z"}, {"lat": "44.136596", "lng": "9.681383", "elevation": "107.5", "time": "2013-09-20T09:34:43.441Z"}, {"lat": "44.136597", "lng": "9.681385", "elevation": "106.80000305175781", "time": "2013-09-20T09:34:43.473Z"}, {"lat": "44.136606", "lng": "9.681394", "elevation": "104.80000305175781", "time": "2013-09-20T09:34:48.412Z"}, {"lat": "44.136609", "lng": "9.681397", "elevation": "102.30000305175781", "time": "2013-09-20T09:34:48.444Z"}, {"lat": "44.13664", "lng": "9.681501", "elevation": "102.80000305175781", "time": "2013-09-20T09:35:01.438Z"}, {"lat": "44.13664", "lng": "9.6815", "elevation": "102.9000015258789", "time": "2013-09-20T09:35:02.371Z"}, {"lat": "44.13665", "lng": "9.681504", "elevation": "103.0", "time": "2013-09-20T09:35:31.443Z"}, {"lat": "44.13665", "lng": "9.681513", "elevation": "101.4000015258789", "time": "2013-09-20T09:35:32.341Z"}, {"lat": "44.13667", "lng": "9.681625", "elevation": "97.5", "time": "2013-09-20T09:35:38.483Z"}, {"lat": "44.136679", "lng": "9.681646", "elevation": "97.30000305175781", "time": "2013-09-20T09:35:39.341Z"}, {"lat": "44.13673", "lng": "9.681748", "elevation": "92.80000305175781", "time": "2013-09-20T09:35:50.359Z"}, {"lat": "44.136739", "lng": "9.681759", "elevation": "92.5999984741211", "time": "2013-09-20T09:35:51.437Z"}, {"lat": "44.136706", "lng": "9.681826", "elevation": "94.80000305175781", "time": "2013-09-20T09:36:08.146Z"}, {"lat": "44.136707", "lng": "9.681825", "elevation": "94.5", "time": "2013-09-20T09:36:08.390Z"}, {"lat": "44.136707", "lng": "9.681837", "elevation": "94.5", "time": "2013-09-20T09:36:39.352Z"}, {"lat": "44.136704", "lng": "9.681846", "elevation": "94.19999694824219", "time": "2013-09-20T09:36:40.378Z"}, {"lat": "44.136751", "lng": "9.68195", "elevation": "92.9000015258789", "time": "2013-09-20T09:36:48.422Z"}, {"lat": "44.136759", "lng": "9.681955", "elevation": "92.80000305175781", "time": "2013-09-20T09:36:49.442Z"}, {"lat": "44.136748", "lng": "9.682016", "elevation": "91.69999694824219", "time": "2013-09-20T09:37:00.429Z"}, {"lat": "44.136748", "lng": "9.682016", "elevation": "91.80000305175781", "time": "2013-09-20T09:37:01.458Z"}, {"lat": "44.136742", "lng": "9.682022", "elevation": "90.19999694824219", "time": "2013-09-20T09:37:20.330Z"}, {"lat": "44.136735", "lng": "9.68226", "elevation": "91.80000305175781", "time": "2013-09-20T09:37:38.350Z"}, {"lat": "44.136665", "lng": "9.682325", "elevation": "95.69999694824219", "time": "2013-09-20T09:37:52.361Z"}, {"lat": "44.136658", "lng": "9.682328", "elevation": "96.5", "time": "2013-09-20T09:37:53.354Z"}, {"lat": "44.136652", "lng": "9.682356", "elevation": "96.80000305175781", "time": "2013-09-20T09:38:01.402Z"}, {"lat": "44.136653", "lng": "9.682355", "elevation": "96.5", "time": "2013-09-20T09:38:02.353Z"}, {"lat": "44.136645", "lng": "9.682335", "elevation": "96.80000305175781", "time": "2013-09-20T09:38:21.350Z"}, {"lat": "44.136642", "lng": "9.682327", "elevation": "96.9000015258789", "time": "2013-09-20T09:38:22.352Z"}, {"lat": "44.136583", "lng": "9.682238", "elevation": "96.9000015258789", "time": "2013-09-20T09:38:29.385Z"}, {"lat": "44.136569", "lng": "9.682232", "elevation": "97.4000015258789", "time": "2013-09-20T09:38:30.362Z"}, {"lat": "44.136498", "lng": "9.682229", "elevation": "98.5", "time": "2013-09-20T09:38:34.355Z"}, {"lat": "44.136478", "lng": "9.68223", "elevation": "98.5999984741211", "time": "2013-09-20T09:38:35.346Z"}, {"lat": "44.136424", "lng": "9.682296", "elevation": "96.19999694824219", "time": "2013-09-20T09:38:50.350Z"}, {"lat": "44.136424", "lng": "9.682297", "elevation": "96.0999984741211", "time": "2013-09-20T09:38:51.347Z"}, {"lat": "44.136423", "lng": "9.682303", "elevation": "97.5999984741211", "time": "2013-09-20T09:40:53.088Z"}, {"lat": "44.136423", "lng": "9.682312", "elevation": "98.19999694824219", "time": "2013-09-20T09:40:53.412Z"}, {"lat": "44.1364", "lng": "9.682417", "elevation": "94.5", "time": "2013-09-20T09:40:58.346Z"}, {"lat": "44.136392", "lng": "9.682442", "elevation": "93.69999694824219", "time": "2013-09-20T09:40:59.357Z"}, {"lat": "44.136363", "lng": "9.682493", "elevation": "92.9000015258789", "time": "2013-09-20T09:41:02.357Z"}, {"lat": "44.136197", "lng": "9.682553", "elevation": "95.30000305175781", "time": "2013-09-20T09:41:56.360Z"}, {"lat": "44.136195", "lng": "9.682557", "elevation": "95.19999694824219", "time": "2013-09-20T09:41:57.381Z"}, {"lat": "44.136195", "lng": "9.682557", "elevation": "95.19999694824219", "time": "2013-09-20T09:41:58.201Z"}, {"lat": "44.136191", "lng": "9.682562", "elevation": "95.0999984741211", "time": "2013-09-20T09:41:58.415Z"}, {"lat": "44.136141", "lng": "9.682635", "elevation": "95.5", "time": "2013-09-20T09:42:01.418Z"}, {"lat": "44.136117", "lng": "9.68266", "elevation": "95.30000305175781", "time": "2013-09-20T09:42:02.411Z"}, {"lat": "44.136062", "lng": "9.682709", "elevation": "95.30000305175781", "time": "2013-09-20T09:42:04.388Z"}, {"lat": "44.136034", "lng": "9.682733", "elevation": "94.30000305175781", "time": "2013-09-20T09:42:05.350Z"}, {"lat": "44.135954", "lng": "9.682785", "elevation": "94.30000305175781", "time": "2013-09-20T09:42:08.350Z"}, {"lat": "44.135928", "lng": "9.682794", "elevation": "94.19999694824219", "time": "2013-09-20T09:42:09.434Z"}, {"lat": "44.135858", "lng": "9.682798", "elevation": "95.80000305175781", "time": "2013-09-20T09:42:17.378Z"}, {"lat": "44.135863", "lng": "9.682797", "elevation": "95.5999984741211", "time": "2013-09-20T09:42:18.394Z"}, {"lat": "44.135866", "lng": "9.682803", "elevation": "95.19999694824219", "time": "2013-09-20T09:42:27.370Z"}, {"lat": "44.135862", "lng": "9.682808", "elevation": "93.5999984741211", "time": "2013-09-20T09:42:28.402Z"}, {"lat": "44.135818", "lng": "9.682786", "elevation": "88.5999984741211", "time": "2013-09-20T09:42:38.527Z"}, {"lat": "44.135817", "lng": "9.682786", "elevation": "88.5999984741211", "time": "2013-09-20T09:42:39.437Z"}, {"lat": "44.135806", "lng": "9.682802", "elevation": "87.69999694824219", "time": "2013-09-20T09:42:49.407Z"}, {"lat": "44.1358", "lng": "9.682803", "elevation": "87.19999694824219", "time": "2013-09-20T09:42:50.384Z"}, {"lat": "44.135722", "lng": "9.682807", "elevation": "87.69999694824219", "time": "2013-09-20T09:42:55.448Z"}, {"lat": "44.135702", "lng": "9.682807", "elevation": "87.4000015258789", "time": "2013-09-20T09:42:56.430Z"}, {"lat": "44.13562", "lng": "9.682857", "elevation": "82.0", "time": "2013-09-20T09:43:03.346Z"}, {"lat": "44.135619", "lng": "9.682872", "elevation": "81.5", "time": "2013-09-20T09:43:03.379Z"}, {"lat": "44.13562", "lng": "9.682894", "elevation": "81.69999694824219", "time": "2013-09-20T09:43:08.423Z"}, {"lat": "44.135619", "lng": "9.68289", "elevation": "82.0", "time": "2013-09-20T09:43:09.374Z"}, {"lat": "44.135616", "lng": "9.682886", "elevation": "82.19999694824219", "time": "2013-09-20T09:43:10.438Z"}, {"lat": "44.135614", "lng": "9.682881", "elevation": "82.19999694824219", "time": "2013-09-20T09:43:11.446Z"}, {"lat": "44.135599", "lng": "9.682876", "elevation": "82.0999984741211", "time": "2013-09-20T09:43:17.377Z"}, {"lat": "44.135598", "lng": "9.682876", "elevation": "82.0999984741211", "time": "2013-09-20T09:43:18.486Z"}, {"lat": "44.135599", "lng": "9.682874", "elevation": "82.30000305175781", "time": "2013-09-20T09:44:03.157Z"}, {"lat": "44.135593", "lng": "9.682876", "elevation": "82.30000305175781", "time": "2013-09-20T09:44:03.443Z"}, {"lat": "44.135517", "lng": "9.682874", "elevation": "82.30000305175781", "time": "2013-09-20T09:44:09.412Z"}, {"lat": "44.1355", "lng": "9.682868", "elevation": "82.19999694824219", "time": "2013-09-20T09:44:10.395Z"}, {"lat": "44.135417", "lng": "9.682881", "elevation": "84.5999984741211", "time": "2013-09-20T09:44:14.495Z"}, {"lat": "44.135402", "lng": "9.682891", "elevation": "85.0", "time": "2013-09-20T09:44:15.483Z"}, {"lat": "44.135328", "lng": "9.682879", "elevation": "83.30000305175781", "time": "2013-09-20T09:44:28.361Z"}, {"lat": "44.135333", "lng": "9.682882", "elevation": "83.30000305175781", "time": "2013-09-20T09:44:29.374Z"}, {"lat": "44.135338", "lng": "9.682885", "elevation": "83.30000305175781", "time": "2013-09-20T09:44:30.412Z"}, {"lat": "44.135343", "lng": "9.682889", "elevation": "83.30000305175781", "time": "2013-09-20T09:44:31.399Z"}, {"lat": "44.135358", "lng": "9.682907", "elevation": "83.30000305175781", "time": "2013-09-20T09:44:37.373Z"}, {"lat": "44.134955", "lng": "9.683342", "elevation": "82.30000305175781", "time": "2013-09-20T09:45:28.402Z"}, {"lat": "44.135033", "lng": "9.683385", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:33.739Z"}, {"lat": "44.135044", "lng": "9.683382", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:34.380Z"}, {"lat": "44.135052", "lng": "9.68337", "elevation": "82.19999694824219", "time": "2013-09-20T09:45:39.418Z"}, {"lat": "44.135049", "lng": "9.683368", "elevation": "82.19999694824219", "time": "2013-09-20T09:45:40.395Z"}, {"lat": "44.135041", "lng": "9.683368", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:42.379Z"}, {"lat": "44.135027", "lng": "9.683364", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:43.366Z"}, {"lat": "44.134971", "lng": "9.683342", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:53.383Z"}, {"lat": "44.134971", "lng": "9.683342", "elevation": "82.0999984741211", "time": "2013-09-20T09:45:54.394Z"}, {"lat": "44.134975", "lng": "9.683344", "elevation": "82.0999984741211", "time": "2013-09-20T09:46:03.372Z"}, {"lat": "44.134663", "lng": "9.685106", "elevation": "53.70000076293945", "time": "2013-09-20T11:43:28.836Z"}, {"lat": "44.134807", "lng": "9.685014", "elevation": "31.0", "time": "2013-09-20T11:43:29.744Z"}, {"lat": "44.134857", "lng": "9.68503", "elevation": "39.400001525878906", "time": "2013-09-20T11:43:30.744Z"}, {"lat": "44.134907", "lng": "9.685014", "elevation": "22.299999237060547", "time": "2013-09-20T11:43:31.765Z"}, {"lat": "44.134884", "lng": "9.685022", "elevation": "36.20000076293945", "time": "2013-09-20T11:43:32.744Z"}, {"lat": "44.134806", "lng": "9.684967", "elevation": "65.0", "time": "2013-09-20T11:43:33.745Z"}, {"lat": "44.134806", "lng": "9.684967", "elevation": "65.0", "time": "2013-09-20T11:43:33.845Z"}, {"lat": "44.134683", "lng": "9.685084", "elevation": "65.30000305175781", "time": "2013-09-20T11:43:34.761Z"}, {"lat": "44.134762", "lng": "9.685107", "elevation": "42.70000076293945", "time": "2013-09-20T11:43:35.764Z"}, {"lat": "44.134857", "lng": "9.685136", "elevation": "41.099998474121094", "time": "2013-09-20T11:43:36.749Z"}, {"lat": "44.134875", "lng": "9.685044", "elevation": "59.5", "time": "2013-09-20T11:43:40.751Z"}, {"lat": "44.134842", "lng": "9.68501", "elevation": "51.5", "time": "2013-09-20T11:43:41.759Z"}, {"lat": "44.134779", "lng": "9.684951", "elevation": "56.0", "time": "2013-09-20T11:43:44.756Z"}, {"lat": "44.13472", "lng": "9.684971", "elevation": "65.19999694824219", "time": "2013-09-20T11:43:45.758Z"}, {"lat": "44.13465", "lng": "9.684897", "elevation": "68.5", "time": "2013-09-20T11:44:01.151Z"}, {"lat": "44.134646", "lng": "9.684896", "elevation": "69.30000305175781", "time": "2013-09-20T11:44:02.144Z"}, {"lat": "44.134566", "lng": "9.684845", "elevation": "69.19999694824219", "time": "2013-09-20T11:44:31.143Z"}, {"lat": "44.134553", "lng": "9.684842", "elevation": "69.0999984741211", "time": "2013-09-20T11:44:32.151Z"}, {"lat": "44.134488", "lng": "9.684778", "elevation": "72.9000015258789", "time": "2013-09-20T11:44:39.145Z"}, {"lat": "44.134478", "lng": "9.684769", "elevation": "72.80000305175781", "time": "2013-09-20T11:44:40.148Z"}, {"lat": "44.134453", "lng": "9.684716", "elevation": "71.9000015258789", "time": "2013-09-20T11:44:49.178Z"}, {"lat": "44.134452", "lng": "9.684716", "elevation": "72.0999984741211", "time": "2013-09-20T11:44:50.145Z"}, {"lat": "44.134453", "lng": "9.684705", "elevation": "72.9000015258789", "time": "2013-09-20T11:45:05.201Z"}, {"lat": "44.134451", "lng": "9.684696", "elevation": "74.30000305175781", "time": "2013-09-20T11:45:06.153Z"}, {"lat": "44.134457", "lng": "9.684581", "elevation": "77.19999694824219", "time": "2013-09-20T11:45:19.243Z"}, {"lat": "44.134457", "lng": "9.684581", "elevation": "77.30000305175781", "time": "2013-09-20T11:45:20.223Z"}, {"lat": "44.134455", "lng": "9.684583", "elevation": "77.5", "time": "2013-09-20T11:45:36.233Z"}, {"lat": "44.134449", "lng": "9.684583", "elevation": "78.0999984741211", "time": "2013-09-20T11:45:37.173Z"}, {"lat": "44.134413", "lng": "9.684617", "elevation": "80.4000015258789", "time": "2013-09-20T11:45:43.284Z"}, {"lat": "44.134391", "lng": "9.684664", "elevation": "82.30000305175781", "time": "2013-09-20T11:45:48.165Z"}, {"lat": "44.134324", "lng": "9.684725", "elevation": "79.80000305175781", "time": "2013-09-20T11:46:00.155Z"}, {"lat": "44.134327", "lng": "9.684724", "elevation": "79.9000015258789", "time": "2013-09-20T11:46:01.160Z"}, {"lat": "44.134329", "lng": "9.684725", "elevation": "80.19999694824219", "time": "2013-09-20T11:46:02.155Z"}, {"lat": "44.13434", "lng": "9.68473", "elevation": "80.9000015258789", "time": "2013-09-20T11:46:03.152Z"}, {"lat": "44.134355", "lng": "9.684735", "elevation": "80.69999694824219", "time": "2013-09-20T11:46:06.161Z"}, {"lat": "44.134355", "lng": "9.684736", "elevation": "80.80000305175781", "time": "2013-09-20T11:46:07.157Z"}, {"lat": "44.134354", "lng": "9.684733", "elevation": "81.19999694824219", "time": "2013-09-20T11:46:12.212Z"}, {"lat": "44.134351", "lng": "9.68473", "elevation": "81.19999694824219", "time": "2013-09-20T11:46:13.160Z"}, {"lat": "44.134286", "lng": "9.684733", "elevation": "83.5", "time": "2013-09-20T11:46:27.161Z"}, {"lat": "44.134287", "lng": "9.684733", "elevation": "83.4000015258789", "time": "2013-09-20T11:46:28.168Z"}, {"lat": "44.134277", "lng": "9.684726", "elevation": "87.5999984741211", "time": "2013-09-20T11:48:06.183Z"}, {"lat": "44.134276", "lng": "9.684735", "elevation": "88.5", "time": "2013-09-20T11:48:07.274Z"}, {"lat": "44.134284", "lng": "9.684856", "elevation": "90.0", "time": "2013-09-20T11:48:16.232Z"}, {"lat": "44.134286", "lng": "9.684878", "elevation": "90.5", "time": "2013-09-20T11:48:17.215Z"}, {"lat": "44.134275", "lng": "9.684992", "elevation": "88.9000015258789", "time": "2013-09-20T11:48:23.341Z"}, {"lat": "44.134271", "lng": "9.685005", "elevation": "88.30000305175781", "time": "2013-09-20T11:48:24.244Z"}, {"lat": "44.134207", "lng": "9.685056", "elevation": "88.19999694824219", "time": "2013-09-20T11:48:37.186Z"}, {"lat": "44.134207", "lng": "9.685055", "elevation": "88.19999694824219", "time": "2013-09-20T11:48:38.203Z"}, {"lat": "44.134212", "lng": "9.685062", "elevation": "88.4000015258789", "time": "2013-09-20T11:48:45.212Z"}, {"lat": "44.134217", "lng": "9.685065", "elevation": "87.80000305175781", "time": "2013-09-20T11:48:46.171Z"}, {"lat": "44.134234", "lng": "9.68509", "elevation": "87.0999984741211", "time": "2013-09-20T11:48:53.125Z"}, {"lat": "44.134234", "lng": "9.68509", "elevation": "86.80000305175781", "time": "2013-09-20T11:48:53.208Z"}, {"lat": "44.13423", "lng": "9.685092", "elevation": "87.0", "time": "2013-09-20T11:48:56.175Z"}, {"lat": "44.134225", "lng": "9.685089", "elevation": "86.5", "time": "2013-09-20T11:48:57.241Z"}, {"lat": "44.134191", "lng": "9.685074", "elevation": "90.30000305175781", "time": "2013-09-20T11:49:07.183Z"}, {"lat": "44.13419", "lng": "9.685075", "elevation": "90.19999694824219", "time": "2013-09-20T11:49:08.182Z"}, {"lat": "44.134185", "lng": "9.685077", "elevation": "91.0999984741211", "time": "2013-09-20T11:49:14.181Z"}, {"lat": "44.134182", "lng": "9.685085", "elevation": "90.69999694824219", "time": "2013-09-20T11:49:15.193Z"}, {"lat": "44.134132", "lng": "9.685179", "elevation": "91.0999984741211", "time": "2013-09-20T11:49:23.282Z"}, {"lat": "44.13413", "lng": "9.685195", "elevation": "91.0", "time": "2013-09-20T11:49:24.179Z"}, {"lat": "44.134134", "lng": "9.685243", "elevation": "92.5", "time": "2013-09-20T11:49:30.174Z"}, {"lat": "44.134135", "lng": "9.685239", "elevation": "92.4000015258789", "time": "2013-09-20T11:49:31.178Z"}, {"lat": "44.134131", "lng": "9.685253", "elevation": "94.0", "time": "2013-09-20T11:50:03.199Z"}, {"lat": "44.134127", "lng": "9.685259", "elevation": "94.5", "time": "2013-09-20T11:50:04.179Z"}, {"lat": "44.134111", "lng": "9.685357", "elevation": "98.0999984741211", "time": "2013-09-20T11:50:16.243Z"}, {"lat": "44.13411", "lng": "9.685357", "elevation": "98.30000305175781", "time": "2013-09-20T11:50:17.221Z"}, {"lat": "44.134101", "lng": "9.685357", "elevation": "99.5", "time": "2013-09-20T11:50:28.418Z"}, {"lat": "44.134095", "lng": "9.685358", "elevation": "100.0999984741211", "time": "2013-09-20T11:50:29.194Z"}, {"lat": "44.13401", "lng": "9.685381", "elevation": "100.69999694824219", "time": "2013-09-20T11:50:38.677Z"}, {"lat": "44.134001", "lng": "9.685388", "elevation": "99.80000305175781", "time": "2013-09-20T11:50:39.276Z"}, {"lat": "44.133965", "lng": "9.685502", "elevation": "90.30000305175781", "time": "2013-09-20T11:50:44.181Z"}, {"lat": "44.133962", "lng": "9.685525", "elevation": "90.0", "time": "2013-09-20T11:50:45.215Z"}, {"lat": "44.133912", "lng": "9.68562", "elevation": "91.0", "time": "2013-09-20T11:50:53.178Z"}, {"lat": "44.133905", "lng": "9.685635", "elevation": "90.80000305175781", "time": "2013-09-20T11:50:54.180Z"}, {"lat": "44.133842", "lng": "9.685708", "elevation": "91.80000305175781", "time": "2013-09-20T11:51:01.181Z"}, {"lat": "44.133834", "lng": "9.685717", "elevation": "90.69999694824219", "time": "2013-09-20T11:51:02.196Z"}, {"lat": "44.133794", "lng": "9.685815", "elevation": "90.5999984741211", "time": "2013-09-20T11:51:10.184Z"}, {"lat": "44.133788", "lng": "9.685826", "elevation": "91.5999984741211", "time": "2013-09-20T11:51:11.186Z"}, {"lat": "44.133727", "lng": "9.685894", "elevation": "96.0999984741211", "time": "2013-09-20T11:51:17.190Z"}, {"lat": "44.133715", "lng": "9.685901", "elevation": "95.5", "time": "2013-09-20T11:51:18.182Z"}, {"lat": "44.133657", "lng": "9.685932", "elevation": "98.5", "time": "2013-09-20T11:51:28.938Z"}, {"lat": "44.133658", "lng": "9.68593", "elevation": "99.69999694824219", "time": "2013-09-20T11:51:29.213Z"}, {"lat": "44.133655", "lng": "9.685926", "elevation": "101.0", "time": "2013-09-20T11:51:30.182Z"}, {"lat": "44.133635", "lng": "9.685912", "elevation": "103.0", "time": "2013-09-20T11:51:37.203Z"}, {"lat": "44.133633", "lng": "9.685913", "elevation": "103.69999694824219", "time": "2013-09-20T11:51:38.197Z"}, {"lat": "44.133632", "lng": "9.685919", "elevation": "110.4000015258789", "time": "2013-09-20T11:51:47.194Z"}, {"lat": "44.133627", "lng": "9.685926", "elevation": "110.5", "time": "2013-09-20T11:51:48.197Z"}, {"lat": "44.133579", "lng": "9.686024", "elevation": "112.0", "time": "2013-09-20T11:51:58.253Z"}, {"lat": "44.133574", "lng": "9.68603", "elevation": "112.9000015258789", "time": "2013-09-20T11:51:59.286Z"}, {"lat": "44.13351", "lng": "9.686115", "elevation": "113.19999694824219", "time": "2013-09-20T11:52:15.260Z"}, {"lat": "44.133508", "lng": "9.686117", "elevation": "111.4000015258789", "time": "2013-09-20T11:52:16.195Z"}, {"lat": "44.133449", "lng": "9.6862", "elevation": "120.0999984741211", "time": "2013-09-20T11:52:30.195Z"}, {"lat": "44.133443", "lng": "9.686208", "elevation": "119.69999694824219", "time": "2013-09-20T11:52:31.202Z"}, {"lat": "44.133378", "lng": "9.68628", "elevation": "124.69999694824219", "time": "2013-09-20T11:52:41.234Z"}, {"lat": "44.133366", "lng": "9.686279", "elevation": "125.19999694824219", "time": "2013-09-20T11:52:42.203Z"}, {"lat": "44.133279", "lng": "9.68631", "elevation": "125.80000305175781", "time": "2013-09-20T11:52:51.199Z"}, {"lat": "44.133273", "lng": "9.686313", "elevation": "126.0999984741211", "time": "2013-09-20T11:52:52.207Z"}, {"lat": "44.133205", "lng": "9.686391", "elevation": "129.89999389648438", "time": "2013-09-20T11:53:05.190Z"}, {"lat": "44.133198", "lng": "9.686383", "elevation": "129.6999969482422", "time": "2013-09-20T11:53:06.199Z"}, {"lat": "44.133194", "lng": "9.686363", "elevation": "129.39999389648438", "time": "2013-09-20T11:53:11.197Z"}, {"lat": "44.133194", "lng": "9.686364", "elevation": "128.89999389648438", "time": "2013-09-20T11:53:12.211Z"}, {"lat": "44.133195", "lng": "9.686378", "elevation": "129.10000610351563", "time": "2013-09-20T11:53:15.348Z"}, {"lat": "44.133196", "lng": "9.686384", "elevation": "128.6999969482422", "time": "2013-09-20T11:53:16.197Z"}, {"lat": "44.133205", "lng": "9.68641", "elevation": "129.5", "time": "2013-09-20T11:53:22.202Z"}, {"lat": "44.133205", "lng": "9.68641", "elevation": "129.5", "time": "2013-09-20T11:53:23.205Z"}, {"lat": "44.133202", "lng": "9.686414", "elevation": "128.60000610351563", "time": "2013-09-20T11:53:49.203Z"}, {"lat": "44.133203", "lng": "9.686419", "elevation": "128.39999389648438", "time": "2013-09-20T11:53:50.325Z"}, {"lat": "44.133202", "lng": "9.686527", "elevation": "126.5999984741211", "time": "2013-09-20T11:54:00.263Z"}, {"lat": "44.133202", "lng": "9.686549", "elevation": "125.69999694824219", "time": "2013-09-20T11:54:01.240Z"}, {"lat": "44.133192", "lng": "9.686659", "elevation": "127.30000305175781", "time": "2013-09-20T11:54:06.214Z"}, {"lat": "44.133187", "lng": "9.686677", "elevation": "127.0", "time": "2013-09-20T11:54:07.201Z"}, {"lat": "44.133136", "lng": "9.686765", "elevation": "129.1999969482422", "time": "2013-09-20T11:54:14.205Z"}, {"lat": "44.133128", "lng": "9.686776", "elevation": "129.3000030517578", "time": "2013-09-20T11:54:15.298Z"}, {"lat": "44.133068", "lng": "9.686852", "elevation": "131.10000610351563", "time": "2013-09-20T11:54:23.211Z"}, {"lat": "44.133064", "lng": "9.686867", "elevation": "131.0", "time": "2013-09-20T11:54:24.209Z"}, {"lat": "44.133024", "lng": "9.686974", "elevation": "128.60000610351563", "time": "2013-09-20T11:54:33.237Z"}, {"lat": "44.133018", "lng": "9.686986", "elevation": "128.5", "time": "2013-09-20T11:54:34.206Z"}, {"lat": "44.132967", "lng": "9.687078", "elevation": "131.1999969482422", "time": "2013-09-20T11:54:47.329Z"}, {"lat": "44.132962", "lng": "9.687087", "elevation": "129.8000030517578", "time": "2013-09-20T11:54:48.300Z"}, {"lat": "44.132916", "lng": "9.68719", "elevation": "128.8000030517578", "time": "2013-09-20T11:54:55.296Z"}, {"lat": "44.132911", "lng": "9.6872", "elevation": "128.89999389648438", "time": "2013-09-20T11:54:56.281Z"}, {"lat": "44.132873", "lng": "9.6873", "elevation": "130.1999969482422", "time": "2013-09-20T11:55:06.211Z"}, {"lat": "44.132865", "lng": "9.687314", "elevation": "131.39999389648438", "time": "2013-09-20T11:55:07.215Z"}, {"lat": "44.13282", "lng": "9.687412", "elevation": "134.1999969482422", "time": "2013-09-20T11:55:14.225Z"}, {"lat": "44.132812", "lng": "9.687425", "elevation": "134.5", "time": "2013-09-20T11:55:15.211Z"}, {"lat": "44.132782", "lng": "9.687533", "elevation": "130.5", "time": "2013-09-20T11:55:22.210Z"}, {"lat": "44.132784", "lng": "9.687551", "elevation": "130.89999389648438", "time": "2013-09-20T11:55:23.215Z"}, {"lat": "44.132749", "lng": "9.687664", "elevation": "133.6999969482422", "time": "2013-09-20T11:55:31.210Z"}, {"lat": "44.132745", "lng": "9.68768", "elevation": "134.1999969482422", "time": "2013-09-20T11:55:32.223Z"}, {"lat": "44.132741", "lng": "9.687762", "elevation": "133.89999389648438", "time": "2013-09-20T11:55:43.210Z"}, {"lat": "44.132742", "lng": "9.687762", "elevation": "134.3000030517578", "time": "2013-09-20T11:55:44.224Z"}, {"lat": "44.13274", "lng": "9.687767", "elevation": "135.10000610351563", "time": "2013-09-20T11:55:47.211Z"}, {"lat": "44.132738", "lng": "9.687772", "elevation": "136.39999389648438", "time": "2013-09-20T11:55:48.204Z"}, {"lat": "44.132731", "lng": "9.687895", "elevation": "138.1999969482422", "time": "2013-09-20T11:56:00.256Z"}, {"lat": "44.132735", "lng": "9.687903", "elevation": "137.6999969482422", "time": "2013-09-20T11:56:01.214Z"}, {"lat": "44.132757", "lng": "9.688023", "elevation": "137.6999969482422", "time": "2013-09-20T11:56:13.312Z"}, {"lat": "44.132754", "lng": "9.688027", "elevation": "138.3000030517578", "time": "2013-09-20T11:56:14.220Z"}, {"lat": "44.132759", "lng": "9.688064", "elevation": "141.3000030517578", "time": "2013-09-20T11:56:24.216Z"}, {"lat": "44.132759", "lng": "9.688065", "elevation": "141.3000030517578", "time": "2013-09-20T11:56:25.213Z"}, {"lat": "44.13275", "lng": "9.688102", "elevation": "143.39999389648438", "time": "2013-09-20T11:56:49.219Z"}, {"lat": "44.13275", "lng": "9.688108", "elevation": "143.3000030517578", "time": "2013-09-20T11:56:50.290Z"}, {"lat": "44.132754", "lng": "9.688224", "elevation": "144.1999969482422", "time": "2013-09-20T11:56:57.274Z"}, {"lat": "44.132755", "lng": "9.688243", "elevation": "144.39999389648438", "time": "2013-09-20T11:56:58.229Z"}, {"lat": "44.132775", "lng": "9.688359", "elevation": "141.8000030517578", "time": "2013-09-20T11:57:05.219Z"}, {"lat": "44.132778", "lng": "9.688378", "elevation": "141.5", "time": "2013-09-20T11:57:06.218Z"}, {"lat": "44.132775", "lng": "9.688494", "elevation": "142.0", "time": "2013-09-20T11:57:12.226Z"}, {"lat": "44.132773", "lng": "9.688514", "elevation": "140.8000030517578", "time": "2013-09-20T11:57:13.327Z"}, {"lat": "44.132758", "lng": "9.688635", "elevation": "142.39999389648438", "time": "2013-09-20T11:57:19.222Z"}, {"lat": "44.132756", "lng": "9.688659", "elevation": "142.39999389648438", "time": "2013-09-20T11:57:20.225Z"}, {"lat": "44.132744", "lng": "9.688781", "elevation": "142.3000030517578", "time": "2013-09-20T11:57:25.257Z"}, {"lat": "44.132741", "lng": "9.688806", "elevation": "142.5", "time": "2013-09-20T11:57:26.309Z"}, {"lat": "44.132725", "lng": "9.688919", "elevation": "141.6999969482422", "time": "2013-09-20T11:57:31.226Z"}, {"lat": "44.132725", "lng": "9.688943", "elevation": "141.10000610351563", "time": "2013-09-20T11:57:32.270Z"}, {"lat": "44.132733", "lng": "9.689059", "elevation": "138.89999389648438", "time": "2013-09-20T11:57:37.226Z"}, {"lat": "44.132738", "lng": "9.689083", "elevation": "139.39999389648438", "time": "2013-09-20T11:57:38.218Z"}, {"lat": "44.132716", "lng": "9.689201", "elevation": "137.89999389648438", "time": "2013-09-20T11:57:45.262Z"}, {"lat": "44.132707", "lng": "9.689214", "elevation": "138.6999969482422", "time": "2013-09-20T11:57:46.421Z"}, {"lat": "44.13265", "lng": "9.689307", "elevation": "137.3000030517578", "time": "2013-09-20T11:58:02.222Z"}, {"lat": "44.132656", "lng": "9.689324", "elevation": "137.8000030517578", "time": "2013-09-20T11:58:03.306Z"}, {"lat": "44.13269", "lng": "9.689431", "elevation": "135.6999969482422", "time": "2013-09-20T11:58:11.338Z"}, {"lat": "44.132692", "lng": "9.689446", "elevation": "134.89999389648438", "time": "2013-09-20T11:58:12.383Z"}, {"lat": "44.132681", "lng": "9.689563", "elevation": "135.1999969482422", "time": "2013-09-20T11:58:20.266Z"}, {"lat": "44.132678", "lng": "9.689578", "elevation": "135.1999969482422", "time": "2013-09-20T11:58:21.231Z"}, {"lat": "44.13266", "lng": "9.689694", "elevation": "137.10000610351563", "time": "2013-09-20T11:58:30.227Z"}, {"lat": "44.132654", "lng": "9.689707", "elevation": "136.60000610351563", "time": "2013-09-20T11:58:31.226Z"}, {"lat": "44.132598", "lng": "9.689803", "elevation": "138.39999389648438", "time": "2013-09-20T11:58:39.221Z"}, {"lat": "44.132596", "lng": "9.689812", "elevation": "138.10000610351563", "time": "2013-09-20T11:58:40.275Z"}, {"lat": "44.132594", "lng": "9.689823", "elevation": "137.89999389648438", "time": "2013-09-20T11:58:45.241Z"}, {"lat": "44.132593", "lng": "9.689823", "elevation": "138.39999389648438", "time": "2013-09-20T11:58:46.230Z"}, {"lat": "44.132585", "lng": "9.689827", "elevation": "138.3000030517578", "time": "2013-09-20T11:58:55.225Z"}, {"lat": "44.132582", "lng": "9.689834", "elevation": "137.89999389648438", "time": "2013-09-20T11:58:56.231Z"}, {"lat": "44.132518", "lng": "9.689917", "elevation": "139.1999969482422", "time": "2013-09-20T11:59:03.223Z"}, {"lat": "44.132503", "lng": "9.689923", "elevation": "139.1999969482422", "time": "2013-09-20T11:59:04.391Z"}, {"lat": "44.132441", "lng": "9.689981", "elevation": "135.5", "time": "2013-09-20T11:59:10.226Z"}, {"lat": "44.13243", "lng": "9.689998", "elevation": "136.39999389648438", "time": "2013-09-20T11:59:11.227Z"}, {"lat": "44.132368", "lng": "9.690086", "elevation": "136.89999389648438", "time": "2013-09-20T11:59:16.265Z"}, {"lat": "44.132359", "lng": "9.690106", "elevation": "137.6999969482422", "time": "2013-09-20T11:59:17.276Z"}, {"lat": "44.132334", "lng": "9.690212", "elevation": "133.1999969482422", "time": "2013-09-20T11:59:22.229Z"}, {"lat": "44.132329", "lng": "9.690232", "elevation": "133.89999389648438", "time": "2013-09-20T11:59:23.234Z"}, {"lat": "44.132301", "lng": "9.690341", "elevation": "130.0", "time": "2013-09-20T11:59:30.317Z"}, {"lat": "44.132303", "lng": "9.690363", "elevation": "130.3000030517578", "time": "2013-09-20T11:59:31.239Z"}, {"lat": "44.132272", "lng": "9.690465", "elevation": "127.9000015258789", "time": "2013-09-20T11:59:38.243Z"}, {"lat": "44.132265", "lng": "9.690477", "elevation": "129.60000610351563", "time": "2013-09-20T11:59:39.334Z"}, {"lat": "44.132224", "lng": "9.690581", "elevation": "129.39999389648438", "time": "2013-09-20T11:59:48.453Z"}, {"lat": "44.132226", "lng": "9.690597", "elevation": "128.8000030517578", "time": "2013-09-20T11:59:49.327Z"}, {"lat": "44.132231", "lng": "9.690711", "elevation": "127.19999694824219", "time": "2013-09-20T11:59:56.311Z"}, {"lat": "44.132231", "lng": "9.690723", "elevation": "125.9000015258789", "time": "2013-09-20T11:59:57.255Z"}, {"lat": "44.13221", "lng": "9.690783", "elevation": "129.0", "time": "2013-09-20T12:00:11.240Z"}, {"lat": "44.132213", "lng": "9.690787", "elevation": "129.0", "time": "2013-09-20T12:00:12.304Z"}, {"lat": "44.132218", "lng": "9.690793", "elevation": "128.60000610351563", "time": "2013-09-20T12:00:13.262Z"}, {"lat": "44.132238", "lng": "9.690817", "elevation": "128.10000610351563", "time": "2013-09-20T12:00:20.231Z"}, {"lat": "44.132239", "lng": "9.690817", "elevation": "128.1999969482422", "time": "2013-09-20T12:00:21.233Z"}, {"lat": "44.132235", "lng": "9.690816", "elevation": "128.1999969482422", "time": "2013-09-20T12:00:31.234Z"}, {"lat": "44.132228", "lng": "9.690816", "elevation": "128.5", "time": "2013-09-20T12:00:32.233Z"}, {"lat": "44.132147", "lng": "9.690857", "elevation": "129.8000030517578", "time": "2013-09-20T12:00:38.262Z"}, {"lat": "44.132133", "lng": "9.690872", "elevation": "130.5", "time": "2013-09-20T12:00:39.241Z"}, {"lat": "44.132094", "lng": "9.690973", "elevation": "131.10000610351563", "time": "2013-09-20T12:00:44.244Z"}, {"lat": "44.132088", "lng": "9.690988", "elevation": "131.3000030517578", "time": "2013-09-20T12:00:45.234Z"}, {"lat": "44.132052", "lng": "9.691091", "elevation": "130.8000030517578", "time": "2013-09-20T12:00:55.233Z"}, {"lat": "44.132049", "lng": "9.691105", "elevation": "131.60000610351563", "time": "2013-09-20T12:00:56.232Z"}, {"lat": "44.132004", "lng": "9.691212", "elevation": "131.39999389648438", "time": "2013-09-20T12:01:03.239Z"}, {"lat": "44.131997", "lng": "9.691229", "elevation": "131.3000030517578", "time": "2013-09-20T12:01:04.244Z"}, {"lat": "44.13198", "lng": "9.69126", "elevation": "131.0", "time": "2013-09-20T12:01:06.256Z"}, {"lat": "44.131924", "lng": "9.691412", "elevation": "132.6999969482422", "time": "2013-09-20T12:01:16.223Z"}, {"lat": "44.131908", "lng": "9.691519", "elevation": "131.89999389648438", "time": "2013-09-20T12:01:22.282Z"}, {"lat": "44.131905", "lng": "9.691535", "elevation": "131.60000610351563", "time": "2013-09-20T12:01:23.256Z"}, {"lat": "44.131852", "lng": "9.691635", "elevation": "133.10000610351563", "time": "2013-09-20T12:01:32.270Z"}, {"lat": "44.131838", "lng": "9.691635", "elevation": "133.8000030517578", "time": "2013-09-20T12:01:33.237Z"}, {"lat": "44.131776", "lng": "9.691718", "elevation": "134.10000610351563", "time": "2013-09-20T12:01:42.268Z"}, {"lat": "44.131766", "lng": "9.691726", "elevation": "134.0", "time": "2013-09-20T12:01:43.254Z"}, {"lat": "44.131685", "lng": "9.691775", "elevation": "133.39999389648438", "time": "2013-09-20T12:01:50.249Z"}, {"lat": "44.131671", "lng": "9.691779", "elevation": "132.60000610351563", "time": "2013-09-20T12:01:51.242Z"}, {"lat": "44.131625", "lng": "9.691876", "elevation": "129.89999389648438", "time": "2013-09-20T12:01:59.401Z"}, {"lat": "44.13162", "lng": "9.691888", "elevation": "130.5", "time": "2013-09-20T12:02:00.452Z"}, {"lat": "44.13156", "lng": "9.691973", "elevation": "133.1999969482422", "time": "2013-09-20T12:02:09.242Z"}, {"lat": "44.131555", "lng": "9.691984", "elevation": "133.39999389648438", "time": "2013-09-20T12:02:10.252Z"}, {"lat": "44.13151", "lng": "9.692083", "elevation": "133.6999969482422", "time": "2013-09-20T12:02:19.252Z"}, {"lat": "44.131508", "lng": "9.692097", "elevation": "133.8000030517578", "time": "2013-09-20T12:02:20.245Z"}, {"lat": "44.13145", "lng": "9.692182", "elevation": "134.3000030517578", "time": "2013-09-20T12:02:29.238Z"}, {"lat": "44.131441", "lng": "9.692189", "elevation": "134.39999389648438", "time": "2013-09-20T12:02:30.245Z"}, {"lat": "44.131361", "lng": "9.692245", "elevation": "140.89999389648438", "time": "2013-09-20T12:02:40.358Z"}, {"lat": "44.131355", "lng": "9.69225", "elevation": "140.6999969482422", "time": "2013-09-20T12:02:41.279Z"}, {"lat": "44.131277", "lng": "9.692304", "elevation": "144.1999969482422", "time": "2013-09-20T12:02:53.277Z"}, {"lat": "44.131271", "lng": "9.692311", "elevation": "143.89999389648438", "time": "2013-09-20T12:02:54.368Z"}, {"lat": "44.131207", "lng": "9.692396", "elevation": "149.89999389648438", "time": "2013-09-20T12:03:07.248Z"}, {"lat": "44.131205", "lng": "9.692406", "elevation": "149.60000610351563", "time": "2013-09-20T12:03:08.265Z"}, {"lat": "44.1312", "lng": "9.692455", "elevation": "149.8000030517578", "time": "2013-09-20T12:03:15.265Z"}, {"lat": "44.131202", "lng": "9.692456", "elevation": "149.60000610351563", "time": "2013-09-20T12:03:16.256Z"}, {"lat": "44.131204", "lng": "9.692461", "elevation": "149.5", "time": "2013-09-20T12:03:19.361Z"}, {"lat": "44.131203", "lng": "9.692466", "elevation": "149.6999969482422", "time": "2013-09-20T12:03:20.312Z"}, {"lat": "44.131145", "lng": "9.692559", "elevation": "153.0", "time": "2013-09-20T12:03:32.242Z"}, {"lat": "44.131137", "lng": "9.692568", "elevation": "152.8000030517578", "time": "2013-09-20T12:03:33.275Z"}, {"lat": "44.131071", "lng": "9.692643", "elevation": "153.89999389648438", "time": "2013-09-20T12:03:45.243Z"}, {"lat": "44.131065", "lng": "9.692646", "elevation": "154.8000030517578", "time": "2013-09-20T12:03:46.251Z"}, {"lat": "44.131004", "lng": "9.692735", "elevation": "162.6999969482422", "time": "2013-09-20T12:04:00.249Z"}, {"lat": "44.130998", "lng": "9.692735", "elevation": "161.89999389648438", "time": "2013-09-20T12:04:01.252Z"}, {"lat": "44.130974", "lng": "9.69277", "elevation": "162.8000030517578", "time": "2013-09-20T12:04:10.244Z"}, {"lat": "44.130975", "lng": "9.692769", "elevation": "163.6999969482422", "time": "2013-09-20T12:04:11.252Z"}, {"lat": "44.13096", "lng": "9.692758", "elevation": "165.60000610351563", "time": "2013-09-20T12:05:04.248Z"}, {"lat": "44.130953", "lng": "9.692763", "elevation": "165.1999969482422", "time": "2013-09-20T12:05:05.256Z"}, {"lat": "44.130945", "lng": "9.692876", "elevation": "160.10000610351563", "time": "2013-09-20T12:05:14.265Z"}, {"lat": "44.130943", "lng": "9.692887", "elevation": "160.5", "time": "2013-09-20T12:05:15.256Z"}, {"lat": "44.130979", "lng": "9.692999", "elevation": "169.10000610351563", "time": "2013-09-20T12:05:39.270Z"}, {"lat": "44.130976", "lng": "9.693003", "elevation": "169.89999389648438", "time": "2013-09-20T12:05:40.264Z"}, {"lat": "44.130921", "lng": "9.693018", "elevation": "171.39999389648438", "time": "2013-09-20T12:05:50.347Z"}, {"lat": "44.13092", "lng": "9.693017", "elevation": "172.3000030517578", "time": "2013-09-20T12:05:51.355Z"}, {"lat": "44.130914", "lng": "9.693011", "elevation": "172.89999389648438", "time": "2013-09-20T12:06:20.277Z"}, {"lat": "44.130908", "lng": "9.693012", "elevation": "173.89999389648438", "time": "2013-09-20T12:06:21.281Z"}, {"lat": "44.130823", "lng": "9.693026", "elevation": "172.5", "time": "2013-09-20T12:06:28.273Z"}, {"lat": "44.13081", "lng": "9.693039", "elevation": "170.3000030517578", "time": "2013-09-20T12:06:29.270Z"}, {"lat": "44.130792", "lng": "9.693152", "elevation": "166.39999389648438", "time": "2013-09-20T12:06:33.302Z"}, {"lat": "44.130789", "lng": "9.693182", "elevation": "165.89999389648438", "time": "2013-09-20T12:06:34.265Z"}, {"lat": "44.130722", "lng": "9.693263", "elevation": "166.6999969482422", "time": "2013-09-20T12:06:42.283Z"}, {"lat": "44.130721", "lng": "9.69327", "elevation": "166.8000030517578", "time": "2013-09-20T12:06:43.292Z"}, {"lat": "44.130718", "lng": "9.69328", "elevation": "167.5", "time": "2013-09-20T12:06:48.361Z"}, {"lat": "44.130717", "lng": "9.693279", "elevation": "167.39999389648438", "time": "2013-09-20T12:06:49.323Z"}, {"lat": "44.130711", "lng": "9.693278", "elevation": "168.39999389648438", "time": "2013-09-20T12:06:52.273Z"}, {"lat": "44.130706", "lng": "9.693278", "elevation": "168.8000030517578", "time": "2013-09-20T12:06:53.377Z"}, {"lat": "44.130619", "lng": "9.69328", "elevation": "174.5", "time": "2013-09-20T12:07:06.282Z"}, {"lat": "44.130612", "lng": "9.693275", "elevation": "174.6999969482422", "time": "2013-09-20T12:07:07.273Z"}, {"lat": "44.130602", "lng": "9.693267", "elevation": "174.89999389648438", "time": "2013-09-20T12:07:12.271Z"}, {"lat": "44.130603", "lng": "9.693267", "elevation": "174.89999389648438", "time": "2013-09-20T12:07:13.263Z"}, {"lat": "44.130599", "lng": "9.693273", "elevation": "178.1999969482422", "time": "2013-09-20T12:07:58.269Z"}, {"lat": "44.130594", "lng": "9.693271", "elevation": "179.5", "time": "2013-09-20T12:07:59.267Z"}, {"lat": "44.130574", "lng": "9.693262", "elevation": "180.1999969482422", "time": "2013-09-20T12:08:06.271Z"}, {"lat": "44.130573", "lng": "9.693263", "elevation": "180.3000030517578", "time": "2013-09-20T12:08:07.271Z"}, {"lat": "44.130558", "lng": "9.693261", "elevation": "180.5", "time": "2013-09-20T12:09:44.286Z"}, {"lat": "44.130556", "lng": "9.69326", "elevation": "180.8000030517578", "time": "2013-09-20T12:09:45.282Z"}, {"lat": "44.13054", "lng": "9.693267", "elevation": "180.5", "time": "2013-09-20T12:09:51.288Z"}, {"lat": "44.130539", "lng": "9.693268", "elevation": "180.60000610351563", "time": "2013-09-20T12:09:52.279Z"}, {"lat": "44.130536", "lng": "9.693273", "elevation": "180.89999389648438", "time": "2013-09-20T12:10:40.324Z"}, {"lat": "44.130534", "lng": "9.693277", "elevation": "181.0", "time": "2013-09-20T12:10:41.273Z"}, {"lat": "44.130497", "lng": "9.693262", "elevation": "184.0", "time": "2013-09-20T12:10:49.271Z"}, {"lat": "44.130496", "lng": "9.693261", "elevation": "184.0", "time": "2013-09-20T12:10:50.323Z"}, {"lat": "44.130496", "lng": "9.693252", "elevation": "186.10000610351563", "time": "2013-09-20T12:11:13.302Z"}, {"lat": "44.130495", "lng": "9.693244", "elevation": "185.6999969482422", "time": "2013-09-20T12:11:14.285Z"}, {"lat": "44.13048", "lng": "9.693198", "elevation": "189.6999969482422", "time": "2013-09-20T12:11:24.287Z"}, {"lat": "44.13048", "lng": "9.693199", "elevation": "189.1999969482422", "time": "2013-09-20T12:11:25.286Z"}, {"lat": "44.130479", "lng": "9.693214", "elevation": "192.39999389648438", "time": "2013-09-20T12:11:39.289Z"}, {"lat": "44.130476", "lng": "9.693218", "elevation": "190.6999969482422", "time": "2013-09-20T12:11:40.286Z"}, {"lat": "44.130508", "lng": "9.693334", "elevation": "197.5", "time": "2013-09-20T12:11:52.324Z"}, {"lat": "44.130514", "lng": "9.693345", "elevation": "197.1999969482422", "time": "2013-09-20T12:11:53.332Z"}, {"lat": "44.130525", "lng": "9.693463", "elevation": "196.10000610351563", "time": "2013-09-20T12:12:04.317Z"}, {"lat": "44.130519", "lng": "9.693474", "elevation": "196.60000610351563", "time": "2013-09-20T12:12:05.373Z"}, {"lat": "44.13049", "lng": "9.693587", "elevation": "198.6999969482422", "time": "2013-09-20T12:12:19.306Z"}, {"lat": "44.13049", "lng": "9.693596", "elevation": "199.3000030517578", "time": "2013-09-20T12:12:20.297Z"}, {"lat": "44.130512", "lng": "9.693715", "elevation": "200.0", "time": "2013-09-20T12:12:34.299Z"}, {"lat": "44.130511", "lng": "9.693722", "elevation": "200.0", "time": "2013-09-20T12:12:35.307Z"}, {"lat": "44.130487", "lng": "9.693839", "elevation": "203.6999969482422", "time": "2013-09-20T12:12:51.308Z"}, {"lat": "44.130481", "lng": "9.693851", "elevation": "204.60000610351563", "time": "2013-09-20T12:12:52.298Z"}, {"lat": "44.130447", "lng": "9.693964", "elevation": "207.5", "time": "2013-09-20T12:13:03.396Z"}, {"lat": "44.130444", "lng": "9.693975", "elevation": "208.3000030517578", "time": "2013-09-20T12:13:04.382Z"}, {"lat": "44.130406", "lng": "9.69408", "elevation": "210.10000610351563", "time": "2013-09-20T12:13:12.317Z"}, {"lat": "44.130399", "lng": "9.694092", "elevation": "210.1999969482422", "time": "2013-09-20T12:13:13.334Z"}, {"lat": "44.130349", "lng": "9.694189", "elevation": "213.1999969482422", "time": "2013-09-20T12:13:22.314Z"}, {"lat": "44.130347", "lng": "9.694202", "elevation": "213.6999969482422", "time": "2013-09-20T12:13:23.311Z"}, {"lat": "44.130305", "lng": "9.6943", "elevation": "217.39999389648438", "time": "2013-09-20T12:13:33.398Z"}, {"lat": "44.130299", "lng": "9.694309", "elevation": "217.1999969482422", "time": "2013-09-20T12:13:34.295Z"}, {"lat": "44.13023", "lng": "9.694378", "elevation": "217.8000030517578", "time": "2013-09-20T12:13:42.425Z"}, {"lat": "44.130222", "lng": "9.694384", "elevation": "216.3000030517578", "time": "2013-09-20T12:13:43.388Z"}, {"lat": "44.130217", "lng": "9.694383", "elevation": "217.60000610351563", "time": "2013-09-20T12:13:47.297Z"}, {"lat": "44.130218", "lng": "9.694382", "elevation": "217.89999389648438", "time": "2013-09-20T12:13:48.305Z"}, {"lat": "44.130224", "lng": "9.694398", "elevation": "218.6999969482422", "time": "2013-09-20T12:14:10.330Z"}, {"lat": "44.13022", "lng": "9.694404", "elevation": "219.8000030517578", "time": "2013-09-20T12:14:11.311Z"}, {"lat": "44.130142", "lng": "9.694452", "elevation": "222.10000610351563", "time": "2013-09-20T12:14:17.301Z"}, {"lat": "44.130127", "lng": "9.694465", "elevation": "223.0", "time": "2013-09-20T12:14:18.305Z"}, {"lat": "44.130056", "lng": "9.694534", "elevation": "228.10000610351563", "time": "2013-09-20T12:14:23.410Z"}, {"lat": "44.130044", "lng": "9.694544", "elevation": "229.39999389648438", "time": "2013-09-20T12:14:24.362Z"}, {"lat": "44.130043", "lng": "9.694603", "elevation": "229.6999969482422", "time": "2013-09-20T12:14:34.310Z"}, {"lat": "44.130043", "lng": "9.694603", "elevation": "229.8000030517578", "time": "2013-09-20T12:14:35.301Z"}, {"lat": "44.13004", "lng": "9.694613", "elevation": "231.89999389648438", "time": "2013-09-20T12:14:48.355Z"}, {"lat": "44.130038", "lng": "9.694621", "elevation": "233.10000610351563", "time": "2013-09-20T12:14:49.341Z"}, {"lat": "44.13003", "lng": "9.69474", "elevation": "231.3000030517578", "time": "2013-09-20T12:14:56.306Z"}, {"lat": "44.130032", "lng": "9.694756", "elevation": "231.5", "time": "2013-09-20T12:14:57.298Z"}, {"lat": "44.130048", "lng": "9.694868", "elevation": "234.60000610351563", "time": "2013-09-20T12:15:09.300Z"}, {"lat": "44.13005", "lng": "9.694878", "elevation": "234.5", "time": "2013-09-20T12:15:10.323Z"}, {"lat": "44.130062", "lng": "9.695001", "elevation": "240.39999389648438", "time": "2013-09-20T12:15:24.409Z"}, {"lat": "44.130061", "lng": "9.695013", "elevation": "239.60000610351563", "time": "2013-09-20T12:15:25.381Z"}, {"lat": "44.130046", "lng": "9.695119", "elevation": "242.5", "time": "2013-09-20T12:15:32.423Z"}, {"lat": "44.130044", "lng": "9.695139", "elevation": "242.1999969482422", "time": "2013-09-20T12:15:33.383Z"}, {"lat": "44.130013", "lng": "9.695249", "elevation": "244.10000610351563", "time": "2013-09-20T12:15:44.327Z"}, {"lat": "44.130008", "lng": "9.69526", "elevation": "243.39999389648438", "time": "2013-09-20T12:15:45.378Z"}, {"lat": "44.129972", "lng": "9.695373", "elevation": "240.89999389648438", "time": "2013-09-20T12:15:53.316Z"}, {"lat": "44.129971", "lng": "9.695387", "elevation": "241.10000610351563", "time": "2013-09-20T12:15:54.306Z"}, {"lat": "44.129946", "lng": "9.695495", "elevation": "239.5", "time": "2013-09-20T12:16:00.317Z"}, {"lat": "44.129944", "lng": "9.695514", "elevation": "239.89999389648438", "time": "2013-09-20T12:16:01.319Z"}, {"lat": "44.129932", "lng": "9.695626", "elevation": "241.89999389648438", "time": "2013-09-20T12:16:08.311Z"}, {"lat": "44.129931", "lng": "9.695641", "elevation": "241.1999969482422", "time": "2013-09-20T12:16:09.307Z"}, {"lat": "44.129948", "lng": "9.695759", "elevation": "239.89999389648438", "time": "2013-09-20T12:16:18.411Z"}, {"lat": "44.129943", "lng": "9.69577", "elevation": "239.60000610351563", "time": "2013-09-20T12:16:19.441Z"}, {"lat": "44.129886", "lng": "9.695858", "elevation": "240.60000610351563", "time": "2013-09-20T12:16:27.455Z"}, {"lat": "44.129879", "lng": "9.695862", "elevation": "240.6999969482422", "time": "2013-09-20T12:16:28.430Z"}, {"lat": "44.129859", "lng": "9.69586", "elevation": "241.3000030517578", "time": "2013-09-20T12:16:34.437Z"}, {"lat": "44.129859", "lng": "9.695862", "elevation": "241.10000610351563", "time": "2013-09-20T12:16:35.468Z"}, {"lat": "44.129857", "lng": "9.695866", "elevation": "240.8000030517578", "time": "2013-09-20T12:16:37.404Z"}, {"lat": "44.129856", "lng": "9.695873", "elevation": "241.10000610351563", "time": "2013-09-20T12:16:38.370Z"}, {"lat": "44.12983", "lng": "9.695987", "elevation": "241.10000610351563", "time": "2013-09-20T12:16:47.307Z"}, {"lat": "44.129824", "lng": "9.696002", "elevation": "240.60000610351563", "time": "2013-09-20T12:16:48.301Z"}, {"lat": "44.129766", "lng": "9.696096", "elevation": "240.89999389648438", "time": "2013-09-20T12:16:56.316Z"}, {"lat": "44.129759", "lng": "9.696104", "elevation": "241.3000030517578", "time": "2013-09-20T12:16:57.311Z"}, {"lat": "44.129704", "lng": "9.696183", "elevation": "244.5", "time": "2013-09-20T12:17:06.415Z"}, {"lat": "44.129696", "lng": "9.696194", "elevation": "245.3000030517578", "time": "2013-09-20T12:17:07.464Z"}, {"lat": "44.129652", "lng": "9.6963", "elevation": "244.3000030517578", "time": "2013-09-20T12:17:14.400Z"}, {"lat": "44.129646", "lng": "9.696318", "elevation": "244.10000610351563", "time": "2013-09-20T12:17:15.472Z"}, {"lat": "44.129623", "lng": "9.696427", "elevation": "242.89999389648438", "time": "2013-09-20T12:17:22.314Z"}, {"lat": "44.12962", "lng": "9.696438", "elevation": "242.6999969482422", "time": "2013-09-20T12:17:23.344Z"}, {"lat": "44.129613", "lng": "9.696561", "elevation": "243.0", "time": "2013-09-20T12:17:33.319Z"}, {"lat": "44.129611", "lng": "9.696573", "elevation": "241.6999969482422", "time": "2013-09-20T12:17:34.316Z"}, {"lat": "44.129587", "lng": "9.696684", "elevation": "239.3000030517578", "time": "2013-09-20T12:17:42.359Z"}, {"lat": "44.129582", "lng": "9.696701", "elevation": "241.8000030517578", "time": "2013-09-20T12:17:43.346Z"}, {"lat": "44.129531", "lng": "9.696803", "elevation": "243.0", "time": "2013-09-20T12:17:49.396Z"}, {"lat": "44.129522", "lng": "9.696815", "elevation": "242.8000030517578", "time": "2013-09-20T12:17:50.363Z"}, {"lat": "44.12949", "lng": "9.696912", "elevation": "238.10000610351563", "time": "2013-09-20T12:17:57.345Z"}, {"lat": "44.129493", "lng": "9.696939", "elevation": "238.8000030517578", "time": "2013-09-20T12:17:58.320Z"}, {"lat": "44.129491", "lng": "9.697058", "elevation": "238.60000610351563", "time": "2013-09-20T12:18:03.318Z"}, {"lat": "44.129485", "lng": "9.697074", "elevation": "238.5", "time": "2013-09-20T12:18:04.317Z"}, {"lat": "44.129466", "lng": "9.697191", "elevation": "237.89999389648438", "time": "2013-09-20T12:18:15.317Z"}, {"lat": "44.129465", "lng": "9.697197", "elevation": "237.8000030517578", "time": "2013-09-20T12:18:16.318Z"}, {"lat": "44.129422", "lng": "9.697305", "elevation": "241.5", "time": "2013-09-20T12:18:24.319Z"}, {"lat": "44.129417", "lng": "9.697319", "elevation": "242.0", "time": "2013-09-20T12:18:25.318Z"}, {"lat": "44.129413", "lng": "9.697439", "elevation": "241.39999389648438", "time": "2013-09-20T12:18:34.320Z"}, {"lat": "44.129413", "lng": "9.697456", "elevation": "240.5", "time": "2013-09-20T12:18:35.318Z"}, {"lat": "44.129429", "lng": "9.697569", "elevation": "241.5", "time": "2013-09-20T12:18:43.485Z"}, {"lat": "44.12943", "lng": "9.697582", "elevation": "241.6999969482422", "time": "2013-09-20T12:18:44.328Z"}, {"lat": "44.129449", "lng": "9.697693", "elevation": "246.1999969482422", "time": "2013-09-20T12:18:51.343Z"}, {"lat": "44.129453", "lng": "9.697706", "elevation": "246.5", "time": "2013-09-20T12:18:52.324Z"}, {"lat": "44.129456", "lng": "9.697718", "elevation": "245.39999389648438", "time": "2013-09-20T12:18:56.432Z"}, {"lat": "44.129455", "lng": "9.697716", "elevation": "246.0", "time": "2013-09-20T12:18:57.403Z"}, {"lat": "44.129455", "lng": "9.697715", "elevation": "244.89999389648438", "time": "2013-09-20T12:19:34.330Z"}, {"lat": "44.12946", "lng": "9.697717", "elevation": "245.1999969482422", "time": "2013-09-20T12:19:35.323Z"}, {"lat": "44.129524", "lng": "9.697802", "elevation": "247.0", "time": "2013-09-20T12:19:49.325Z"}, {"lat": "44.129527", "lng": "9.697805", "elevation": "246.8000030517578", "time": "2013-09-20T12:19:50.325Z"}, {"lat": "44.129549", "lng": "9.697924", "elevation": "242.3000030517578", "time": "2013-09-20T12:19:58.338Z"}, {"lat": "44.129552", "lng": "9.697946", "elevation": "242.89999389648438", "time": "2013-09-20T12:19:59.326Z"}, {"lat": "44.129515", "lng": "9.698055", "elevation": "246.89999389648438", "time": "2013-09-20T12:20:06.398Z"}, {"lat": "44.129511", "lng": "9.698068", "elevation": "246.1999969482422", "time": "2013-09-20T12:20:07.425Z"}, {"lat": "44.129494", "lng": "9.698177", "elevation": "246.8000030517578", "time": "2013-09-20T12:20:14.370Z"}, {"lat": "44.12949", "lng": "9.698193", "elevation": "247.10000610351563", "time": "2013-09-20T12:20:15.431Z"}, {"lat": "44.129447", "lng": "9.698291", "elevation": "247.60000610351563", "time": "2013-09-20T12:20:22.367Z"}, {"lat": "44.129441", "lng": "9.698306", "elevation": "247.10000610351563", "time": "2013-09-20T12:20:23.420Z"}, {"lat": "44.12944", "lng": "9.698421", "elevation": "246.39999389648438", "time": "2013-09-20T12:20:32.440Z"}, {"lat": "44.129439", "lng": "9.698433", "elevation": "246.1999969482422", "time": "2013-09-20T12:20:33.453Z"}, {"lat": "44.129409", "lng": "9.698538", "elevation": "245.8000030517578", "time": "2013-09-20T12:20:40.449Z"}, {"lat": "44.129406", "lng": "9.698551", "elevation": "245.5", "time": "2013-09-20T12:20:41.411Z"}, {"lat": "44.129428", "lng": "9.698656", "elevation": "243.8000030517578", "time": "2013-09-20T12:21:03.330Z"}, {"lat": "44.129424", "lng": "9.698658", "elevation": "244.60000610351563", "time": "2013-09-20T12:21:04.335Z"}, {"lat": "44.129419", "lng": "9.698661", "elevation": "244.6999969482422", "time": "2013-09-20T12:21:05.334Z"}, {"lat": "44.129416", "lng": "9.698663", "elevation": "244.60000610351563", "time": "2013-09-20T12:21:06.334Z"}, {"lat": "44.129411", "lng": "9.698665", "elevation": "244.60000610351563", "time": "2013-09-20T12:21:08.368Z"}, {"lat": "44.12941", "lng": "9.698666", "elevation": "244.60000610351563", "time": "2013-09-20T12:21:09.331Z"}, {"lat": "44.129423", "lng": "9.698705", "elevation": "242.5", "time": "2013-09-20T12:21:36.334Z"}, {"lat": "44.129429", "lng": "9.698716", "elevation": "244.60000610351563", "time": "2013-09-20T12:21:37.334Z"}, {"lat": "44.12947", "lng": "9.698803", "elevation": "247.8000030517578", "time": "2013-09-20T12:21:41.350Z"}, {"lat": "44.129479", "lng": "9.698838", "elevation": "250.10000610351563", "time": "2013-09-20T12:21:42.377Z"}, {"lat": "44.129478", "lng": "9.698962", "elevation": "255.1999969482422", "time": "2013-09-20T12:21:47.462Z"}, {"lat": "44.129475", "lng": "9.698981", "elevation": "255.0", "time": "2013-09-20T12:21:48.471Z"}, {"lat": "44.129489", "lng": "9.6991", "elevation": "257.5", "time": "2013-09-20T12:21:55.461Z"}, {"lat": "44.129487", "lng": "9.699113", "elevation": "258.70001220703125", "time": "2013-09-20T12:21:56.350Z"}, {"lat": "44.129481", "lng": "9.699237", "elevation": "261.79998779296875", "time": "2013-09-20T12:22:06.390Z"}, {"lat": "44.129483", "lng": "9.699249", "elevation": "262.1000061035156", "time": "2013-09-20T12:22:07.378Z"}, {"lat": "44.129483", "lng": "9.69937", "elevation": "266.3999938964844", "time": "2013-09-20T12:22:16.346Z"}, {"lat": "44.129483", "lng": "9.699384", "elevation": "266.0", "time": "2013-09-20T12:22:17.341Z"}, {"lat": "44.129476", "lng": "9.699499", "elevation": "265.20001220703125", "time": "2013-09-20T12:22:26.354Z"}, {"lat": "44.129476", "lng": "9.699511", "elevation": "265.20001220703125", "time": "2013-09-20T12:22:27.362Z"}, {"lat": "44.129482", "lng": "9.699628", "elevation": "266.5", "time": "2013-09-20T12:22:35.343Z"}, {"lat": "44.129483", "lng": "9.699644", "elevation": "266.3999938964844", "time": "2013-09-20T12:22:36.344Z"}, {"lat": "44.129467", "lng": "9.69976", "elevation": "267.5", "time": "2013-09-20T12:22:49.347Z"}, {"lat": "44.129468", "lng": "9.699768", "elevation": "267.3999938964844", "time": "2013-09-20T12:22:50.393Z"}, {"lat": "44.129434", "lng": "9.699871", "elevation": "272.70001220703125", "time": "2013-09-20T12:23:01.424Z"}, {"lat": "44.129423", "lng": "9.699888", "elevation": "272.5", "time": "2013-09-20T12:23:02.388Z"}, {"lat": "44.129365", "lng": "9.699975", "elevation": "271.79998779296875", "time": "2013-09-20T12:23:08.350Z"}, {"lat": "44.12936", "lng": "9.699988", "elevation": "271.29998779296875", "time": "2013-09-20T12:23:09.347Z"}, {"lat": "44.12933", "lng": "9.700052", "elevation": "271.79998779296875", "time": "2013-09-20T12:23:20.350Z"}, {"lat": "44.12933", "lng": "9.700053", "elevation": "271.5", "time": "2013-09-20T12:23:21.346Z"}, {"lat": "44.129329", "lng": "9.700055", "elevation": "271.5", "time": "2013-09-20T12:23:22.414Z"}, {"lat": "44.129327", "lng": "9.700057", "elevation": "270.6000061035156", "time": "2013-09-20T12:23:23.346Z"}, {"lat": "44.129278", "lng": "9.700151", "elevation": "268.0", "time": "2013-09-20T12:23:32.453Z"}, {"lat": "44.129272", "lng": "9.70017", "elevation": "268.1000061035156", "time": "2013-09-20T12:23:33.429Z"}, {"lat": "44.129243", "lng": "9.700282", "elevation": "267.20001220703125", "time": "2013-09-20T12:23:39.480Z"}, {"lat": "44.129236", "lng": "9.700293", "elevation": "267.5", "time": "2013-09-20T12:23:40.440Z"}, {"lat": "44.129218", "lng": "9.700301", "elevation": "267.1000061035156", "time": "2013-09-20T12:23:46.423Z"}, {"lat": "44.129219", "lng": "9.700299", "elevation": "267.1000061035156", "time": "2013-09-20T12:23:47.492Z"}, {"lat": "44.129224", "lng": "9.700306", "elevation": "267.0", "time": "2013-09-20T12:23:51.366Z"}, {"lat": "44.129224", "lng": "9.700313", "elevation": "268.1000061035156", "time": "2013-09-20T12:23:52.360Z"}, {"lat": "44.129148", "lng": "9.70038", "elevation": "271.8999938964844", "time": "2013-09-20T12:24:00.359Z"}, {"lat": "44.129135", "lng": "9.700388", "elevation": "271.8999938964844", "time": "2013-09-20T12:24:01.357Z"}, {"lat": "44.129087", "lng": "9.700477", "elevation": "271.1000061035156", "time": "2013-09-20T12:24:08.351Z"}, {"lat": "44.12908", "lng": "9.700491", "elevation": "270.29998779296875", "time": "2013-09-20T12:24:09.370Z"}, {"lat": "44.129045", "lng": "9.700595", "elevation": "265.5", "time": "2013-09-20T12:24:17.351Z"}, {"lat": "44.129041", "lng": "9.70061", "elevation": "265.70001220703125", "time": "2013-09-20T12:24:18.484Z"}, {"lat": "44.129019", "lng": "9.700718", "elevation": "265.3999938964844", "time": "2013-09-20T12:24:25.357Z"}, {"lat": "44.129018", "lng": "9.700733", "elevation": "265.0", "time": "2013-09-20T12:24:26.436Z"}, {"lat": "44.128987", "lng": "9.700839", "elevation": "261.3999938964844", "time": "2013-09-20T12:24:34.489Z"}, {"lat": "44.128987", "lng": "9.700854", "elevation": "259.6000061035156", "time": "2013-09-20T12:24:35.475Z"}, {"lat": "44.128987", "lng": "9.700972", "elevation": "257.20001220703125", "time": "2013-09-20T12:24:43.506Z"}, {"lat": "44.128989", "lng": "9.700981", "elevation": "256.29998779296875", "time": "2013-09-20T12:24:44.354Z"}, {"lat": "44.128958", "lng": "9.701041", "elevation": "256.20001220703125", "time": "2013-09-20T12:25:03.298Z"}, {"lat": "44.128956", "lng": "9.701041", "elevation": "256.5", "time": "2013-09-20T12:25:03.369Z"}, {"lat": "44.128952", "lng": "9.70104", "elevation": "256.1000061035156", "time": "2013-09-20T12:25:04.359Z"}, {"lat": "44.128947", "lng": "9.701038", "elevation": "256.0", "time": "2013-09-20T12:25:05.360Z"}, {"lat": "44.128921", "lng": "9.701043", "elevation": "256.5", "time": "2013-09-20T12:25:11.363Z"}, {"lat": "44.128922", "lng": "9.701045", "elevation": "256.3999938964844", "time": "2013-09-20T12:25:12.357Z"}, {"lat": "44.128919", "lng": "9.701067", "elevation": "257.70001220703125", "time": "2013-09-20T12:25:46.355Z"}, {"lat": "44.128915", "lng": "9.701071", "elevation": "257.3999938964844", "time": "2013-09-20T12:25:47.359Z"}, {"lat": "44.128904", "lng": "9.701189", "elevation": "244.39999389648438", "time": "2013-09-20T12:26:03.357Z"}, {"lat": "44.128906", "lng": "9.701205", "elevation": "245.39999389648438", "time": "2013-09-20T12:26:04.361Z"}, {"lat": "44.128893", "lng": "9.701294", "elevation": "245.1999969482422", "time": "2013-09-20T12:26:13.437Z"}, {"lat": "44.128893", "lng": "9.701293", "elevation": "244.1999969482422", "time": "2013-09-20T12:26:14.473Z"}, {"lat": "44.128885", "lng": "9.701297", "elevation": "245.1999969482422", "time": "2013-09-20T12:26:26.363Z"}, {"lat": "44.128886", "lng": "9.701302", "elevation": "245.10000610351563", "time": "2013-09-20T12:26:27.362Z"}, {"lat": "44.128906", "lng": "9.701423", "elevation": "246.10000610351563", "time": "2013-09-20T12:26:42.371Z"}, {"lat": "44.128906", "lng": "9.701446", "elevation": "246.6999969482422", "time": "2013-09-20T12:26:43.362Z"}, {"lat": "44.128899", "lng": "9.701556", "elevation": "247.10000610351563", "time": "2013-09-20T12:26:48.363Z"}, {"lat": "44.128897", "lng": "9.701573", "elevation": "247.0", "time": "2013-09-20T12:26:49.367Z"}, {"lat": "44.128871", "lng": "9.701631", "elevation": "246.5", "time": "2013-09-20T12:26:59.367Z"}, {"lat": "44.128872", "lng": "9.701631", "elevation": "246.5", "time": "2013-09-20T12:27:00.366Z"}, {"lat": "44.128875", "lng": "9.701643", "elevation": "244.5", "time": "2013-09-20T12:28:08.370Z"}, {"lat": "44.128877", "lng": "9.70165", "elevation": "244.39999389648438", "time": "2013-09-20T12:28:09.380Z"}, {"lat": "44.12887", "lng": "9.701716", "elevation": "246.39999389648438", "time": "2013-09-20T12:28:23.361Z"}, {"lat": "44.12887", "lng": "9.701716", "elevation": "246.39999389648438", "time": "2013-09-20T12:28:23.393Z"}, {"lat": "44.128873", "lng": "9.701713", "elevation": "246.10000610351563", "time": "2013-09-20T12:28:52.380Z"}, {"lat": "44.128876", "lng": "9.70172", "elevation": "245.5", "time": "2013-09-20T12:28:53.441Z"}, {"lat": "44.128935", "lng": "9.701809", "elevation": "245.5", "time": "2013-09-20T12:28:59.379Z"}, {"lat": "44.128945", "lng": "9.701817", "elevation": "245.1999969482422", "time": "2013-09-20T12:29:00.380Z"}, {"lat": "44.129022", "lng": "9.701861", "elevation": "239.5", "time": "2013-09-20T12:29:09.381Z"}, {"lat": "44.129029", "lng": "9.701876", "elevation": "239.6999969482422", "time": "2013-09-20T12:29:10.387Z"}, {"lat": "44.129091", "lng": "9.701959", "elevation": "237.6999969482422", "time": "2013-09-20T12:29:19.455Z"}, {"lat": "44.129097", "lng": "9.701968", "elevation": "238.1999969482422", "time": "2013-09-20T12:29:20.479Z"}, {"lat": "44.129162", "lng": "9.702031", "elevation": "237.6999969482422", "time": "2013-09-20T12:29:29.432Z"}, {"lat": "44.129172", "lng": "9.702037", "elevation": "238.3000030517578", "time": "2013-09-20T12:29:30.416Z"}, {"lat": "44.129235", "lng": "9.702101", "elevation": "239.0", "time": "2013-09-20T12:29:36.433Z"}, {"lat": "44.129245", "lng": "9.702115", "elevation": "239.10000610351563", "time": "2013-09-20T12:29:37.451Z"}, {"lat": "44.129271", "lng": "9.702144", "elevation": "237.0", "time": "2013-09-20T12:29:43.470Z"}, {"lat": "44.129271", "lng": "9.70214", "elevation": "236.6999969482422", "time": "2013-09-20T12:29:44.482Z"}, {"lat": "44.129273", "lng": "9.70215", "elevation": "238.3000030517578", "time": "2013-09-20T12:31:03.379Z"}, {"lat": "44.129277", "lng": "9.702157", "elevation": "238.60000610351563", "time": "2013-09-20T12:31:04.389Z"}, {"lat": "44.129349", "lng": "9.702223", "elevation": "241.5", "time": "2013-09-20T12:31:13.393Z"}, {"lat": "44.129357", "lng": "9.702229", "elevation": "242.0", "time": "2013-09-20T12:31:14.389Z"}, {"lat": "44.129421", "lng": "9.7023", "elevation": "239.39999389648438", "time": "2013-09-20T12:31:21.384Z"}, {"lat": "44.129429", "lng": "9.702318", "elevation": "239.3000030517578", "time": "2013-09-20T12:31:22.388Z"}, {"lat": "44.129476", "lng": "9.702409", "elevation": "239.60000610351563", "time": "2013-09-20T12:31:26.384Z"}, {"lat": "44.129483", "lng": "9.70242", "elevation": "239.60000610351563", "time": "2013-09-20T12:31:27.386Z"}, {"lat": "44.129499", "lng": "9.702465", "elevation": "240.1999969482422", "time": "2013-09-20T12:31:37.386Z"}, {"lat": "44.129499", "lng": "9.702466", "elevation": "240.1999969482422", "time": "2013-09-20T12:31:38.430Z"}, {"lat": "44.129499", "lng": "9.702472", "elevation": "240.10000610351563", "time": "2013-09-20T12:31:44.390Z"}, {"lat": "44.1295", "lng": "9.702479", "elevation": "239.89999389648438", "time": "2013-09-20T12:31:45.392Z"}, {"lat": "44.129526", "lng": "9.702587", "elevation": "241.39999389648438", "time": "2013-09-20T12:31:58.392Z"}, {"lat": "44.129521", "lng": "9.7026", "elevation": "242.39999389648438", "time": "2013-09-20T12:31:59.517Z"}, {"lat": "44.129451", "lng": "9.70267", "elevation": "240.3000030517578", "time": "2013-09-20T12:32:11.391Z"}, {"lat": "44.129454", "lng": "9.702671", "elevation": "240.3000030517578", "time": "2013-09-20T12:32:12.394Z"}, {"lat": "44.129455", "lng": "9.702676", "elevation": "240.1999969482422", "time": "2013-09-20T12:32:16.399Z"}, {"lat": "44.129451", "lng": "9.702682", "elevation": "240.6999969482422", "time": "2013-09-20T12:32:17.395Z"}, {"lat": "44.129404", "lng": "9.702783", "elevation": "236.1999969482422", "time": "2013-09-20T12:32:28.460Z"}, {"lat": "44.1294", "lng": "9.702801", "elevation": "236.0", "time": "2013-09-20T12:32:29.594Z"}, {"lat": "44.129382", "lng": "9.702908", "elevation": "232.8000030517578", "time": "2013-09-20T12:32:40.557Z"}, {"lat": "44.129379", "lng": "9.702926", "elevation": "232.5", "time": "2013-09-20T12:32:41.438Z"}, {"lat": "44.129306", "lng": "9.703", "elevation": "236.0", "time": "2013-09-20T12:32:50.393Z"}, {"lat": "44.129296", "lng": "9.703005", "elevation": "235.89999389648438", "time": "2013-09-20T12:32:51.415Z"}, {"lat": "44.129223", "lng": "9.703072", "elevation": "233.3000030517578", "time": "2013-09-20T12:33:03.393Z"}, {"lat": "44.12922", "lng": "9.703076", "elevation": "233.3000030517578", "time": "2013-09-20T12:33:04.400Z"}, {"lat": "44.129218", "lng": "9.703082", "elevation": "232.8000030517578", "time": "2013-09-20T12:33:06.397Z"}, {"lat": "44.129217", "lng": "9.703084", "elevation": "232.6999969482422", "time": "2013-09-20T12:33:07.402Z"}, {"lat": "44.129212", "lng": "9.703099", "elevation": "232.39999389648438", "time": "2013-09-20T12:33:16.395Z"}, {"lat": "44.129208", "lng": "9.703101", "elevation": "232.1999969482422", "time": "2013-09-20T12:33:17.395Z"}, {"lat": "44.129155", "lng": "9.703195", "elevation": "229.8000030517578", "time": "2013-09-20T12:33:33.559Z"}, {"lat": "44.12915", "lng": "9.703203", "elevation": "229.3000030517578", "time": "2013-09-20T12:33:34.403Z"}, {"lat": "44.129095", "lng": "9.703298", "elevation": "224.39999389648438", "time": "2013-09-20T12:33:51.438Z"}, {"lat": "44.129092", "lng": "9.703302", "elevation": "224.5", "time": "2013-09-20T12:33:52.443Z"}, {"lat": "44.129028", "lng": "9.703389", "elevation": "223.60000610351563", "time": "2013-09-20T12:34:06.408Z"}, {"lat": "44.129018", "lng": "9.703398", "elevation": "223.6999969482422", "time": "2013-09-20T12:34:07.557Z"}, {"lat": "44.128966", "lng": "9.703497", "elevation": "219.0", "time": "2013-09-20T12:34:16.567Z"}, {"lat": "44.128962", "lng": "9.703506", "elevation": "218.39999389648438", "time": "2013-09-20T12:34:17.597Z"}, {"lat": "44.128888", "lng": "9.703562", "elevation": "214.39999389648438", "time": "2013-09-20T12:34:30.522Z"}, {"lat": "44.128883", "lng": "9.703575", "elevation": "214.10000610351563", "time": "2013-09-20T12:34:31.407Z"}, {"lat": "44.12883", "lng": "9.703668", "elevation": "213.10000610351563", "time": "2013-09-20T12:34:45.391Z"}, {"lat": "44.128823", "lng": "9.703683", "elevation": "213.0", "time": "2013-09-20T12:34:46.401Z"}, {"lat": "44.12877", "lng": "9.703782", "elevation": "212.60000610351563", "time": "2013-09-20T12:34:53.404Z"}, {"lat": "44.128767", "lng": "9.703785", "elevation": "212.5", "time": "2013-09-20T12:34:54.406Z"}, {"lat": "44.128728", "lng": "9.703793", "elevation": "212.3000030517578", "time": "2013-09-20T12:35:06.404Z"}, {"lat": "44.128728", "lng": "9.703795", "elevation": "212.3000030517578", "time": "2013-09-20T12:35:07.401Z"}, {"lat": "44.128729", "lng": "9.703799", "elevation": "212.1999969482422", "time": "2013-09-20T12:35:09.405Z"}, {"lat": "44.128728", "lng": "9.703805", "elevation": "211.10000610351563", "time": "2013-09-20T12:35:10.419Z"}, {"lat": "44.128703", "lng": "9.703918", "elevation": "208.3000030517578", "time": "2013-09-20T12:35:16.403Z"}, {"lat": "44.128695", "lng": "9.703941", "elevation": "209.60000610351563", "time": "2013-09-20T12:35:17.401Z"}, {"lat": "44.128657", "lng": "9.704026", "elevation": "209.0", "time": "2013-09-20T12:35:21.408Z"}, {"lat": "44.12865", "lng": "9.704052", "elevation": "208.1999969482422", "time": "2013-09-20T12:35:22.403Z"}, {"lat": "44.128642", "lng": "9.704164", "elevation": "204.89999389648438", "time": "2013-09-20T12:35:26.403Z"}, {"lat": "44.128642", "lng": "9.704191", "elevation": "203.8000030517578", "time": "2013-09-20T12:35:27.403Z"}, {"lat": "44.128601", "lng": "9.704301", "elevation": "204.60000610351563", "time": "2013-09-20T12:35:34.404Z"}, {"lat": "44.128592", "lng": "9.704309", "elevation": "204.60000610351563", "time": "2013-09-20T12:35:35.403Z"}, {"lat": "44.128533", "lng": "9.70439", "elevation": "202.10000610351563", "time": "2013-09-20T12:35:44.407Z"}, {"lat": "44.128522", "lng": "9.704393", "elevation": "202.3000030517578", "time": "2013-09-20T12:35:45.405Z"}, {"lat": "44.128457", "lng": "9.704467", "elevation": "202.1999969482422", "time": "2013-09-20T12:35:53.407Z"}, {"lat": "44.128454", "lng": "9.704479", "elevation": "202.10000610351563", "time": "2013-09-20T12:35:54.411Z"}, {"lat": "44.128382", "lng": "9.704547", "elevation": "199.8000030517578", "time": "2013-09-20T12:36:08.418Z"}, {"lat": "44.128374", "lng": "9.704549", "elevation": "199.0", "time": "2013-09-20T12:36:09.422Z"}, {"lat": "44.128295", "lng": "9.704591", "elevation": "203.3000030517578", "time": "2013-09-20T12:36:21.456Z"}, {"lat": "44.128287", "lng": "9.704589", "elevation": "203.10000610351563", "time": "2013-09-20T12:36:22.404Z"}, {"lat": "44.128277", "lng": "9.704572", "elevation": "204.5", "time": "2013-09-20T12:36:27.458Z"}, {"lat": "44.12828", "lng": "9.704571", "elevation": "204.10000610351563", "time": "2013-09-20T12:36:28.415Z"}, {"lat": "44.128278", "lng": "9.704576", "elevation": "203.8000030517578", "time": "2013-09-20T12:36:48.450Z"}, {"lat": "44.128273", "lng": "9.704577", "elevation": "203.6999969482422", "time": "2013-09-20T12:36:49.413Z"}, {"lat": "44.128198", "lng": "9.704595", "elevation": "201.39999389648438", "time": "2013-09-20T12:36:53.502Z"}, {"lat": "44.128176", "lng": "9.704605", "elevation": "201.0", "time": "2013-09-20T12:36:54.428Z"}, {"lat": "44.128098", "lng": "9.704642", "elevation": "201.10000610351563", "time": "2013-09-20T12:36:58.439Z"}, {"lat": "44.128086", "lng": "9.704649", "elevation": "200.60000610351563", "time": "2013-09-20T12:36:59.433Z"}, {"lat": "44.128024", "lng": "9.704725", "elevation": "201.0", "time": "2013-09-20T12:37:07.421Z"}, {"lat": "44.128015", "lng": "9.704735", "elevation": "200.3000030517578", "time": "2013-09-20T12:37:08.410Z"}, {"lat": "44.127939", "lng": "9.704802", "elevation": "201.5", "time": "2013-09-20T12:37:16.415Z"}, {"lat": "44.127932", "lng": "9.704812", "elevation": "200.39999389648438", "time": "2013-09-20T12:37:17.413Z"}, {"lat": "44.127851", "lng": "9.704862", "elevation": "199.60000610351563", "time": "2013-09-20T12:37:25.411Z"}, {"lat": "44.127842", "lng": "9.704868", "elevation": "198.0", "time": "2013-09-20T12:37:26.412Z"}, {"lat": "44.127764", "lng": "9.704929", "elevation": "196.89999389648438", "time": "2013-09-20T12:37:35.437Z"}, {"lat": "44.127755", "lng": "9.704934", "elevation": "196.60000610351563", "time": "2013-09-20T12:37:36.412Z"}, {"lat": "44.127692", "lng": "9.70502", "elevation": "195.60000610351563", "time": "2013-09-20T12:37:50.413Z"}, {"lat": "44.127682", "lng": "9.705018", "elevation": "196.0", "time": "2013-09-20T12:37:51.418Z"}, {"lat": "44.12761", "lng": "9.705085", "elevation": "197.8000030517578", "time": "2013-09-20T12:38:00.457Z"}, {"lat": "44.127601", "lng": "9.705095", "elevation": "198.10000610351563", "time": "2013-09-20T12:38:01.416Z"}, {"lat": "44.127524", "lng": "9.70515", "elevation": "201.1999969482422", "time": "2013-09-20T12:38:08.421Z"}, {"lat": "44.127507", "lng": "9.705155", "elevation": "201.60000610351563", "time": "2013-09-20T12:38:09.423Z"}, {"lat": "44.127428", "lng": "9.705203", "elevation": "199.8000030517578", "time": "2013-09-20T12:38:16.418Z"}, {"lat": "44.127425", "lng": "9.705221", "elevation": "200.5", "time": "2013-09-20T12:38:17.427Z"}, {"lat": "44.127347", "lng": "9.705267", "elevation": "200.10000610351563", "time": "2013-09-20T12:38:26.413Z"}, {"lat": "44.127337", "lng": "9.705264", "elevation": "199.8000030517578", "time": "2013-09-20T12:38:27.419Z"}, {"lat": "44.127269", "lng": "9.705196", "elevation": "199.0", "time": "2013-09-20T12:38:35.418Z"}, {"lat": "44.12726", "lng": "9.705196", "elevation": "198.8000030517578", "time": "2013-09-20T12:38:36.417Z"}, {"lat": "44.127177", "lng": "9.705226", "elevation": "198.6999969482422", "time": "2013-09-20T12:38:44.433Z"}, {"lat": "44.127162", "lng": "9.70522", "elevation": "199.1999969482422", "time": "2013-09-20T12:38:45.429Z"}, {"lat": "44.127075", "lng": "9.705187", "elevation": "201.60000610351563", "time": "2013-09-20T12:38:54.421Z"}, {"lat": "44.127073", "lng": "9.705186", "elevation": "200.6999969482422", "time": "2013-09-20T12:38:55.425Z"}, {"lat": "44.127074", "lng": "9.705191", "elevation": "202.39999389648438", "time": "2013-09-20T12:38:57.451Z"}, {"lat": "44.127075", "lng": "9.705194", "elevation": "202.6999969482422", "time": "2013-09-20T12:38:58.448Z"}, {"lat": "44.127073", "lng": "9.705195", "elevation": "202.6999969482422", "time": "2013-09-20T12:38:59.424Z"}, {"lat": "44.127069", "lng": "9.705196", "elevation": "202.39999389648438", "time": "2013-09-20T12:39:00.447Z"}, {"lat": "44.126983", "lng": "9.705228", "elevation": "200.39999389648438", "time": "2013-09-20T12:39:07.436Z"}, {"lat": "44.126973", "lng": "9.705236", "elevation": "199.89999389648438", "time": "2013-09-20T12:39:08.452Z"}, {"lat": "44.126891", "lng": "9.705271", "elevation": "200.8000030517578", "time": "2013-09-20T12:39:16.420Z"}, {"lat": "44.12688", "lng": "9.705274", "elevation": "201.39999389648438", "time": "2013-09-20T12:39:17.426Z"}, {"lat": "44.126794", "lng": "9.705289", "elevation": "201.8000030517578", "time": "2013-09-20T12:39:25.422Z"}, {"lat": "44.126784", "lng": "9.705294", "elevation": "203.5", "time": "2013-09-20T12:39:26.435Z"}, {"lat": "44.126701", "lng": "9.705321", "elevation": "204.1999969482422", "time": "2013-09-20T12:39:34.434Z"}, {"lat": "44.126692", "lng": "9.705322", "elevation": "203.3000030517578", "time": "2013-09-20T12:39:35.415Z"}, {"lat": "44.126611", "lng": "9.705346", "elevation": "204.39999389648438", "time": "2013-09-20T12:39:47.423Z"}, {"lat": "44.1266", "lng": "9.705351", "elevation": "203.8000030517578", "time": "2013-09-20T12:39:48.421Z"}, {"lat": "44.12651", "lng": "9.705339", "elevation": "204.5", "time": "2013-09-20T12:39:56.426Z"}, {"lat": "44.126498", "lng": "9.705339", "elevation": "204.89999389648438", "time": "2013-09-20T12:39:57.423Z"}, {"lat": "44.126414", "lng": "9.705331", "elevation": "203.60000610351563", "time": "2013-09-20T12:40:06.428Z"}, {"lat": "44.126406", "lng": "9.705328", "elevation": "204.5", "time": "2013-09-20T12:40:07.434Z"}, {"lat": "44.126321", "lng": "9.705322", "elevation": "205.1999969482422", "time": "2013-09-20T12:40:16.431Z"}, {"lat": "44.126312", "lng": "9.705322", "elevation": "205.39999389648438", "time": "2013-09-20T12:40:17.426Z"}, {"lat": "44.126223", "lng": "9.705316", "elevation": "205.5", "time": "2013-09-20T12:40:28.427Z"}, {"lat": "44.126218", "lng": "9.705313", "elevation": "205.3000030517578", "time": "2013-09-20T12:40:29.427Z"}, {"lat": "44.126131", "lng": "9.705326", "elevation": "205.39999389648438", "time": "2013-09-20T12:40:40.431Z"}, {"lat": "44.126122", "lng": "9.705322", "elevation": "205.1999969482422", "time": "2013-09-20T12:40:41.428Z"}, {"lat": "44.126033", "lng": "9.705315", "elevation": "207.89999389648438", "time": "2013-09-20T12:40:53.425Z"}, {"lat": "44.126028", "lng": "9.705317", "elevation": "209.0", "time": "2013-09-20T12:40:54.425Z"}, {"lat": "44.125964", "lng": "9.705384", "elevation": "205.60000610351563", "time": "2013-09-20T12:41:05.431Z"}, {"lat": "44.125953", "lng": "9.70539", "elevation": "205.39999389648438", "time": "2013-09-20T12:41:06.430Z"}, {"lat": "44.125871", "lng": "9.705406", "elevation": "206.8000030517578", "time": "2013-09-20T12:41:13.431Z"}, {"lat": "44.125863", "lng": "9.705412", "elevation": "207.60000610351563", "time": "2013-09-20T12:41:14.431Z"}, {"lat": "44.12584", "lng": "9.705447", "elevation": "209.60000610351563", "time": "2013-09-20T12:41:22.458Z"}, {"lat": "44.125839", "lng": "9.705442", "elevation": "209.6999969482422", "time": "2013-09-20T12:41:23.479Z"}, {"lat": "44.125834", "lng": "9.705434", "elevation": "209.6999969482422", "time": "2013-09-20T12:41:24.467Z"}, {"lat": "44.125754", "lng": "9.705474", "elevation": "210.0", "time": "2013-09-20T12:41:41.436Z"}, {"lat": "44.125746", "lng": "9.705478", "elevation": "209.60000610351563", "time": "2013-09-20T12:41:42.427Z"}, {"lat": "44.125667", "lng": "9.705535", "elevation": "210.89999389648438", "time": "2013-09-20T12:41:56.435Z"}, {"lat": "44.125661", "lng": "9.70553", "elevation": "211.10000610351563", "time": "2013-09-20T12:41:57.430Z"}, {"lat": "44.125642", "lng": "9.705512", "elevation": "211.1999969482422", "time": "2013-09-20T12:42:03.763Z"}, {"lat": "44.125642", "lng": "9.705512", "elevation": "211.10000610351563", "time": "2013-09-20T12:42:04.433Z"}, {"lat": "44.125641", "lng": "9.705517", "elevation": "210.10000610351563", "time": "2013-09-20T12:42:20.442Z"}, {"lat": "44.125637", "lng": "9.705523", "elevation": "209.3000030517578", "time": "2013-09-20T12:42:21.443Z"}, {"lat": "44.125573", "lng": "9.705609", "elevation": "208.6999969482422", "time": "2013-09-20T12:42:34.481Z"}, {"lat": "44.125564", "lng": "9.705608", "elevation": "208.5", "time": "2013-09-20T12:42:35.461Z"}, {"lat": "44.125502", "lng": "9.70569", "elevation": "204.10000610351563", "time": "2013-09-20T12:42:59.440Z"}, {"lat": "44.125494", "lng": "9.70569", "elevation": "205.3000030517578", "time": "2013-09-20T12:43:00.442Z"}, {"lat": "44.12542", "lng": "9.705738", "elevation": "203.89999389648438", "time": "2013-09-20T12:43:08.576Z"}, {"lat": "44.125415", "lng": "9.705751", "elevation": "204.60000610351563", "time": "2013-09-20T12:43:09.438Z"}, {"lat": "44.125409", "lng": "9.705799", "elevation": "203.1999969482422", "time": "2013-09-20T12:43:17.451Z"}, {"lat": "44.125409", "lng": "9.7058", "elevation": "203.1999969482422", "time": "2013-09-20T12:43:18.450Z"}, {"lat": "44.125401", "lng": "9.705805", "elevation": "202.6999969482422", "time": "2013-09-20T12:43:27.453Z"}, {"lat": "44.125398", "lng": "9.705807", "elevation": "203.0", "time": "2013-09-20T12:43:28.442Z"}, {"lat": "44.125308", "lng": "9.705818", "elevation": "200.39999389648438", "time": "2013-09-20T12:43:41.442Z"}, {"lat": "44.125303", "lng": "9.705818", "elevation": "200.39999389648438", "time": "2013-09-20T12:43:42.451Z"}, {"lat": "44.125296", "lng": "9.705823", "elevation": "201.1999969482422", "time": "2013-09-20T12:43:46.451Z"}, {"lat": "44.125297", "lng": "9.705825", "elevation": "200.89999389648438", "time": "2013-09-20T12:43:47.444Z"}, {"lat": "44.125301", "lng": "9.705845", "elevation": "200.8000030517578", "time": "2013-09-20T12:44:50.504Z"}, {"lat": "44.125303", "lng": "9.705852", "elevation": "200.6999969482422", "time": "2013-09-20T12:44:51.550Z"}, {"lat": "44.125306", "lng": "9.705857", "elevation": "200.1999969482422", "time": "2013-09-20T12:44:53.569Z"}, {"lat": "44.125306", "lng": "9.705857", "elevation": "200.1999969482422", "time": "2013-09-20T12:44:54.512Z"}, {"lat": "44.125297", "lng": "9.705855", "elevation": "200.10000610351563", "time": "2013-09-20T12:45:04.464Z"}, {"lat": "44.125293", "lng": "9.705857", "elevation": "200.60000610351563", "time": "2013-09-20T12:45:05.456Z"}, {"lat": "44.125211", "lng": "9.705871", "elevation": "200.5", "time": "2013-09-20T12:45:16.543Z"}, {"lat": "44.125203", "lng": "9.705875", "elevation": "200.1999969482422", "time": "2013-09-20T12:45:17.520Z"}, {"lat": "44.125137", "lng": "9.705898", "elevation": "198.8000030517578", "time": "2013-09-20T12:45:35.458Z"}, {"lat": "44.125138", "lng": "9.705901", "elevation": "198.89999389648438", "time": "2013-09-20T12:45:36.451Z"}, {"lat": "44.125132", "lng": "9.7059", "elevation": "198.8000030517578", "time": "2013-09-20T12:45:41.522Z"}, {"lat": "44.125126", "lng": "9.705904", "elevation": "198.39999389648438", "time": "2013-09-20T12:45:42.556Z"}, {"lat": "44.125051", "lng": "9.705964", "elevation": "196.3000030517578", "time": "2013-09-20T12:45:52.460Z"}, {"lat": "44.125046", "lng": "9.705967", "elevation": "195.89999389648438", "time": "2013-09-20T12:45:53.472Z"}, {"lat": "44.124957", "lng": "9.705985", "elevation": "193.5", "time": "2013-09-20T12:46:08.499Z"}, {"lat": "44.12495", "lng": "9.70599", "elevation": "193.0", "time": "2013-09-20T12:46:09.460Z"}, {"lat": "44.124887", "lng": "9.706078", "elevation": "191.10000610351563", "time": "2013-09-20T12:46:30.474Z"}, {"lat": "44.124885", "lng": "9.706087", "elevation": "190.8000030517578", "time": "2013-09-20T12:46:31.459Z"}, {"lat": "44.124875", "lng": "9.706202", "elevation": "187.1999969482422", "time": "2013-09-20T12:46:40.467Z"}, {"lat": "44.124873", "lng": "9.706214", "elevation": "186.3000030517578", "time": "2013-09-20T12:46:41.467Z"}, {"lat": "44.124862", "lng": "9.706334", "elevation": "182.1999969482422", "time": "2013-09-20T12:46:55.468Z"}, {"lat": "44.124861", "lng": "9.70634", "elevation": "181.8000030517578", "time": "2013-09-20T12:46:56.457Z"}, {"lat": "44.124781", "lng": "9.706388", "elevation": "180.60000610351563", "time": "2013-09-20T12:47:09.469Z"}, {"lat": "44.124774", "lng": "9.70639", "elevation": "180.5", "time": "2013-09-20T12:47:10.475Z"}, {"lat": "44.124711", "lng": "9.706452", "elevation": "181.0", "time": "2013-09-20T12:47:34.564Z"}, {"lat": "44.12471", "lng": "9.706451", "elevation": "181.39999389648438", "time": "2013-09-20T12:47:35.605Z"}, {"lat": "44.124705", "lng": "9.706454", "elevation": "181.3000030517578", "time": "2013-09-20T12:47:38.571Z"}, {"lat": "44.124702", "lng": "9.706456", "elevation": "181.1999969482422", "time": "2013-09-20T12:47:39.486Z"}, {"lat": "44.124628", "lng": "9.706508", "elevation": "178.3000030517578", "time": "2013-09-20T12:47:51.589Z"}, {"lat": "44.12462", "lng": "9.706511", "elevation": "178.3000030517578", "time": "2013-09-20T12:47:52.581Z"}, {"lat": "44.124535", "lng": "9.706541", "elevation": "178.0", "time": "2013-09-20T12:48:02.461Z"}, {"lat": "44.124525", "lng": "9.706549", "elevation": "178.10000610351563", "time": "2013-09-20T12:48:03.461Z"}, {"lat": "44.124455", "lng": "9.706625", "elevation": "176.6999969482422", "time": "2013-09-20T12:48:18.527Z"}, {"lat": "44.124454", "lng": "9.706628", "elevation": "176.1999969482422", "time": "2013-09-20T12:48:19.495Z"}, {"lat": "44.124452", "lng": "9.706645", "elevation": "174.10000610351563", "time": "2013-09-20T12:48:25.559Z"}, {"lat": "44.124451", "lng": "9.706647", "elevation": "174.0", "time": "2013-09-20T12:48:26.517Z"}, {"lat": "44.124445", "lng": "9.706657", "elevation": "172.89999389648438", "time": "2013-09-20T12:48:31.569Z"}, {"lat": "44.124444", "lng": "9.706659", "elevation": "173.0", "time": "2013-09-20T12:48:32.560Z"}, {"lat": "44.124443", "lng": "9.706661", "elevation": "172.6999969482422", "time": "2013-09-20T12:48:33.561Z"}, {"lat": "44.12444", "lng": "9.706667", "elevation": "171.8000030517578", "time": "2013-09-20T12:48:36.475Z"}, {"lat": "44.124437", "lng": "9.70667", "elevation": "171.60000610351563", "time": "2013-09-20T12:48:37.470Z"}, {"lat": "44.124409", "lng": "9.706687", "elevation": "170.5", "time": "2013-09-20T12:48:46.479Z"}, {"lat": "44.124408", "lng": "9.706689", "elevation": "169.8000030517578", "time": "2013-09-20T12:48:47.472Z"}, {"lat": "44.124407", "lng": "9.706693", "elevation": "169.60000610351563", "time": "2013-09-20T12:48:48.479Z"}, {"lat": "44.124402", "lng": "9.706717", "elevation": "169.6999969482422", "time": "2013-09-20T12:48:54.477Z"}, {"lat": "44.124401", "lng": "9.706718", "elevation": "169.6999969482422", "time": "2013-09-20T12:48:55.476Z"}, {"lat": "44.124399", "lng": "9.706725", "elevation": "169.60000610351563", "time": "2013-09-20T12:49:12.474Z"}, {"lat": "44.124399", "lng": "9.706731", "elevation": "169.60000610351563", "time": "2013-09-20T12:49:13.473Z"}, {"lat": "44.124433", "lng": "9.706832", "elevation": "162.3000030517578", "time": "2013-09-20T12:49:22.492Z"}, {"lat": "44.124436", "lng": "9.706845", "elevation": "161.8000030517578", "time": "2013-09-20T12:49:23.488Z"}, {"lat": "44.124378", "lng": "9.70694", "elevation": "160.6999969482422", "time": "2013-09-20T12:49:30.523Z"}, {"lat": "44.124371", "lng": "9.706949", "elevation": "160.6999969482422", "time": "2013-09-20T12:49:31.483Z"}, {"lat": "44.124356", "lng": "9.706976", "elevation": "160.8000030517578", "time": "2013-09-20T12:49:39.501Z"}, {"lat": "44.124356", "lng": "9.706977", "elevation": "160.89999389648438", "time": "2013-09-20T12:49:40.486Z"}, {"lat": "44.124355", "lng": "9.706983", "elevation": "159.60000610351563", "time": "2013-09-20T12:49:55.493Z"}, {"lat": "44.124357", "lng": "9.70699", "elevation": "159.1999969482422", "time": "2013-09-20T12:49:56.485Z"}, {"lat": "44.124397", "lng": "9.707086", "elevation": "159.1999969482422", "time": "2013-09-20T12:50:04.485Z"}, {"lat": "44.124403", "lng": "9.707097", "elevation": "159.60000610351563", "time": "2013-09-20T12:50:05.512Z"}, {"lat": "44.12445", "lng": "9.707187", "elevation": "157.5", "time": "2013-09-20T12:50:17.483Z"}, {"lat": "44.124449", "lng": "9.707187", "elevation": "157.8000030517578", "time": "2013-09-20T12:50:18.482Z"}, {"lat": "44.124453", "lng": "9.707198", "elevation": "158.10000610351563", "time": "2013-09-20T12:50:40.536Z"}, {"lat": "44.124457", "lng": "9.707203", "elevation": "156.89999389648438", "time": "2013-09-20T12:50:41.491Z"}, {"lat": "44.124518", "lng": "9.707285", "elevation": "158.10000610351563", "time": "2013-09-20T12:50:52.656Z"}, {"lat": "44.12452", "lng": "9.707295", "elevation": "158.60000610351563", "time": "2013-09-20T12:50:53.649Z"}, {"lat": "44.124515", "lng": "9.707414", "elevation": "158.0", "time": "2013-09-20T12:51:04.490Z"}, {"lat": "44.124513", "lng": "9.707434", "elevation": "157.39999389648438", "time": "2013-09-20T12:51:05.683Z"}, {"lat": "44.12446", "lng": "9.707516", "elevation": "159.60000610351563", "time": "2013-09-20T12:51:12.562Z"}, {"lat": "44.124451", "lng": "9.707528", "elevation": "161.10000610351563", "time": "2013-09-20T12:51:13.518Z"}, {"lat": "44.1244", "lng": "9.707616", "elevation": "162.1999969482422", "time": "2013-09-20T12:51:20.684Z"}, {"lat": "44.124394", "lng": "9.70763", "elevation": "162.0", "time": "2013-09-20T12:51:21.661Z"}, {"lat": "44.124326", "lng": "9.707697", "elevation": "159.5", "time": "2013-09-20T12:51:29.516Z"}, {"lat": "44.124322", "lng": "9.707712", "elevation": "158.39999389648438", "time": "2013-09-20T12:51:30.487Z"}, {"lat": "44.124296", "lng": "9.707822", "elevation": "157.5", "time": "2013-09-20T12:51:39.488Z"}, {"lat": "44.124289", "lng": "9.707829", "elevation": "158.10000610351563", "time": "2013-09-20T12:51:40.485Z"}, {"lat": "44.124213", "lng": "9.707878", "elevation": "160.10000610351563", "time": "2013-09-20T12:51:51.489Z"}, {"lat": "44.124205", "lng": "9.707883", "elevation": "159.89999389648438", "time": "2013-09-20T12:51:52.487Z"}, {"lat": "44.124127", "lng": "9.707928", "elevation": "159.8000030517578", "time": "2013-09-20T12:52:01.486Z"}, {"lat": "44.124119", "lng": "9.707933", "elevation": "160.39999389648438", "time": "2013-09-20T12:52:02.496Z"}, {"lat": "44.12404", "lng": "9.707982", "elevation": "160.3000030517578", "time": "2013-09-20T12:52:12.487Z"}, {"lat": "44.12403", "lng": "9.707983", "elevation": "160.60000610351563", "time": "2013-09-20T12:52:13.491Z"}, {"lat": "44.123946", "lng": "9.708006", "elevation": "160.5", "time": "2013-09-20T12:52:22.489Z"}, {"lat": "44.123936", "lng": "9.70801", "elevation": "160.6999969482422", "time": "2013-09-20T12:52:23.489Z"}, {"lat": "44.123856", "lng": "9.70806", "elevation": "159.0", "time": "2013-09-20T12:52:31.678Z"}, {"lat": "44.12385", "lng": "9.708069", "elevation": "158.89999389648438", "time": "2013-09-20T12:52:32.600Z"}, {"lat": "44.123791", "lng": "9.70815", "elevation": "156.0", "time": "2013-09-20T12:52:40.651Z"}, {"lat": "44.123784", "lng": "9.70816", "elevation": "156.8000030517578", "time": "2013-09-20T12:52:41.668Z"}, {"lat": "44.123718", "lng": "9.708225", "elevation": "155.5", "time": "2013-09-20T12:52:49.611Z"}, {"lat": "44.123711", "lng": "9.708235", "elevation": "154.8000030517578", "time": "2013-09-20T12:52:50.673Z"}, {"lat": "44.123644", "lng": "9.708297", "elevation": "154.60000610351563", "time": "2013-09-20T12:52:58.579Z"}, {"lat": "44.123633", "lng": "9.708301", "elevation": "154.5", "time": "2013-09-20T12:52:59.698Z"}, {"lat": "44.123547", "lng": "9.708334", "elevation": "151.1999969482422", "time": "2013-09-20T12:53:08.497Z"}, {"lat": "44.123539", "lng": "9.70834", "elevation": "150.60000610351563", "time": "2013-09-20T12:53:09.504Z"}, {"lat": "44.123486", "lng": "9.708428", "elevation": "147.60000610351563", "time": "2013-09-20T12:53:17.492Z"}, {"lat": "44.123481", "lng": "9.708442", "elevation": "147.39999389648438", "time": "2013-09-20T12:53:18.495Z"}, {"lat": "44.123423", "lng": "9.708533", "elevation": "148.8000030517578", "time": "2013-09-20T12:53:28.646Z"}, {"lat": "44.12342", "lng": "9.708543", "elevation": "148.89999389648438", "time": "2013-09-20T12:53:29.629Z"}, {"lat": "44.123342", "lng": "9.708599", "elevation": "147.1999969482422", "time": "2013-09-20T12:53:39.554Z"}, {"lat": "44.123333", "lng": "9.708604", "elevation": "145.5", "time": "2013-09-20T12:53:40.655Z"}, {"lat": "44.123279", "lng": "9.708686", "elevation": "144.39999389648438", "time": "2013-09-20T12:53:48.492Z"}, {"lat": "44.123273", "lng": "9.708699", "elevation": "143.6999969482422", "time": "2013-09-20T12:53:49.500Z"}, {"lat": "44.123238", "lng": "9.708806", "elevation": "143.1999969482422", "time": "2013-09-20T12:53:57.495Z"}, {"lat": "44.123227", "lng": "9.708813", "elevation": "144.10000610351563", "time": "2013-09-20T12:53:58.668Z"}, {"lat": "44.123139", "lng": "9.708827", "elevation": "143.8000030517578", "time": "2013-09-20T12:54:07.671Z"}, {"lat": "44.123132", "lng": "9.708825", "elevation": "143.89999389648438", "time": "2013-09-20T12:54:08.594Z"}, {"lat": "44.12305", "lng": "9.708873", "elevation": "145.5", "time": "2013-09-20T12:54:19.653Z"}, {"lat": "44.123044", "lng": "9.708883", "elevation": "146.89999389648438", "time": "2013-09-20T12:54:20.530Z"}, {"lat": "44.123033", "lng": "9.709003", "elevation": "142.1999969482422", "time": "2013-09-20T12:54:27.547Z"}, {"lat": "44.123037", "lng": "9.709016", "elevation": "142.0", "time": "2013-09-20T12:54:28.661Z"}, {"lat": "44.123044", "lng": "9.709024", "elevation": "141.6999969482422", "time": "2013-09-20T12:54:33.566Z"}, {"lat": "44.123044", "lng": "9.709024", "elevation": "141.39999389648438", "time": "2013-09-20T12:54:34.573Z"}, {"lat": "44.123045", "lng": "9.709027", "elevation": "140.8000030517578", "time": "2013-09-20T12:54:37.499Z"}, {"lat": "44.123046", "lng": "9.709033", "elevation": "140.0", "time": "2013-09-20T12:54:38.502Z"}, {"lat": "44.123049", "lng": "9.709143", "elevation": "141.89999389648438", "time": "2013-09-20T12:54:45.501Z"}, {"lat": "44.123042", "lng": "9.70916", "elevation": "143.6999969482422", "time": "2013-09-20T12:54:46.499Z"}, {"lat": "44.122993", "lng": "9.709248", "elevation": "144.10000610351563", "time": "2013-09-20T12:54:52.577Z"}, {"lat": "44.122987", "lng": "9.709261", "elevation": "144.39999389648438", "time": "2013-09-20T12:54:53.616Z"}, {"lat": "44.12295", "lng": "9.709362", "elevation": "143.60000610351563", "time": "2013-09-20T12:55:04.674Z"}, {"lat": "44.122939", "lng": "9.70937", "elevation": "144.1999969482422", "time": "2013-09-20T12:55:05.669Z"}, {"lat": "44.122904", "lng": "9.709478", "elevation": "141.1999969482422", "time": "2013-09-20T12:55:11.596Z"}, {"lat": "44.122901", "lng": "9.709496", "elevation": "140.8000030517578", "time": "2013-09-20T12:55:12.702Z"}, {"lat": "44.122878", "lng": "9.709545", "elevation": "136.0", "time": "2013-09-20T12:55:20.525Z"}, {"lat": "44.122881", "lng": "9.709537", "elevation": "135.8000030517578", "time": "2013-09-20T12:55:21.639Z"}, {"lat": "44.122882", "lng": "9.709527", "elevation": "136.3000030517578", "time": "2013-09-20T12:55:22.615Z"}, {"lat": "44.122811", "lng": "9.709459", "elevation": "139.8000030517578", "time": "2013-09-20T12:55:30.609Z"}, {"lat": "44.122801", "lng": "9.709451", "elevation": "139.1999969482422", "time": "2013-09-20T12:55:31.549Z"}, {"lat": "44.122742", "lng": "9.709389", "elevation": "138.60000610351563", "time": "2013-09-20T12:55:47.577Z"}, {"lat": "44.122741", "lng": "9.70939", "elevation": "138.6999969482422", "time": "2013-09-20T12:55:48.739Z"}, {"lat": "44.122741", "lng": "9.70938", "elevation": "138.89999389648438", "time": "2013-09-20T12:55:53.713Z"}, {"lat": "44.122739", "lng": "9.709376", "elevation": "137.6999969482422", "time": "2013-09-20T12:55:54.606Z"}, {"lat": "44.122705", "lng": "9.709331", "elevation": "139.0", "time": "2013-09-20T12:56:03.557Z"}, {"lat": "44.122706", "lng": "9.709335", "elevation": "138.89999389648438", "time": "2013-09-20T12:56:04.738Z"}] diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h new file mode 100755 index 0000000..33f432a --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h @@ -0,0 +1,25 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +/** + * To use GoogleMapsDemos, please register an API Key for your application and set it here. Your + * API Key should be kept private. + * + * See documentation on getting an API Key for your API Project here: + * https://developers.google.com/maps/documentation/ios/start#get-key + */ + +#error Register for API Key and insert here. Then delete this line. +static NSString *const kAPIKey = @""; diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h new file mode 100755 index 0000000..e274b13 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import +#import + +#import + +@interface AnimatedCurrentLocationViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m new file mode 100755 index 0000000..280e39b --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m @@ -0,0 +1,109 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h" + +@implementation AnimatedCurrentLocationViewController { + CLLocationManager *_manager; + GMSMapView *_mapView; + GMSMarker *_locationMarker; + +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:38.8879 + longitude:-77.0200 + zoom:17]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.myLocationButton = NO; + _mapView.settings.indoorPicker = NO; + + self.view = _mapView; + + // Setup location services + if (![CLLocationManager locationServicesEnabled]) { + NSLog(@"Please enable location services"); + return; + } + + if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { + NSLog(@"Please authorize location services"); + return; + } + + _manager = [[CLLocationManager alloc] init]; + if ([_manager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { + [_manager requestWhenInUseAuthorization]; + } + _manager.delegate = self; + _manager.desiredAccuracy = kCLLocationAccuracyBest; + _manager.distanceFilter = 5.0f; + [_manager startUpdatingLocation]; + +} + +#pragma mark - CLLocationManagerDelegate + +- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { + if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { + NSLog(@"Please authorize location services"); + return; + } + + NSLog(@"CLLocationManager error: %@", error.localizedFailureReason); + return; +} + +- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { + CLLocation *location = [locations lastObject]; + + if (_locationMarker == nil) { + _locationMarker = [[GMSMarker alloc] init]; + _locationMarker.position = location.coordinate; + + // Animated walker images derived from an www.angryanimator.com tutorial. + // See: http://www.angryanimator.com/word/2010/11/26/tutorial-2-walk-cycle/ + + NSArray *frames = @[[UIImage imageNamed:@"step1"], + [UIImage imageNamed:@"step2"], + [UIImage imageNamed:@"step3"], + [UIImage imageNamed:@"step4"], + [UIImage imageNamed:@"step5"], + [UIImage imageNamed:@"step6"], + [UIImage imageNamed:@"step7"], + [UIImage imageNamed:@"step8"]]; + + _locationMarker.icon = [UIImage animatedImageWithImages:frames duration:0.8]; + _locationMarker.groundAnchor = CGPointMake(0.5f, 0.97f); // Taking into account walker's shadow + _locationMarker.map = _mapView; + } else { + [CATransaction begin]; + [CATransaction setAnimationDuration:2.0]; + _locationMarker.position = location.coordinate; + [CATransaction commit]; + } + + GMSCameraUpdate *move = [GMSCameraUpdate setTarget:location.coordinate zoom:17]; + [_mapView animateWithCameraUpdate:move]; +} + + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h new file mode 100755 index 0000000..43de2ee --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface AnimatedUIViewMarkerViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m new file mode 100755 index 0000000..5414a96 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m @@ -0,0 +1,134 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h" + +#import + +// Returns a random value from 0-1.0f. +static CGFloat randf() { return (((float)arc4random() / 0x100000000) * 1.0f); } + +@interface AnimatedUIViewMarkerViewController () +@end + +@implementation AnimatedUIViewMarkerViewController { + GMSMapView *_mapView; + UIView *_infoView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = + [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:5]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.delegate = self; + + self.view = _mapView; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(applicationWillEnterForeground) + name:UIApplicationWillEnterForegroundNotification + object:nil]; + [_mapView clear]; + [self addDefaultMarker]; +} + +- (void)applicationWillEnterForeground { + [_mapView clear]; + [self addDefaultMarker]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker { + // Show an info window with dynamic content - a simple background color animation. + _infoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow"]]; + UIView *infoView = _infoView; + marker.tracksInfoWindowChanges = YES; + UIColor *color = [UIColor colorWithHue:randf() saturation:1.f brightness:1.f alpha:1.0f]; + _infoView.backgroundColor = [UIColor clearColor]; + [UIView animateWithDuration:1.0 + delay:1.0 + options:UIViewAnimationOptionCurveLinear + animations:^{ + infoView.backgroundColor = color; + } + completion:^(BOOL finished) { + [UIView animateWithDuration:1.0 + delay:0.0 + options:UIViewAnimationOptionCurveLinear + animations:^{ + infoView.backgroundColor = [UIColor clearColor]; + } + completion:^(BOOL finished2) { + marker.tracksInfoWindowChanges = NO; + }]; + }]; + + return _infoView; +} + +- (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker { + _infoView = nil; + marker.tracksInfoWindowChanges = NO; +} + +- (void)addDefaultMarker { + // Add a custom 'glow' marker with a pulsing blue shadow on Sydney. + GMSMarker *sydneyMarker = [[GMSMarker alloc] init]; + sydneyMarker.title = @"Sydney!"; + sydneyMarker.iconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"glow-marker"]]; + sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + sydneyMarker.iconView.contentMode = UIViewContentModeCenter; + CGRect oldBound = sydneyMarker.iconView.bounds; + CGRect bound = oldBound; + bound.size.width *= 2; + bound.size.height *= 2; + sydneyMarker.iconView.bounds = bound; + sydneyMarker.groundAnchor = CGPointMake(0.5, 0.75); + sydneyMarker.infoWindowAnchor = CGPointMake(0.5, 0.25); + UIView *sydneyGlow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"glow-marker"]]; + sydneyGlow.layer.shadowColor = [UIColor blueColor].CGColor; + sydneyGlow.layer.shadowOffset = CGSizeZero; + sydneyGlow.layer.shadowRadius = 8.0; + sydneyGlow.layer.shadowOpacity = 1.0; + sydneyGlow.layer.opacity = 0.0; + [sydneyMarker.iconView addSubview:sydneyGlow]; + sydneyGlow.center = CGPointMake(oldBound.size.width, oldBound.size.height); + sydneyMarker.map = _mapView; + [UIView animateWithDuration:1.0 + delay:0.0 + options:UIViewAnimationOptionCurveEaseInOut | UIViewKeyframeAnimationOptionAutoreverse | + UIViewKeyframeAnimationOptionRepeat + animations:^{ + sydneyGlow.layer.opacity = 1.0; + } + completion:^(BOOL finished) { + // If the animation is ever terminated, no need to keep tracking the view for changes. + sydneyMarker.tracksViewChanges = NO; + }]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h new file mode 100755 index 0000000..64dab07 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface BasicMapViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m new file mode 100755 index 0000000..c46c77f --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m @@ -0,0 +1,60 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/BasicMapViewController.h" + +#import + +@interface BasicMapViewController () +@end + +@implementation BasicMapViewController { + UILabel *_statusLabel; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:6]; + GMSMapView *view = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + view.delegate = self; + self.view = view; + + // Add status label, initially hidden. + _statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 30)]; + _statusLabel.alpha = 0.0f; + _statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _statusLabel.backgroundColor = [UIColor blueColor]; + _statusLabel.textColor = [UIColor whiteColor]; + _statusLabel.textAlignment = NSTextAlignmentCenter; + + [view addSubview:_statusLabel]; +} + +- (void)mapViewDidStartTileRendering:(GMSMapView *)mapView { + _statusLabel.alpha = 0.8f; + _statusLabel.text = @"Rendering"; +} + +- (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView { + _statusLabel.alpha = 0.0f; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h new file mode 100755 index 0000000..598c923 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface CameraViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m new file mode 100755 index 0000000..0e43a3a --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m @@ -0,0 +1,76 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/CameraViewController.h" + +#import + +@implementation CameraViewController { + GMSMapView *_mapView; + NSTimer *timer; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.809487 + longitude:144.965699 + zoom:20 + bearing:0 + viewingAngle:0]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.zoomGestures = NO; + _mapView.settings.scrollGestures = NO; + _mapView.settings.rotateGestures = NO; + _mapView.settings.tiltGestures = NO; + + self.view = _mapView; +} + +- (void)moveCamera { + GMSCameraPosition *camera = _mapView.camera; + float zoom = fmaxf(camera.zoom - 0.1f, 17.5f); + + GMSCameraPosition *newCamera = + [[GMSCameraPosition alloc] initWithTarget:camera.target + zoom:zoom + bearing:camera.bearing + 10 + viewingAngle:camera.viewingAngle + 10]; + [_mapView animateToCameraPosition:newCamera]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + timer = [NSTimer scheduledTimerWithTimeInterval:1.f/30.f + target:self + selector:@selector(moveCamera) + userInfo:nil + repeats:YES]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [timer invalidate]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + [timer invalidate]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h new file mode 100755 index 0000000..6490a04 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h @@ -0,0 +1,19 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface CustomIndoorViewController : UIViewController +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m new file mode 100755 index 0000000..ab77449 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m @@ -0,0 +1,154 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/CustomIndoorViewController.h" + +#import + +@interface CustomIndoorViewController () < + GMSIndoorDisplayDelegate, + UIPickerViewDelegate, + UIPickerViewDataSource> + +@end + +@implementation CustomIndoorViewController { + GMSMapView *_mapView; + UIPickerView *_levelPickerView; + NSArray *_levels; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318 + longitude:-122.403874 + zoom:18]; + + // set backgroundColor, otherwise UIPickerView fades into the background + self.view.backgroundColor = [UIColor grayColor]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.myLocationButton = NO; + _mapView.settings.indoorPicker = NO; // We are implementing a custom level picker. + + _mapView.indoorEnabled = YES; // Defaults to YES. Set to NO to hide indoor maps. + _mapView.indoorDisplay.delegate = self; + _mapView.translatesAutoresizingMaskIntoConstraints = NO; + [self.view addSubview:_mapView]; + + // This UIPickerView will be populated with the levels of the active building. + _levelPickerView = [[UIPickerView alloc] init]; + _levelPickerView.delegate = self; + _levelPickerView.dataSource = self; + _levelPickerView.showsSelectionIndicator = YES; + _levelPickerView.translatesAutoresizingMaskIntoConstraints = NO; + [self.view addSubview:_levelPickerView]; + + // The height of the UIPickerView, used below in the vertical constraint + NSDictionary *metrics = @{@"height": @180.0}; + NSDictionary *views = NSDictionaryOfVariableBindings(_mapView, _levelPickerView); + + // Constraining the map to the full width of the display. + // The |_levelPickerView| is constrained below with the NSLayoutFormatAlignAll* + // See http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Articles/formatLanguage.html + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"|[_mapView]|" + options:0 + metrics:metrics + views:views]]; + + // Constraining the _mapView and the _levelPickerView as siblings taking + // the full height of the display, with _levelPickerView at 200 points high + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:|[_mapView][_levelPickerView(height)]|" + options:NSLayoutFormatAlignAllLeft|NSLayoutFormatAlignAllRight + metrics:metrics + views:views]]; +} + +#pragma mark - GMSIndoorDisplayDelegate + +- (void)didChangeActiveBuilding:(GMSIndoorBuilding *)building { + // Everytime we change active building force the picker to re-display the labels. + + NSMutableArray *levels = [NSMutableArray array]; + if (building.underground) { + // If this building is completely underground, add a fake 'top' floor. This must be the 'boxed' + // nil, [NSNull null], as NSArray/NSMutableArray cannot contain nils. + [levels addObject:[NSNull null]]; + } + [levels addObjectsFromArray:building.levels]; + _levels = [levels copy]; + + [_levelPickerView reloadAllComponents]; + [_levelPickerView selectRow:-1 inComponent:0 animated:NO]; + + // UIPickerView insists on having some data; disable interaction if there's no levels. + _levelPickerView.userInteractionEnabled = (_levels.count > 0); +} + +- (void)didChangeActiveLevel:(GMSIndoorLevel *)level { + // On level change, sync our level picker's selection to the IndoorDisplay. + if (level == nil) { + level = (id)[NSNull null]; // box nil to NSNull for use in NSArray + } + NSUInteger index = [_levels indexOfObject:level]; + if (index != NSNotFound) { + NSInteger currentlySelectedLevel = [_levelPickerView selectedRowInComponent:0]; + if ((NSInteger)index != currentlySelectedLevel) { + [_levelPickerView selectRow:index inComponent:0 animated:NO]; + } + } +} + +#pragma mark - UIPickerViewDelegate + +- (void)pickerView:(UIPickerView *)pickerView + didSelectRow:(NSInteger)row + inComponent:(NSInteger)component { + // On user selection of a level in the picker, set the right level in IndoorDisplay + id level = _levels[row]; + if (level == [NSNull null]) { + level = nil; // unbox NSNull + } + [_mapView.indoorDisplay setActiveLevel:level]; +} + +- (NSString *)pickerView:(UIPickerView *)pickerView + titleForRow:(NSInteger)row + forComponent:(NSInteger)component { + id object = _levels[row]; + if (object == [NSNull null]) { + return @"\u2014"; // use an em dash for 'above ground' + } + GMSIndoorLevel *level = object; + return level.name; +} + +#pragma mark - UIPickerViewDataSource + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { + return 1; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { + return _levels.count; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h new file mode 100755 index 0000000..6452081 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface CustomMarkersViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m new file mode 100755 index 0000000..f0d0bfc --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m @@ -0,0 +1,120 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/CustomMarkersViewController.h" + +#import + +static int kMarkerCount = 0; + +// Returns a random value from 0-1.0f. +static CGFloat randf() { + return (((float)arc4random() / 0x100000000) * 1.0f); +} + +@implementation CustomMarkersViewController { + GMSMapView *_mapView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = + [GMSCameraPosition cameraWithLatitude:-37.81969 longitude:144.966085 zoom:4]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + [self addDefaultMarkers]; + + // Add a button which adds random markers to the map. + UIBarButtonItem *addButton = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd + target:self + action:@selector(didTapAdd)]; + addButton.accessibilityLabel = @"Add Markers"; + UIBarButtonItem *clearButton = [[UIBarButtonItem alloc] initWithTitle:@"Clear Markers" + style:UIBarButtonItemStylePlain + target:self + action:@selector(didTapClear)]; + self.navigationItem.rightBarButtonItems = @[ addButton, clearButton ]; + + self.view = _mapView; +} + +- (void)addDefaultMarkers { + // Add a custom 'glow' marker around Sydney. + GMSMarker *sydneyMarker = [[GMSMarker alloc] init]; + sydneyMarker.title = @"Sydney!"; + sydneyMarker.icon = [UIImage imageNamed:@"glow-marker"]; + sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + sydneyMarker.map = _mapView; + + // Add a custom 'arrow' marker pointing to Melbourne. + GMSMarker *melbourneMarker = [[GMSMarker alloc] init]; + melbourneMarker.title = @"Melbourne!"; + melbourneMarker.icon = [UIImage imageNamed:@"arrow"]; + melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); + melbourneMarker.map = _mapView; +} + +- (void)didTapAdd { + for (int i = 0; i < 10; ++i) { + // Add a marker every 0.25 seconds for the next ten markers, randomly + // within the bounds of the camera as it is at that point. + double delayInSeconds = (i * 0.25); + dispatch_time_t popTime = + dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void) { + GMSVisibleRegion region = [_mapView.projection visibleRegion]; + GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithRegion:region]; + [self addMarkerInBounds:bounds]; + }); + } +} + +- (void)addMarkerInBounds:(GMSCoordinateBounds *)bounds { + CLLocationDegrees latitude = + bounds.southWest.latitude + randf() * (bounds.northEast.latitude - bounds.southWest.latitude); + + // If the visible region crosses the antimeridian (the right-most point is + // "smaller" than the left-most point), adjust the longitude accordingly. + BOOL offset = (bounds.northEast.longitude < bounds.southWest.longitude); + CLLocationDegrees longitude = + bounds.southWest.longitude + + randf() * (bounds.northEast.longitude - bounds.southWest.longitude + (offset ? 360 : 0)); + if (longitude > 180.f) { + longitude -= 360.f; + } + + UIColor *color = [UIColor colorWithHue:randf() saturation:1.f brightness:1.f alpha:1.0f]; + + CLLocationCoordinate2D position = CLLocationCoordinate2DMake(latitude, longitude); + GMSMarker *marker = [GMSMarker markerWithPosition:position]; + marker.title = [NSString stringWithFormat:@"Marker #%d", ++kMarkerCount]; + marker.appearAnimation = kGMSMarkerAnimationPop; + marker.icon = [GMSMarker markerImageWithColor:color]; + + marker.rotation = (randf() - 0.5f) * 20; // rotate between -10 and +10 degrees + + marker.map = _mapView; +} + +- (void)didTapClear { + [_mapView clear]; + [self addDefaultMarkers]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h new file mode 100755 index 0000000..e617460 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface DoubleMapViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m new file mode 100755 index 0000000..e62c03b --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m @@ -0,0 +1,81 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/DoubleMapViewController.h" + +#import + +@interface DoubleMapViewController () +@end + +@implementation DoubleMapViewController { + GMSMapView *_mapView; + GMSMapView *_boundMapView; +} + ++ (GMSCameraPosition *)defaultCamera { + return [GMSCameraPosition cameraWithLatitude:37.7847 + longitude:-122.41 + zoom:5]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Two map views, second one has its camera target controlled by the first. + CGRect frame = self.view.bounds; + frame.size.height = frame.size.height / 2; + _mapView = [GMSMapView mapWithFrame:frame camera:[DoubleMapViewController defaultCamera]]; + _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | + UIViewAutoresizingFlexibleHeight | + UIViewAutoresizingFlexibleBottomMargin; + + _mapView.delegate = self; + [self.view addSubview:_mapView]; + + frame = self.view.bounds; + frame.size.height = frame.size.height / 2; + frame.origin.y = frame.size.height; + _boundMapView = + [GMSMapView mapWithFrame:frame camera:[DoubleMapViewController defaultCamera]]; + _boundMapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | + UIViewAutoresizingFlexibleHeight | + UIViewAutoresizingFlexibleTopMargin; + _boundMapView.settings.scrollGestures = NO; + + [self.view addSubview:_boundMapView]; +} + +- (void)viewWillTransitionToSize:(CGSize)size + withTransitionCoordinator:(id)coordinator { + [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; + CGRect frame = self.view.bounds; + frame.size.height = frame.size.height / 2; + _mapView.frame = frame; +} + +- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { + GMSCameraPosition *previousCamera = _boundMapView.camera; + _boundMapView.camera = [GMSCameraPosition cameraWithTarget:position.target + zoom:previousCamera.zoom + bearing:previousCamera.bearing + viewingAngle:previousCamera.viewingAngle]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h new file mode 100755 index 0000000..67daa82 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface FitBoundsViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m new file mode 100755 index 0000000..c68d91a --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m @@ -0,0 +1,95 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/FitBoundsViewController.h" + +#import + +@interface FitBoundsViewController () +@end + +@implementation FitBoundsViewController { + GMSMapView *_mapView; + NSMutableArray *_markers; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.delegate = self; + self.view = _mapView; + + // Add a default marker around Sydney. + GMSMarker *sydneyMarker = [[GMSMarker alloc] init]; + sydneyMarker.title = @"Sydney!"; + sydneyMarker.icon = [UIImage imageNamed:@"glow-marker"]; + sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + sydneyMarker.map = _mapView; + + GMSMarker *anotherSydneyMarker = [[GMSMarker alloc] init]; + anotherSydneyMarker.title = @"Sydney 2!"; + anotherSydneyMarker.icon = [UIImage imageNamed:@"glow-marker"]; + anotherSydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 149.2086); + anotherSydneyMarker.map = _mapView; + + // Create a list of markers, adding the Sydney marker. + _markers = [NSMutableArray arrayWithObject:sydneyMarker]; + [_markers addObject:anotherSydneyMarker]; + + // Create a button that, when pressed, updates the camera to fit the bounds + // of the specified markers. + UIBarButtonItem *fitBoundsButton = + [[UIBarButtonItem alloc] initWithTitle:@"Fit Bounds" + style:UIBarButtonItemStylePlain + target:self + action:@selector(didTapFitBounds)]; + self.navigationItem.rightBarButtonItem = fitBoundsButton; +} + +- (void)didTapFitBounds { + if (_markers.count == 0) return; + CLLocationCoordinate2D firstPos = ((GMSMarker *)_markers.firstObject).position; + GMSCoordinateBounds *bounds = + [[GMSCoordinateBounds alloc] initWithCoordinate:firstPos coordinate:firstPos]; + for (GMSMarker *marker in _markers) { + bounds = [bounds includingCoordinate:marker.position]; + } + GMSCameraUpdate *update = [GMSCameraUpdate fitBounds:bounds withPadding:50.0f]; + [_mapView moveCamera:update]; +} + +#pragma mark - GMSMapViewDelegate + +- (void)mapView:(GMSMapView *)mapView + didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate { + GMSMarker *marker = [[GMSMarker alloc] init]; + marker.title = [NSString stringWithFormat:@"Marker at: %.2f,%.2f", + coordinate.latitude, coordinate.longitude]; + marker.position = coordinate; + marker.appearAnimation = kGMSMarkerAnimationPop; + marker.map = _mapView; + + // Add the new marker to the list of markers. + [_markers addObject:marker]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h new file mode 100755 index 0000000..a9d7db6 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface FixedPanoramaViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m new file mode 100755 index 0000000..56b9515 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m @@ -0,0 +1,48 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/FixedPanoramaViewController.h" + +#import + +static CLLocationCoordinate2D kPanoramaNear = {-33.732022, 150.312114}; + +@interface FixedPanoramaViewController () +@end + +@implementation FixedPanoramaViewController { + GMSPanoramaView *_view; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + _view = [GMSPanoramaView panoramaWithFrame:CGRectZero + nearCoordinate:kPanoramaNear]; + _view.camera = [GMSPanoramaCamera cameraWithHeading:180 + pitch:-10 + zoom:0]; + _view.delegate = self; + _view.orientationGestures = NO; + _view.navigationGestures = NO; + _view.navigationLinksHidden = YES; + self.view = _view; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h new file mode 100755 index 0000000..a4cd6b9 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface FrameRateViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m new file mode 100755 index 0000000..28d2a42 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m @@ -0,0 +1,92 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/FrameRateViewController.h" + +#import + +@interface FrameRateViewController () + +@end + +@implementation FrameRateViewController { + GMSMapView *_mapView; + UITextView *_statusTextView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = + [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:6]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + self.view = _mapView; + + // Add a display for the current frame rate mode. + _statusTextView = [[UITextView alloc] init]; + _statusTextView.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 0); + _statusTextView.text = @""; + _statusTextView.textAlignment = NSTextAlignmentCenter; + _statusTextView.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8f]; + _statusTextView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _statusTextView.editable = NO; + [self.view addSubview:_statusTextView]; + [_statusTextView sizeToFit]; + + // Add a button toggling through modes. + self.navigationItem.rightBarButtonItem = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay + target:self + action:@selector(didTapNext)]; + [self updateStatus]; +} + +- (void)didTapNext { + _mapView.preferredFrameRate = [self nextFrameRate]; + [self updateStatus]; +} + ++ (NSString *)nameForFrameRate:(GMSFrameRate)frameRate { + switch (frameRate) { + case kGMSFrameRatePowerSave: + return @"PowerSave"; + case kGMSFrameRateConservative: + return @"Conservative"; + case kGMSFrameRateMaximum: + return @"Maximum"; + } +} + +- (GMSFrameRate)nextFrameRate { + switch (_mapView.preferredFrameRate) { + case kGMSFrameRatePowerSave: + return kGMSFrameRateConservative; + case kGMSFrameRateConservative: + return kGMSFrameRateMaximum; + case kGMSFrameRateMaximum: + return kGMSFrameRatePowerSave; + } +} + +- (void)updateStatus { + _statusTextView.text = + [NSString stringWithFormat:@"Preferred frame rate: %@", + [self.class nameForFrameRate:_mapView.preferredFrameRate]]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h new file mode 100755 index 0000000..5520240 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import + +@interface GeocoderViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m new file mode 100755 index 0000000..c601f13 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m @@ -0,0 +1,68 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/GeocoderViewController.h" + +#import + +@implementation GeocoderViewController { + GMSMapView *_mapView; + GMSGeocoder *_geocoder; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:12]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.delegate = self; + + _geocoder = [[GMSGeocoder alloc] init]; + + self.view = _mapView; +} + +- (void)mapView:(GMSMapView *)mapView + didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate { + // On a long press, reverse geocode this location. + GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response, NSError *error) { + GMSAddress *address = response.firstResult; + if (address) { + NSLog(@"Geocoder result: %@", address); + + GMSMarker *marker = [GMSMarker markerWithPosition:address.coordinate]; + + marker.title = [[address lines] firstObject]; + if ([address lines].count > 1) { + marker.snippet = [[address lines] objectAtIndex:1]; + } + + marker.appearAnimation = kGMSMarkerAnimationPop; + marker.map = _mapView; + } else { + NSLog(@"Could not reverse geocode point (%f,%f): %@", + coordinate.latitude, coordinate.longitude, error); + } + }; + [_geocoder reverseGeocodeCoordinate:coordinate completionHandler:handler]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h new file mode 100755 index 0000000..a460bd3 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface GestureControlViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m new file mode 100755 index 0000000..6b44381 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m @@ -0,0 +1,74 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/GestureControlViewController.h" + +#import + +@implementation GestureControlViewController { + GMSMapView *_mapView; + UISwitch *_zoomSwitch; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-25.5605 + longitude:133.605097 + zoom:3]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.autoresizingMask = + UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + + self.view = [[UIView alloc] initWithFrame:CGRectZero]; + [self.view addSubview:_mapView]; + + UIView *holder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 59)]; + holder.autoresizingMask = + UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; + holder.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.8f]; + [self.view addSubview:holder]; + + // Zoom label. + UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 16, 200, 29)]; + label.text = @"Zooming?"; + label.font = [UIFont boldSystemFontOfSize:18.0f]; + label.textAlignment = NSTextAlignmentLeft; + label.backgroundColor = [UIColor clearColor]; + label.layer.shadowColor = [[UIColor whiteColor] CGColor]; + label.layer.shadowOffset = CGSizeMake(0.0f, 1.0f); + label.layer.shadowOpacity = 1.0f; + label.layer.shadowRadius = 0.0f; + [holder addSubview:label]; + + // Control zooming. + _zoomSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(-90, 16, 0, 0)]; + _zoomSwitch.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + [_zoomSwitch addTarget:self + action:@selector(didChangeZoomSwitch) + forControlEvents:UIControlEventValueChanged]; + _zoomSwitch.on = YES; + [holder addSubview:_zoomSwitch]; +} + +- (void)didChangeZoomSwitch { + _mapView.settings.zoomGestures = _zoomSwitch.isOn; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h new file mode 100755 index 0000000..04122fa --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface GradientPolylinesViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m new file mode 100755 index 0000000..f6e0d9c --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m @@ -0,0 +1,92 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/GradientPolylinesViewController.h" + +#import + + +@implementation GradientPolylinesViewController { + GMSMapView *_mapView; + GMSPolyline *_polyline; + NSMutableArray *_trackData; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:44.1314 + longitude:9.6921 + zoom:14.059f + bearing:328.f + viewingAngle:40.f]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + self.view = _mapView; + + [self parseTrackFile]; + [_polyline setSpans:[self gradientSpans]]; +} + +- (NSArray *)gradientSpans { + NSMutableArray *colorSpans = [NSMutableArray array]; + NSUInteger count = _trackData.count; + UIColor *prevColor; + for (NSUInteger i = 0; i < count; i++) { + NSDictionary *dict = [_trackData objectAtIndex:i]; + double elevation = [[dict objectForKey:@"elevation"] doubleValue]; + + UIColor *toColor = [UIColor colorWithHue:(float)elevation/700 + saturation:1.f + brightness:.9f + alpha:1.f]; + + if (prevColor == nil) { + prevColor = toColor; + } + + GMSStrokeStyle *style = [GMSStrokeStyle gradientFromColor:prevColor toColor:toColor]; + [colorSpans addObject:[GMSStyleSpan spanWithStyle:style]]; + + prevColor = toColor; + } + return colorSpans; +} + +- (void)parseTrackFile { + NSString *filePath = [[NSBundle mainBundle] pathForResource:@"track" ofType:@"json"]; + NSData *data = [NSData dataWithContentsOfFile:filePath]; + NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; + _trackData = [[NSMutableArray alloc] init]; + GMSMutablePath *path = [GMSMutablePath path]; + + for (NSUInteger i = 0; i < json.count; i++) { + NSDictionary *info = [json objectAtIndex:i]; + NSNumber *elevation = [info objectForKey:@"elevation"]; + CLLocationDegrees lat = [[info objectForKey:@"lat"] doubleValue]; + CLLocationDegrees lng = [[info objectForKey:@"lng"] doubleValue]; + CLLocation *loc = [[CLLocation alloc] initWithLatitude:lat longitude:lng]; + [_trackData addObject:@{@"loc": loc, @"elevation": elevation}]; + [path addLatitude:lat longitude:lng]; + } + + _polyline = [GMSPolyline polylineWithPath:path]; + _polyline.strokeWidth = 6; + _polyline.map = _mapView; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h new file mode 100755 index 0000000..42c9dbc --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface GroundOverlayViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m new file mode 100755 index 0000000..17210ba --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m @@ -0,0 +1,64 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/GroundOverlayViewController.h" + +#import + +@interface GroundOverlayViewController () +@end + +@implementation GroundOverlayViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216, -74.22655); + CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941, -74.12544); + + GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest + coordinate:northEast]; + + // Choose the midpoint of the coordinate to focus the camera on. + CLLocationCoordinate2D newark = GMSGeometryInterpolate(southWest, northEast, 0.5); + GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:newark + zoom:12 + bearing:0 + viewingAngle:45]; + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + mapView.delegate = self; + + // Add the ground overlay, centered in Newark, NJ + GMSGroundOverlay *groundOverlay = [[GMSGroundOverlay alloc] init]; + // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg + groundOverlay.icon = [UIImage imageNamed:@"newark_nj_1922.jpg"]; + groundOverlay.tappable = YES; + groundOverlay.position = newark; + groundOverlay.bounds = overlayBounds; + groundOverlay.map = mapView; + + self.view = mapView; +} + +- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay { + float opacity = (((float)arc4random()/0x100000000)*0.5f + 0.5f); + ((GMSGroundOverlay *)overlay).opacity = opacity; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h new file mode 100755 index 0000000..b671dc6 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import + +@interface IndoorMuseumNavigationViewController : UIViewController< + GMSMapViewDelegate, + GMSIndoorDisplayDelegate> + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m new file mode 100755 index 0000000..36db445 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m @@ -0,0 +1,130 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h" + +@implementation IndoorMuseumNavigationViewController { + GMSMapView *_mapView; + NSArray *_exhibits; // Array of JSON exhibit data. + NSDictionary *_exhibit; // The currently selected exhibit. Will be nil initially. + GMSMarker *_marker; + NSDictionary *_levels; // The levels dictionary is updated when a new building is selected, and + // contains mapping from localized level name to GMSIndoorLevel. +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:38.8879 + longitude:-77.0200 + zoom:17]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.myLocationButton = NO; + _mapView.settings.indoorPicker = NO; + _mapView.delegate = self; + _mapView.indoorDisplay.delegate = self; + + self.view = _mapView; + + // Load the exhibits configuration from JSON + NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"museum-exhibits" ofType:@"json"]; + NSData *data = [NSData dataWithContentsOfFile:jsonPath]; + _exhibits = [NSJSONSerialization JSONObjectWithData:data + options:kNilOptions + error:nil]; + + + UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] init]; + [segmentedControl setTintColor:[UIColor colorWithRed:0.373f green:0.667f blue:0.882f alpha:1.0f]]; + + segmentedControl.translatesAutoresizingMaskIntoConstraints = NO; + [segmentedControl addTarget:self + action:@selector(exhibitSelected:) + forControlEvents:UIControlEventValueChanged]; + [self.view addSubview:segmentedControl]; + + for (NSDictionary *exhibit in _exhibits) { + [segmentedControl insertSegmentWithImage:[UIImage imageNamed:exhibit[@"key"]] + atIndex:[_exhibits indexOfObject:exhibit] + animated:NO]; + } + + NSDictionary *views = NSDictionaryOfVariableBindings(segmentedControl); + + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"[segmentedControl]-|" + options:kNilOptions + metrics:nil + views:views]]; + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:[segmentedControl]-|" + options:kNilOptions + metrics:nil + views:views]]; + +} + +- (void)moveMarker { + CLLocationCoordinate2D loc = CLLocationCoordinate2DMake([_exhibit[@"lat"] doubleValue], + [_exhibit[@"lng"] doubleValue]); + if (_marker == nil) { + _marker = [GMSMarker markerWithPosition:loc]; + _marker.map = _mapView; + } else { + _marker.position = loc; + } + _marker.title = _exhibit[@"name"]; + [_mapView animateToLocation:loc]; + [_mapView animateToZoom:19]; +} + +- (void)exhibitSelected:(UISegmentedControl *)segmentedControl { + _exhibit = _exhibits[[segmentedControl selectedSegmentIndex]]; + [self moveMarker]; +} + +#pragma mark - GMSMapViewDelegate + +- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)camera { + if (_exhibit != nil) { + CLLocationCoordinate2D loc = CLLocationCoordinate2DMake([_exhibit[@"lat"] doubleValue], + [_exhibit[@"lng"] doubleValue]); + if ([_mapView.projection containsCoordinate:loc] && _levels != nil) { + [mapView.indoorDisplay setActiveLevel:_levels[_exhibit[@"level"]]]; + } + } +} + +#pragma mark - GMSIndoorDisplayDelegate + +- (void)didChangeActiveBuilding:(GMSIndoorBuilding *)building { + if (building != nil) { + NSMutableDictionary *levels = [NSMutableDictionary dictionary]; + + for (GMSIndoorLevel *level in building.levels) { + [levels setObject:level forKey:level.shortName]; + } + + _levels = [NSDictionary dictionaryWithDictionary:levels]; + } else { + _levels = nil; + } +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h new file mode 100755 index 0000000..20e88f5 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface IndoorViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m new file mode 100755 index 0000000..915aa88 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m @@ -0,0 +1,41 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/IndoorViewController.h" + +#import + +@implementation IndoorViewController { + GMSMapView *_mapView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318 + longitude:-122.403874 + zoom:18]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.myLocationButton = YES; + + self.view = _mapView; +} + + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h new file mode 100755 index 0000000..0fd414b --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MapLayerViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m new file mode 100755 index 0000000..1e7f5e1 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m @@ -0,0 +1,94 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MapLayerViewController.h" + +#import + +@implementation MapLayerViewController { + GMSMapView *_mapView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + self.view = _mapView; + + dispatch_async(dispatch_get_main_queue(), ^{ + _mapView.myLocationEnabled = YES; + }); + + UIBarButtonItem *myLocationButton = + [[UIBarButtonItem alloc] initWithTitle:@"Fly to My Location" + style:UIBarButtonItemStylePlain + target:self + action:@selector(didTapMyLocation)]; + self.navigationItem.rightBarButtonItem = myLocationButton; + +} + +- (void)didTapMyLocation { + CLLocation *location = _mapView.myLocation; + if (!location || !CLLocationCoordinate2DIsValid(location.coordinate)) { + return; + } + + _mapView.layer.cameraLatitude = location.coordinate.latitude; + _mapView.layer.cameraLongitude = location.coordinate.longitude; + _mapView.layer.cameraBearing = 0.0; + + // Access the GMSMapLayer directly to modify the following properties with a + // specified timing function and duration. + + CAMediaTimingFunction *curve = + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + CABasicAnimation *animation; + + animation = [CABasicAnimation animationWithKeyPath:kGMSLayerCameraLatitudeKey]; + animation.duration = 2.0f; + animation.timingFunction = curve; + animation.toValue = @(location.coordinate.latitude); + [_mapView.layer addAnimation:animation forKey:kGMSLayerCameraLatitudeKey]; + + animation = [CABasicAnimation animationWithKeyPath:kGMSLayerCameraLongitudeKey]; + animation.duration = 2.0f; + animation.timingFunction = curve; + animation.toValue = @(location.coordinate.longitude); + [_mapView.layer addAnimation:animation forKey:kGMSLayerCameraLongitudeKey]; + + animation = [CABasicAnimation animationWithKeyPath:kGMSLayerCameraBearingKey]; + animation.duration = 2.0f; + animation.timingFunction = curve; + animation.toValue = @0.0; + [_mapView.layer addAnimation:animation forKey:kGMSLayerCameraBearingKey]; + + // Fly out to the minimum zoom and then zoom back to the current zoom! + CGFloat zoom = _mapView.camera.zoom; + NSArray *keyValues = @[@(zoom), @(kGMSMinZoomLevel), @(zoom)]; + CAKeyframeAnimation *keyFrameAnimation = + [CAKeyframeAnimation animationWithKeyPath:kGMSLayerCameraZoomLevelKey]; + keyFrameAnimation.duration = 2.0f; + keyFrameAnimation.values = keyValues; + [_mapView.layer addAnimation:keyFrameAnimation forKey:kGMSLayerCameraZoomLevelKey]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h new file mode 100755 index 0000000..c0ced47 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MapTypesViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m new file mode 100755 index 0000000..04c5e05 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m @@ -0,0 +1,75 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MapTypesViewController.h" + +#import + +static NSString const * kNormalType = @"Normal"; +static NSString const * kSatelliteType = @"Satellite"; +static NSString const * kHybridType = @"Hybrid"; +static NSString const * kTerrainType = @"Terrain"; + +@implementation MapTypesViewController { + UISegmentedControl *_switcher; + GMSMapView *_mapView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:12]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + self.view = _mapView; + + // The possible different types to show. + NSArray *types = @[kNormalType, kSatelliteType, kHybridType, kTerrainType]; + + // Create a UISegmentedControl that is the navigationItem's titleView. + _switcher = [[UISegmentedControl alloc] initWithItems:types]; + _switcher.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | + UIViewAutoresizingFlexibleWidth | + UIViewAutoresizingFlexibleBottomMargin; + _switcher.selectedSegmentIndex = 0; + self.navigationItem.titleView = _switcher; + + // Listen to touch events on the UISegmentedControl. + [_switcher addTarget:self action:@selector(didChangeSwitcher) + forControlEvents:UIControlEventValueChanged]; +} + +- (void)didChangeSwitcher { + // Switch to the type clicked on. + NSString *title = + [_switcher titleForSegmentAtIndex:_switcher.selectedSegmentIndex]; + if ([kNormalType isEqualToString:title]) { + _mapView.mapType = kGMSTypeNormal; + } else if ([kSatelliteType isEqualToString:title]) { + _mapView.mapType = kGMSTypeSatellite; + } else if ([kHybridType isEqualToString:title]) { + _mapView.mapType = kGMSTypeHybrid; + } else if ([kTerrainType isEqualToString:title]) { + _mapView.mapType = kGMSTypeTerrain; + } +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h new file mode 100755 index 0000000..a99939c --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MapZoomViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m new file mode 100755 index 0000000..ffa4196 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m @@ -0,0 +1,89 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MapZoomViewController.h" + +#import + +@implementation MapZoomViewController { + GMSMapView *_mapView; + UITextView *_zoomRangeView; + NSUInteger _nextMode; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:6]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.scrollGestures = NO; + self.view = _mapView; + + // Add a display for the current zoom range restriction. + _zoomRangeView = [[UITextView alloc] init]; + _zoomRangeView.frame = + CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 0); + _zoomRangeView.text = @""; + _zoomRangeView.textAlignment = NSTextAlignmentCenter; + _zoomRangeView.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8f]; + _zoomRangeView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _zoomRangeView.editable = NO; + [self.view addSubview:_zoomRangeView]; + [_zoomRangeView sizeToFit]; + [self didTapNext]; + + // Add a button toggling through modes. + self.navigationItem.rightBarButtonItem = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay + target:self + action:@selector(didTapNext)]; +} + +- (void)didTapNext { + NSString *label = @""; + float minZoom = kGMSMinZoomLevel; + float maxZoom = kGMSMaxZoomLevel; + + switch (_nextMode) { + case 0: + label = @"Default"; + break; + case 1: + minZoom = 18; + label = @"Zoomed in"; + break; + case 2: + maxZoom = 8; + label = @"Zoomed out"; + break; + case 3: + minZoom = 10; + maxZoom = 11.5; + label = @"Small range"; + break; + } + _nextMode = (_nextMode + 1) % 4; + + [_mapView setMinZoom:minZoom maxZoom:maxZoom]; + _zoomRangeView.text = + [NSString stringWithFormat:@"%@ (%.2f - %.2f)", label, _mapView.minZoom, _mapView.maxZoom]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h new file mode 100755 index 0000000..8edb2a1 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import + +@interface MarkerEventsViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m new file mode 100755 index 0000000..79f2444 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m @@ -0,0 +1,85 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MarkerEventsViewController.h" + +#import + +#import + +@implementation MarkerEventsViewController { + GMSMapView *_mapView; + GMSMarker *_melbourneMarker; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + + GMSMarker *sydneyMarker = [[GMSMarker alloc] init]; + sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + sydneyMarker.map = _mapView; + + _melbourneMarker = [[GMSMarker alloc] init]; + _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); + _melbourneMarker.map = _mapView; + + _mapView.delegate = self; + self.view = _mapView; +} + +#pragma mark - GMSMapViewDelegate + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { + if (marker == _melbourneMarker) { + return [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Icon"]]; + } + + return nil; +} + +- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { + // Animate to the marker + [CATransaction begin]; + [CATransaction setAnimationDuration:3.f]; // 3 second animation + + GMSCameraPosition *camera = + [[GMSCameraPosition alloc] initWithTarget:marker.position + zoom:8 + bearing:50 + viewingAngle:60]; + [mapView animateToCameraPosition:camera]; + [CATransaction commit]; + + // Melbourne marker has a InfoWindow so return NO to allow markerInfoWindow to + // fire. Also check that the marker isn't already selected so that the + // InfoWindow doesn't close. + if (marker == _melbourneMarker && + mapView.selectedMarker != _melbourneMarker) { + return NO; + } + + // The Tap has been handled so return YES + return YES; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h new file mode 100755 index 0000000..6e1ea08 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MarkerInfoWindowViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m new file mode 100755 index 0000000..e57f42b --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m @@ -0,0 +1,114 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h" + +#import + +@interface MarkerInfoWindowViewController () +@end + +@implementation MarkerInfoWindowViewController { + GMSMarker *_sydneyMarker; + GMSMarker *_melbourneMarker; + GMSMarker *_brisbaneMarker; + UIView *_contentView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + + + _sydneyMarker = [[GMSMarker alloc] init]; + _sydneyMarker.title = @"Sydney"; + _sydneyMarker.snippet = @"Population: 4,605,992"; + _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + _sydneyMarker.map = mapView; + NSLog(@"sydneyMarker: %@", _sydneyMarker); + + + _melbourneMarker.map = nil; + _melbourneMarker = [[GMSMarker alloc] init]; + _melbourneMarker.title = @"Melbourne"; + _melbourneMarker.snippet = @"Population: 4,169,103"; + _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); + _melbourneMarker.map = mapView; + NSLog(@"melbourneMarker: %@", _melbourneMarker); + + _brisbaneMarker.map = nil; + _brisbaneMarker = [[GMSMarker alloc] init]; + _brisbaneMarker.title = @"Brisbane"; + _brisbaneMarker.snippet = @"Population: 2,189,878"; + _brisbaneMarker.position = CLLocationCoordinate2DMake(-27.4710107, 153.0234489); + _brisbaneMarker.map = mapView; + NSLog(@"brisbaneMarker: %@", _brisbaneMarker); + + _contentView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"aeroplane"]]; + + mapView.delegate = self; + self.view = mapView; +} + +#pragma mark GMSMapViewDelegate + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { + if (marker == _sydneyMarker) { + return _contentView; + } + return nil; +} + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker { + if (marker == _brisbaneMarker) { + return _contentView; + } + return nil; +} + +- (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker { + NSString *message = + [NSString stringWithFormat:@"Info window for marker %@ closed.", marker.title]; + [self showMessage:message]; +} + +- (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker { + NSString *message = + [NSString stringWithFormat:@"Info window for marker %@ long pressed.", marker.title]; + [self showMessage:message]; +} + +#pragma mark Private + +- (void)showMessage:(NSString *)message { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:message + delegate:nil + cancelButtonTitle:nil + otherButtonTitles:nil]; + [alertView show]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ + [alertView dismissWithClickedButtonIndex:0 animated:YES]; + }); +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h new file mode 100755 index 0000000..83a6686 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import + +@interface MarkerLayerViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m new file mode 100755 index 0000000..7ba2ff8 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m @@ -0,0 +1,152 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MarkerLayerViewController.h" + +#import + +@interface CoordsList : NSObject +@property(nonatomic, readonly, copy) GMSPath *path; +@property(nonatomic, readonly) NSUInteger target; + +- (id)initWithPath:(GMSPath *)path; + +- (CLLocationCoordinate2D)next; + +@end + +@implementation CoordsList + +- (id)initWithPath:(GMSPath *)path { + if ((self = [super init])) { + _path = [path copy]; + _target = 0; + } + return self; +} + +- (CLLocationCoordinate2D)next { + ++_target; + if (_target == _path.count) { + _target = 0; + } + return [_path coordinateAtIndex:_target]; +} + +@end + +@implementation MarkerLayerViewController { + GMSMapView *_mapView; + GMSMarker *_fadedMarker; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + _mapView = [[GMSMapView alloc] init]; + _mapView.camera = [GMSCameraPosition cameraWithLatitude:50.6042 longitude:3.9599 zoom:5]; + _mapView.delegate = self; + self.view = _mapView; + + GMSMutablePath *coords; + GMSMarker *marker; + + // Create a plane that flies to several airports around western Europe. + coords = [GMSMutablePath path]; + [coords addLatitude:52.310683 longitude:4.765121]; + [coords addLatitude:51.471386 longitude:-0.457148]; + [coords addLatitude:49.01378 longitude:2.5542943]; + [coords addLatitude:50.036194 longitude:8.554519]; + marker = [GMSMarker markerWithPosition:[coords coordinateAtIndex:0]]; + marker.icon = [UIImage imageNamed:@"aeroplane"]; + marker.groundAnchor = CGPointMake(0.5f, 0.5f); + marker.flat = YES; + marker.map = _mapView; + marker.userData = [[CoordsList alloc] initWithPath:coords]; + [self animateToNextCoord:marker]; + + // Create a boat that moves around the Baltic Sea. + coords = [GMSMutablePath path]; + [coords addLatitude:57.598335 longitude:11.290512]; + [coords addLatitude:55.665193 longitude:10.741196]; + [coords addLatitude:55.065787 longitude:11.083488]; + [coords addLatitude:54.699234 longitude:10.863762]; + [coords addLatitude:54.482805 longitude:12.061272]; + [coords addLatitude:55.819802 longitude:16.148186]; // final point + [coords addLatitude:54.927142 longitude:16.455803]; // final point + [coords addLatitude:54.482805 longitude:12.061272]; // and back again + [coords addLatitude:54.699234 longitude:10.863762]; + [coords addLatitude:55.065787 longitude:11.083488]; + [coords addLatitude:55.665193 longitude:10.741196]; + marker = [GMSMarker markerWithPosition:[coords coordinateAtIndex:0]]; + marker.icon = [UIImage imageNamed:@"boat"]; + marker.map = _mapView; + marker.userData = [[CoordsList alloc] initWithPath:coords]; + [self animateToNextCoord:marker]; +} + +- (void)animateToNextCoord:(GMSMarker *)marker { + CoordsList *coords = marker.userData; + CLLocationCoordinate2D coord = [coords next]; + CLLocationCoordinate2D previous = marker.position; + + CLLocationDirection heading = GMSGeometryHeading(previous, coord); + CLLocationDistance distance = GMSGeometryDistance(previous, coord); + + // Use CATransaction to set a custom duration for this animation. By default, changes to the + // position are already animated, but with a very short default duration. When the animation is + // complete, trigger another animation step. + + [CATransaction begin]; + [CATransaction setAnimationDuration:(distance / (50 * 1000))]; // custom duration, 50km/sec + + __weak MarkerLayerViewController *weakSelf = self; + [CATransaction setCompletionBlock:^{ + [weakSelf animateToNextCoord:marker]; + }]; + + marker.position = coord; + + [CATransaction commit]; + + // If this marker is flat, implicitly trigger a change in rotation, which will finish quickly. + if (marker.flat) { + marker.rotation = heading; + } +} + +- (void)fadeMarker:(GMSMarker *)marker { + _fadedMarker.opacity = 1.0f; // reset previous faded marker + + // Fade this new marker. + _fadedMarker = marker; + _fadedMarker.opacity = 0.5f; +} + +#pragma mark - GMSMapViewDelegate + +- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { + [self fadeMarker:marker]; + return YES; +} + +- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate { + [self fadeMarker:nil]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h new file mode 100755 index 0000000..403d32d --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MarkersViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m new file mode 100755 index 0000000..063ea9c --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m @@ -0,0 +1,78 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MarkersViewController.h" + +#import + +@implementation MarkersViewController { + GMSMarker *_sydneyMarker; + GMSMarker *_melbourneMarker; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + + _sydneyMarker = [[GMSMarker alloc] init]; + _sydneyMarker.title = @"Sydney"; + _sydneyMarker.snippet = @"Population: 4,605,992"; + _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); + _sydneyMarker.flat = NO; + _sydneyMarker.rotation = 30.0; + NSLog(@"sydneyMarker: %@", _sydneyMarker); + + GMSMarker *australiaMarker = [[GMSMarker alloc] init]; + australiaMarker.title = @"Australia"; + australiaMarker.position = CLLocationCoordinate2DMake(-27.994401,140.07019); + australiaMarker.appearAnimation = kGMSMarkerAnimationPop; + australiaMarker.flat = YES; + australiaMarker.draggable = YES; + australiaMarker.groundAnchor = CGPointMake(0.5, 0.5); + australiaMarker.icon = [UIImage imageNamed:@"australia"]; + australiaMarker.map = mapView; + + // Set the marker in Sydney to be selected + mapView.selectedMarker = _sydneyMarker; + + self.view = mapView; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(didTapAdd)]; +} + +- (void)didTapAdd { + if (_sydneyMarker.map == nil) { + _sydneyMarker.map = (GMSMapView *)self.view; +// _sydneyMarker.rotation += 45.0; + } else { + _sydneyMarker.map = nil; + } + + _melbourneMarker.map = nil; + _melbourneMarker = [[GMSMarker alloc] init]; + _melbourneMarker.title = @"Melbourne"; + _melbourneMarker.snippet = @"Population: 4,169,103"; + _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); + _melbourneMarker.map = (GMSMapView *)self.view; +} + + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h new file mode 100755 index 0000000..a9e2723 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface MyLocationViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m new file mode 100755 index 0000000..e2c051b --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m @@ -0,0 +1,75 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/MyLocationViewController.h" + +#import + +@implementation MyLocationViewController { + GMSMapView *_mapView; + BOOL _firstLocationUpdate; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:12]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.settings.compassButton = YES; + _mapView.settings.myLocationButton = YES; + + // Listen to the myLocation property of GMSMapView. + [_mapView addObserver:self + forKeyPath:@"myLocation" + options:NSKeyValueObservingOptionNew + context:NULL]; + + self.view = _mapView; + + // Ask for My Location data after the map has already been added to the UI. + dispatch_async(dispatch_get_main_queue(), ^{ + _mapView.myLocationEnabled = YES; + }); +} + +- (void)dealloc { + [_mapView removeObserver:self + forKeyPath:@"myLocation" + context:NULL]; +} + +#pragma mark - KVO updates + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { + if (!_firstLocationUpdate) { + // If the first location update has not yet been recieved, then jump to that + // location. + _firstLocationUpdate = YES; + CLLocation *location = [change objectForKey:NSKeyValueChangeNewKey]; + _mapView.camera = [GMSCameraPosition cameraWithTarget:location.coordinate + zoom:14]; + } +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h new file mode 100755 index 0000000..657a111 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface PanoramaViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m new file mode 100755 index 0000000..7582714 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m @@ -0,0 +1,88 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/PanoramaViewController.h" + +#import + +static CLLocationCoordinate2D kPanoramaNear = {40.761388, -73.978133}; +static CLLocationCoordinate2D kMarkerAt = {40.761455, -73.977814}; + +@interface PanoramaViewController () +@end + +@implementation PanoramaViewController { + GMSPanoramaView *_view; + BOOL _configured; + UILabel *_statusLabel; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + _view = [GMSPanoramaView panoramaWithFrame:CGRectZero + nearCoordinate:kPanoramaNear]; + _view.backgroundColor = [UIColor grayColor]; + _view.delegate = self; + self.view = _view; + + // Add status label, initially hidden. + _statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 30)]; + _statusLabel.alpha = 0.0f; + _statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _statusLabel.backgroundColor = [UIColor blueColor]; + _statusLabel.textColor = [UIColor whiteColor]; + _statusLabel.textAlignment = NSTextAlignmentCenter; + + [_view addSubview:_statusLabel]; +} + +#pragma mark - GMSPanoramaDelegate + +- (void)panoramaView:(GMSPanoramaView *)panoramaView + didMoveCamera:(GMSPanoramaCamera *)camera { + NSLog(@"Camera: (%f,%f,%f)", + camera.orientation.heading, camera.orientation.pitch, camera.zoom); +} + +- (void)panoramaView:(GMSPanoramaView *)view + didMoveToPanorama:(GMSPanorama *)panorama { + if (!_configured) { + GMSMarker *marker = [GMSMarker markerWithPosition:kMarkerAt]; + marker.icon = [GMSMarker markerImageWithColor:[UIColor purpleColor]]; + marker.panoramaView = _view; + + CLLocationDegrees heading = GMSGeometryHeading(kPanoramaNear, kMarkerAt); + _view.camera = + [GMSPanoramaCamera cameraWithHeading:heading pitch:0 zoom:1]; + + _configured = YES; + } +} + +- (void)panoramaViewDidStartRendering:(GMSPanoramaView *)panoramaView { + _statusLabel.alpha = 0.8f; + _statusLabel.text = @"Rendering"; +} + +- (void)panoramaViewDidFinishRendering:(GMSPanoramaView *)panoramaView { + _statusLabel.alpha = 0.0f; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h new file mode 100755 index 0000000..972a71c --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import + +@interface PolygonsViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m new file mode 100755 index 0000000..32c7158 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m @@ -0,0 +1,270 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/PolygonsViewController.h" + +#import + +@implementation PolygonsViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:39.13006 + longitude:-77.508545 + zoom:4]; + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + mapView.delegate = self; // needed for didTapOverlay delegate method + + // Create the first polygon. + GMSPolygon *polygon = [[GMSPolygon alloc] init]; + polygon.path = [self pathOfNewYorkState]; + polygon.holes = @[ [self pathOfNewYorkStateHole] ]; + polygon.title = @"New York"; + polygon.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.2f]; + polygon.strokeColor = [UIColor blackColor]; + polygon.strokeWidth = 2; + polygon.tappable = YES; + polygon.map = mapView; + + // Copy the existing polygon and its settings and use it as a base for the + // second polygon. + polygon = [polygon copy]; + polygon.title = @"North Carolina"; + polygon.path = [self pathOfNorthCarolina]; + polygon.fillColor = [UIColor colorWithRed:0 green:0.25 blue:0 alpha:0.5]; + polygon.map = mapView; + + self.view = mapView; +} + +- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay { + // When a polygon is tapped, randomly change its fill color to a new hue. + if ([overlay isKindOfClass:[GMSPolygon class]]) { + GMSPolygon *polygon = (GMSPolygon *)overlay; + CGFloat hue = (((float)arc4random()/0x100000000)*1.0f); + polygon.fillColor = + [UIColor colorWithHue:hue saturation:1 brightness:1 alpha:0.5]; + } +} + +- (GMSPath *)pathOfNewYorkState { + GMSMutablePath *path = [GMSMutablePath path]; + [path addLatitude:42.5142 longitude:-79.7624]; + [path addLatitude:42.7783 longitude:-79.0672]; + [path addLatitude:42.8508 longitude:-78.9313]; + [path addLatitude:42.9061 longitude:-78.9024]; + [path addLatitude:42.9554 longitude:-78.9313]; + [path addLatitude:42.9584 longitude:-78.9656]; + [path addLatitude:42.9886 longitude:-79.0219]; + [path addLatitude:43.0568 longitude:-79.0027]; + [path addLatitude:43.0769 longitude:-79.0727]; + [path addLatitude:43.1220 longitude:-79.0713]; + [path addLatitude:43.1441 longitude:-79.0302]; + [path addLatitude:43.1801 longitude:-79.0576]; + [path addLatitude:43.2482 longitude:-79.0604]; + [path addLatitude:43.2812 longitude:-79.0837]; + [path addLatitude:43.4509 longitude:-79.2004]; + [path addLatitude:43.6311 longitude:-78.6909]; + [path addLatitude:43.6321 longitude:-76.7958]; + [path addLatitude:43.9987 longitude:-76.4978]; + [path addLatitude:44.0965 longitude:-76.4388]; + [path addLatitude:44.1349 longitude:-76.3536]; + [path addLatitude:44.1989 longitude:-76.3124]; + [path addLatitude:44.2049 longitude:-76.2437]; + [path addLatitude:44.2413 longitude:-76.1655]; + [path addLatitude:44.2973 longitude:-76.1353]; + [path addLatitude:44.3327 longitude:-76.0474]; + [path addLatitude:44.3553 longitude:-75.9856]; + [path addLatitude:44.3749 longitude:-75.9196]; + [path addLatitude:44.3994 longitude:-75.8730]; + [path addLatitude:44.4308 longitude:-75.8221]; + [path addLatitude:44.4740 longitude:-75.8098]; + [path addLatitude:44.5425 longitude:-75.7288]; + [path addLatitude:44.6647 longitude:-75.5585]; + [path addLatitude:44.7672 longitude:-75.4088]; + [path addLatitude:44.8101 longitude:-75.3442]; + [path addLatitude:44.8383 longitude:-75.3058]; + [path addLatitude:44.8676 longitude:-75.2399]; + [path addLatitude:44.9211 longitude:-75.1204]; + [path addLatitude:44.9609 longitude:-74.9995]; + [path addLatitude:44.9803 longitude:-74.9899]; + [path addLatitude:44.9852 longitude:-74.9103]; + [path addLatitude:45.0017 longitude:-74.8856]; + [path addLatitude:45.0153 longitude:-74.8306]; + [path addLatitude:45.0046 longitude:-74.7633]; + [path addLatitude:45.0027 longitude:-74.7070]; + [path addLatitude:45.0007 longitude:-74.5642]; + [path addLatitude:44.9920 longitude:-74.1467]; + [path addLatitude:45.0037 longitude:-73.7306]; + [path addLatitude:45.0085 longitude:-73.4203]; + [path addLatitude:45.0109 longitude:-73.3430]; + [path addLatitude:44.9874 longitude:-73.3547]; + [path addLatitude:44.9648 longitude:-73.3379]; + [path addLatitude:44.9160 longitude:-73.3396]; + [path addLatitude:44.8354 longitude:-73.3739]; + [path addLatitude:44.8013 longitude:-73.3324]; + [path addLatitude:44.7419 longitude:-73.3667]; + [path addLatitude:44.6139 longitude:-73.3873]; + [path addLatitude:44.5787 longitude:-73.3736]; + [path addLatitude:44.4916 longitude:-73.3049]; + [path addLatitude:44.4289 longitude:-73.2953]; + [path addLatitude:44.3513 longitude:-73.3365]; + [path addLatitude:44.2757 longitude:-73.3118]; + [path addLatitude:44.1980 longitude:-73.3818]; + [path addLatitude:44.1142 longitude:-73.4079]; + [path addLatitude:44.0511 longitude:-73.4367]; + [path addLatitude:44.0165 longitude:-73.4065]; + [path addLatitude:43.9375 longitude:-73.4079]; + [path addLatitude:43.8771 longitude:-73.3749]; + [path addLatitude:43.8167 longitude:-73.3914]; + [path addLatitude:43.7790 longitude:-73.3557]; + [path addLatitude:43.6460 longitude:-73.4244]; + [path addLatitude:43.5893 longitude:-73.4340]; + [path addLatitude:43.5655 longitude:-73.3969]; + [path addLatitude:43.6112 longitude:-73.3818]; + [path addLatitude:43.6271 longitude:-73.3049]; + [path addLatitude:43.5764 longitude:-73.3063]; + [path addLatitude:43.5675 longitude:-73.2582]; + [path addLatitude:43.5227 longitude:-73.2445]; + [path addLatitude:43.2582 longitude:-73.2582]; + [path addLatitude:42.9715 longitude:-73.2733]; + [path addLatitude:42.8004 longitude:-73.2898]; + [path addLatitude:42.7460 longitude:-73.2664]; + [path addLatitude:42.4630 longitude:-73.3708]; + [path addLatitude:42.0840 longitude:-73.5095]; + [path addLatitude:42.0218 longitude:-73.4903]; + [path addLatitude:41.8808 longitude:-73.4999]; + [path addLatitude:41.2953 longitude:-73.5535]; + [path addLatitude:41.2128 longitude:-73.4834]; + [path addLatitude:41.1011 longitude:-73.7275]; + [path addLatitude:41.0237 longitude:-73.6644]; + [path addLatitude:40.9851 longitude:-73.6578]; + [path addLatitude:40.9509 longitude:-73.6132]; + [path addLatitude:41.1869 longitude:-72.4823]; + [path addLatitude:41.2551 longitude:-72.0950]; + [path addLatitude:41.3005 longitude:-71.9714]; + [path addLatitude:41.3108 longitude:-71.9193]; + [path addLatitude:41.1838 longitude:-71.7915]; + [path addLatitude:41.1249 longitude:-71.7929]; + [path addLatitude:41.0462 longitude:-71.7517]; + [path addLatitude:40.6306 longitude:-72.9465]; + [path addLatitude:40.5368 longitude:-73.4628]; + [path addLatitude:40.4887 longitude:-73.8885]; + [path addLatitude:40.5232 longitude:-73.9490]; + [path addLatitude:40.4772 longitude:-74.2271]; + [path addLatitude:40.4861 longitude:-74.2532]; + [path addLatitude:40.6468 longitude:-74.1866]; + [path addLatitude:40.6556 longitude:-74.0547]; + [path addLatitude:40.7618 longitude:-74.0156]; + [path addLatitude:40.8699 longitude:-73.9421]; + [path addLatitude:40.9980 longitude:-73.8934]; + [path addLatitude:41.0343 longitude:-73.9854]; + [path addLatitude:41.3268 longitude:-74.6274]; + [path addLatitude:41.3583 longitude:-74.7084]; + [path addLatitude:41.3811 longitude:-74.7101]; + [path addLatitude:41.4386 longitude:-74.8265]; + [path addLatitude:41.5075 longitude:-74.9913]; + [path addLatitude:41.6000 longitude:-75.0668]; + [path addLatitude:41.6719 longitude:-75.0366]; + [path addLatitude:41.7672 longitude:-75.0545]; + [path addLatitude:41.8808 longitude:-75.1945]; + [path addLatitude:42.0013 longitude:-75.3552]; + [path addLatitude:42.0003 longitude:-75.4266]; + [path addLatitude:42.0013 longitude:-77.0306]; + [path addLatitude:41.9993 longitude:-79.7250]; + [path addLatitude:42.0003 longitude:-79.7621]; + [path addLatitude:42.1827 longitude:-79.7621]; + [path addLatitude:42.5146 longitude:-79.7621]; + return path; +} + +- (GMSPath *)pathOfNewYorkStateHole { + GMSMutablePath *path = [GMSMutablePath path]; + [path addLatitude:43.5000 longitude:-76.3651]; + [path addLatitude:43.5000 longitude:-74.3651]; + [path addLatitude:42.0000 longitude:-74.3651]; + return path; +} + +- (GMSPath *)pathOfNorthCarolina { + GMSMutablePath *path = [GMSMutablePath path]; + [path addLatitude:33.7963 longitude:-78.4850]; + [path addLatitude:34.8037 longitude:-79.6742]; + [path addLatitude:34.8206 longitude:-80.8003]; + [path addLatitude:34.9377 longitude:-80.7880]; + [path addLatitude:35.1019 longitude:-80.9377]; + [path addLatitude:35.0356 longitude:-81.0379]; + [path addLatitude:35.1457 longitude:-81.0324]; + [path addLatitude:35.1660 longitude:-81.3867]; + [path addLatitude:35.1985 longitude:-82.2739]; + [path addLatitude:35.2041 longitude:-82.3933]; + [path addLatitude:35.0637 longitude:-82.7765]; + [path addLatitude:35.0817 longitude:-82.7861]; + [path addLatitude:34.9996 longitude:-83.1075]; + [path addLatitude:34.9918 longitude:-83.6183]; + [path addLatitude:34.9918 longitude:-84.3201]; + [path addLatitude:35.2131 longitude:-84.2885]; + [path addLatitude:35.2680 longitude:-84.2226]; + [path addLatitude:35.2310 longitude:-84.1113]; + [path addLatitude:35.2815 longitude:-84.0454]; + [path addLatitude:35.4058 longitude:-84.0248]; + [path addLatitude:35.4719 longitude:-83.9424]; + [path addLatitude:35.5166 longitude:-83.8559]; + [path addLatitude:35.5512 longitude:-83.6938]; + [path addLatitude:35.5680 longitude:-83.5181]; + [path addLatitude:35.6327 longitude:-83.3849]; + [path addLatitude:35.7142 longitude:-83.2475]; + [path addLatitude:35.7799 longitude:-82.9962]; + [path addLatitude:35.8445 longitude:-82.9276]; + [path addLatitude:35.9224 longitude:-82.8191]; + [path addLatitude:35.9958 longitude:-82.7710]; + [path addLatitude:36.0613 longitude:-82.6419]; + [path addLatitude:35.9702 longitude:-82.6103]; + [path addLatitude:35.9547 longitude:-82.5677]; + [path addLatitude:36.0236 longitude:-82.4730]; + [path addLatitude:36.0669 longitude:-82.4194]; + [path addLatitude:36.1168 longitude:-82.3535]; + [path addLatitude:36.1345 longitude:-82.2862]; + [path addLatitude:36.1467 longitude:-82.1461]; + [path addLatitude:36.1035 longitude:-82.1228]; + [path addLatitude:36.1268 longitude:-82.0267]; + [path addLatitude:36.2797 longitude:-81.9360]; + [path addLatitude:36.3527 longitude:-81.7987]; + [path addLatitude:36.3361 longitude:-81.7081]; + [path addLatitude:36.5880 longitude:-81.6724]; + [path addLatitude:36.5659 longitude:-80.7234]; + [path addLatitude:36.5438 longitude:-80.2977]; + [path addLatitude:36.5449 longitude:-79.6729]; + [path addLatitude:36.5449 longitude:-77.2559]; + [path addLatitude:36.5505 longitude:-75.7562]; + [path addLatitude:36.3129 longitude:-75.7068]; + [path addLatitude:35.7131 longitude:-75.4129]; + [path addLatitude:35.2041 longitude:-75.4720]; + [path addLatitude:34.9794 longitude:-76.0748]; + [path addLatitude:34.5258 longitude:-76.4951]; + [path addLatitude:34.5880 longitude:-76.8109]; + [path addLatitude:34.5314 longitude:-77.1378]; + [path addLatitude:34.3910 longitude:-77.4481]; + [path addLatitude:34.0481 longitude:-77.7983]; + [path addLatitude:33.7666 longitude:-77.9260]; + [path addLatitude:33.7963 longitude:-78.4863]; + return path; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h new file mode 100755 index 0000000..a303558 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface PolylinesViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m new file mode 100755 index 0000000..257e759 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m @@ -0,0 +1,119 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/PolylinesViewController.h" + +#import + +@interface GMSPolyline (length) + +@property(nonatomic, readonly) double length; + +@end + +@implementation GMSPolyline (length) + +- (double)length { + GMSLengthKind kind = [self geodesic] ? kGMSLengthGeodesic : kGMSLengthRhumb; + return [[self path] lengthOfKind:kind]; +} + +@end + +static CLLocationCoordinate2D kSydneyAustralia = {-33.866901, 151.195988}; +static CLLocationCoordinate2D kHawaiiUSA = {21.291982, -157.821856}; +static CLLocationCoordinate2D kFiji = {-18, 179}; +static CLLocationCoordinate2D kMountainViewUSA = {37.423802, -122.091859}; +static CLLocationCoordinate2D kLimaPeru = {-12, -77}; +static bool kAnimate = true; + +@implementation PolylinesViewController { + NSArray *_styles; + NSArray *_lengths; + NSArray *_polys; + double _pos, _step; + GMSMapView *_mapView; +} + +- (void)tick { + for (GMSPolyline *poly in _polys) { + poly.spans = + GMSStyleSpansOffset(poly.path, _styles, _lengths, kGMSLengthGeodesic, _pos); + } + _pos -= _step; + if (kAnimate) { + __weak id weakSelf = self; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10), + dispatch_get_main_queue(), + ^{ [weakSelf tick]; }); + } +} + +- (void)initLines { + if (!_polys) { + NSMutableArray *polys = [NSMutableArray array]; + GMSMutablePath *path = [GMSMutablePath path]; + [path addCoordinate:kSydneyAustralia]; + [path addCoordinate:kFiji]; + [path addCoordinate:kHawaiiUSA]; + [path addCoordinate:kMountainViewUSA]; + [path addCoordinate:kLimaPeru]; + [path addCoordinate:kSydneyAustralia]; + path = [path pathOffsetByLatitude:-30 longitude:0]; + _lengths = @[@([path lengthOfKind:kGMSLengthGeodesic] / 21)]; + for (int i = 0; i < 30; ++i) { + GMSPolyline *poly = [[GMSPolyline alloc] init]; + poly.path = [path pathOffsetByLatitude:(i * 1.5) longitude:0]; + poly.strokeWidth = 8; + poly.geodesic = YES; + poly.map = _mapView; + [polys addObject:poly]; + } + _polys = polys; + } +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-30 + longitude:-175 + zoom:3]; + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + mapView.accessibilityElementsHidden = YES; + self.view = mapView; + _mapView = mapView; + + CGFloat alpha = 1; + UIColor *green = [UIColor colorWithRed:0 green:1 blue: 0 alpha:alpha]; + UIColor *greenTransp = [UIColor colorWithRed:0 green:1 blue: 0 alpha:0]; + UIColor *red = [UIColor colorWithRed:1 green:0 blue: 0 alpha:alpha]; + UIColor *redTransp = [UIColor colorWithRed:1 green:0 blue: 0 alpha:0]; + GMSStrokeStyle *grad1 = [GMSStrokeStyle gradientFromColor:green toColor:greenTransp]; + GMSStrokeStyle *grad2 = [GMSStrokeStyle gradientFromColor:redTransp toColor:red]; + _styles = @[ + grad1, + grad2, + [GMSStrokeStyle solidColor:[UIColor colorWithWhite:0 alpha:0]], + ]; + _step = 50000; + [self initLines]; + [self tick]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h new file mode 100755 index 0000000..00c4b91 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface Samples : NSObject ++ (NSArray *)loadSections; ++ (NSArray *)loadDemos; ++ (NSDictionary *)newDemo:(Class) class + withTitle:(NSString *)title + andDescription:(NSString *)description; +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m new file mode 100755 index 0000000..1278824 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m @@ -0,0 +1,192 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/Samples.h" + +// Map Demos +#import "GoogleMapsDemos/Samples/BasicMapViewController.h" +#import "GoogleMapsDemos/Samples/CustomIndoorViewController.h" +#import "GoogleMapsDemos/Samples/DoubleMapViewController.h" +#import "GoogleMapsDemos/Samples/FrameRateViewController.h" +#import "GoogleMapsDemos/Samples/GestureControlViewController.h" +#import "GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h" +#import "GoogleMapsDemos/Samples/IndoorViewController.h" +#import "GoogleMapsDemos/Samples/MapTypesViewController.h" +#import "GoogleMapsDemos/Samples/MapZoomViewController.h" +#import "GoogleMapsDemos/Samples/MyLocationViewController.h" +#import "GoogleMapsDemos/Samples/SnapshotReadyViewController.h" +#import "GoogleMapsDemos/Samples/StyledMapViewController.h" +#import "GoogleMapsDemos/Samples/TrafficMapViewController.h" +#import "GoogleMapsDemos/Samples/VisibleRegionViewController.h" + +// Panorama Demos +#import "GoogleMapsDemos/Samples/FixedPanoramaViewController.h" +#import "GoogleMapsDemos/Samples/PanoramaViewController.h" + +// Overlay Demos +#import "GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h" +#import "GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h" +#import "GoogleMapsDemos/Samples/CustomMarkersViewController.h" +#import "GoogleMapsDemos/Samples/GradientPolylinesViewController.h" +#import "GoogleMapsDemos/Samples/GroundOverlayViewController.h" +#import "GoogleMapsDemos/Samples/MarkerEventsViewController.h" +#import "GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h" +#import "GoogleMapsDemos/Samples/MarkerLayerViewController.h" +#import "GoogleMapsDemos/Samples/MarkersViewController.h" +#import "GoogleMapsDemos/Samples/PolygonsViewController.h" +#import "GoogleMapsDemos/Samples/PolylinesViewController.h" +#import "GoogleMapsDemos/Samples/TileLayerViewController.h" + +// Camera Demos +#import "GoogleMapsDemos/Samples/CameraViewController.h" +#import "GoogleMapsDemos/Samples/FitBoundsViewController.h" +#import "GoogleMapsDemos/Samples/MapLayerViewController.h" + +// Services +#import "GoogleMapsDemos/Samples/GeocoderViewController.h" +#import "GoogleMapsDemos/Samples/StructuredGeocoderViewController.h" + +@implementation Samples + ++ (NSArray *)loadSections { + return @[ @"Map", @"Panorama", @"Overlays", @"Camera", @"Services" ]; +} + ++ (NSArray *)loadDemos { + NSArray *mapDemos = + @[[self newDemo:[BasicMapViewController class] + withTitle:@"Basic Map" + andDescription:nil], + [self newDemo:[MapTypesViewController class] + withTitle:@"Map Types" + andDescription:nil], + [self newDemo:[StyledMapViewController class] + withTitle:@"Styled Map" + andDescription:nil], + [self newDemo:[TrafficMapViewController class] + withTitle:@"Traffic Layer" + andDescription:nil], + [self newDemo:[MyLocationViewController class] + withTitle:@"My Location" + andDescription:nil], + [self newDemo:[IndoorViewController class] + withTitle:@"Indoor" + andDescription:nil], + [self newDemo:[CustomIndoorViewController class] + withTitle:@"Indoor with Custom Level Select" + andDescription:nil], + [self newDemo:[IndoorMuseumNavigationViewController class] + withTitle:@"Indoor Museum Navigator" + andDescription:nil], + [self newDemo:[GestureControlViewController class] + withTitle:@"Gesture Control" + andDescription:nil], + [self newDemo:[SnapshotReadyViewController class] + withTitle:@"Snapshot Ready" + andDescription:nil], + [self newDemo:[DoubleMapViewController class] + withTitle:@"Two Maps" + andDescription:nil], + [self newDemo:[VisibleRegionViewController class] + withTitle:@"Visible Regions" + andDescription:nil], + [self newDemo:[MapZoomViewController class] + withTitle:@"Min/Max Zoom" + andDescription:nil], + [self newDemo:[FrameRateViewController class] + withTitle:@"Frame Rate" + andDescription:nil], + ]; + + NSArray *panoramaDemos = + @[[self newDemo:[PanoramaViewController class] + withTitle:@"Street View" + andDescription:nil], + [self newDemo:[FixedPanoramaViewController class] + withTitle:@"Fixed Street View" + andDescription:nil]]; + + NSArray *overlayDemos = + @[[self newDemo:[MarkersViewController class] + withTitle:@"Markers" + andDescription:nil], + [self newDemo:[CustomMarkersViewController class] + withTitle:@"Custom Markers" + andDescription:nil], + [self newDemo:[AnimatedUIViewMarkerViewController class] + withTitle:@"UIView Markers" + andDescription:nil], + [self newDemo:[MarkerEventsViewController class] + withTitle:@"Marker Events" + andDescription:nil], + [self newDemo:[MarkerLayerViewController class] + withTitle:@"Marker Layer" + andDescription:nil], + [self newDemo:[MarkerInfoWindowViewController class] + withTitle:@"Custom Info Windows" + andDescription:nil], + [self newDemo:[PolygonsViewController class] + withTitle:@"Polygons" + andDescription:nil], + [self newDemo:[PolylinesViewController class] + withTitle:@"Polylines" + andDescription:nil], + [self newDemo:[GroundOverlayViewController class] + withTitle:@"Ground Overlays" + andDescription:nil], + [self newDemo:[TileLayerViewController class] + withTitle:@"Tile Layers" + andDescription:nil], + [self newDemo:[AnimatedCurrentLocationViewController class] + withTitle:@"Animated Current Location" + andDescription:nil], + [self newDemo:[GradientPolylinesViewController class] + withTitle:@"Gradient Polylines" + andDescription:nil]]; + + NSArray *cameraDemos = + @[[self newDemo:[FitBoundsViewController class] + withTitle:@"Fit Bounds" + andDescription:nil], + [self newDemo:[CameraViewController class] + withTitle:@"Camera Animation" + andDescription:nil], + [self newDemo:[MapLayerViewController class] + withTitle:@"Map Layer" + andDescription:nil]]; + + NSArray *servicesDemos = + @[[self newDemo:[GeocoderViewController class] + withTitle:@"Geocoder" + andDescription:nil], + [self newDemo:[StructuredGeocoderViewController class] + withTitle:@"Structured Geocoder" + andDescription:nil], + ]; + + return @[mapDemos, panoramaDemos, overlayDemos, cameraDemos, servicesDemos]; +} + ++ (NSDictionary *)newDemo:(Class) class + withTitle:(NSString *)title + andDescription:(NSString *)description { + return [[NSDictionary alloc] initWithObjectsAndKeys:class, @"controller", + title, @"title", description, @"description", nil]; +} +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h new file mode 100755 index 0000000..b88e25e --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface SnapshotReadyViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m new file mode 100755 index 0000000..9dfa981 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m @@ -0,0 +1,112 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/SnapshotReadyViewController.h" + +#import + +@interface SnapshotReadyViewController () +@end + +@implementation SnapshotReadyViewController { + GMSMapView *_mapView; + UILabel *_statusLabel; + UIBarButtonItem *_waitButton; + BOOL _isAwaitingSnapshot; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = + [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:6]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.delegate = self; + self.view = _mapView; + + // Add status label, initially hidden. + _statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 30)]; + _statusLabel.alpha = 0.0f; + _statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _statusLabel.backgroundColor = [UIColor blueColor]; + _statusLabel.textColor = [UIColor whiteColor]; + _statusLabel.textAlignment = NSTextAlignmentCenter; + + // Add a wait button to signify on the next SnapshotReady event, a screenshot of the map will + // be taken. + _waitButton = [[UIBarButtonItem alloc] initWithTitle:@"Wait for snapshot" + style:UIBarButtonItemStylePlain + target:self + action:@selector(didTapWait)]; + self.navigationItem.rightBarButtonItems = @[ _waitButton ]; + [_mapView addSubview:_statusLabel]; +} + +#pragma mark GMSMapViewDelegate + +- (void)mapViewSnapshotReady:(GMSMapView *)mapView { + if (_isAwaitingSnapshot) { + _isAwaitingSnapshot = NO; + _waitButton.enabled = YES; + _waitButton.title = @"Wait for snapshot"; + [self takeSnapshot]; + } + + _statusLabel.alpha = 0.8f; + _statusLabel.text = @"Snapshot Ready"; + // Remove status label after 1 second. + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), + dispatch_get_main_queue(), ^{ + _statusLabel.alpha = 0.0f; + }); +} + +#pragma mark Private + +- (void)didTapWait { + _isAwaitingSnapshot = YES; + _waitButton.enabled = NO; + _waitButton.title = @"Waiting"; +} + +- (void)takeSnapshot { + // Take a snapshot of the map. + UIGraphicsBeginImageContextWithOptions(_mapView.bounds.size, YES, 0); + [_mapView drawViewHierarchyInRect:_mapView.bounds afterScreenUpdates:YES]; + UIImage *mapSnapShot = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + // Put snapshot image into an UIImageView and overlay on top of map. + UIImageView *imageView = [[UIImageView alloc] initWithImage:mapSnapShot]; + imageView.layer.borderColor = [UIColor redColor].CGColor; + imageView.layer.borderWidth = 10.0f; + [_mapView addSubview:imageView]; + + // Remove imageView after 1 second. + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ + [UIView animateWithDuration:1 + animations:^{ + imageView.alpha = 0.0f; + } + completion:^(BOOL finished) { + [imageView removeFromSuperview]; + }]; + }); +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h new file mode 100755 index 0000000..fc290b4 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface StructuredGeocoderViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m new file mode 100755 index 0000000..34ec2ed --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m @@ -0,0 +1,92 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/StructuredGeocoderViewController.h" + +#import + +@interface StructuredGeocoderViewController () + +@end + +@implementation StructuredGeocoderViewController { + GMSMapView *_mapView; + GMSGeocoder *_geocoder; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:12]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.delegate = self; + + _geocoder = [[GMSGeocoder alloc] init]; + + self.view = _mapView; +} + +#pragma mark - GMSMapViewDelegate + +- (void)mapView:(GMSMapView *)mapView + didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate { + // On a long press, reverse geocode this location. + GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response, NSError *error) { + GMSAddress *address = response.firstResult; + if (address) { + NSLog(@"Geocoder result: %@", address); + + GMSMarker *marker = [GMSMarker markerWithPosition:address.coordinate]; + + marker.title = address.thoroughfare; + + NSMutableString *snippet = [[NSMutableString alloc] init]; + if (address.subLocality != NULL) { + [snippet appendString:[NSString stringWithFormat:@"subLocality: %@\n", + address.subLocality]]; + } + if (address.locality != NULL) { + [snippet appendString:[NSString stringWithFormat:@"locality: %@\n", + address.locality]]; + } + if (address.administrativeArea != NULL) { + [snippet appendString:[NSString stringWithFormat:@"administrativeArea: %@\n", + address.administrativeArea]]; + } + if (address.country != NULL) { + [snippet appendString:[NSString stringWithFormat:@"country: %@\n", + address.country]]; + } + + marker.snippet = snippet; + + marker.appearAnimation = kGMSMarkerAnimationPop; + marker.map = _mapView; + mapView.selectedMarker = marker; + } else { + NSLog(@"Could not reverse geocode point (%f,%f): %@", + coordinate.latitude, coordinate.longitude, error); + } + }; + [_geocoder reverseGeocodeCoordinate:coordinate completionHandler:handler]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h new file mode 100755 index 0000000..ab70aea --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface StyledMapViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m new file mode 100755 index 0000000..ab131d0 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m @@ -0,0 +1,138 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/StyledMapViewController.h" + +#import + +static NSString *const kNormalType = @"Normal"; +static NSString *const kRetroType = @"Retro"; +static NSString *const kGrayscaleType = @"Grayscale"; +static NSString *const kNightType = @"Night"; +static NSString *const kNoPOIsType = @"No business points of interest, no transit"; + +@interface StyledMapViewController () +@end + +@implementation StyledMapViewController { + UIBarButtonItem *_barButtonItem; + GMSMapView *_mapView; + GMSMapStyle *_retroStyle; + GMSMapStyle *_grayscaleStyle; + GMSMapStyle *_nightStyle; + GMSMapStyle *_noPOIsStyle; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Error handling is skipped here for brevity, however it is recommended that you look at the + // error returned from |styleWithContentsOfFileURL:error:| if it returns nil. This error will + // provide information on why your style was not able to be loaded. + + NSURL *retroURL = [[NSBundle mainBundle] URLForResource:@"mapstyle-retro" + withExtension:@"json"]; + _retroStyle = [GMSMapStyle styleWithContentsOfFileURL:retroURL error:NULL]; + + NSURL *grayscaleURL = [[NSBundle mainBundle] URLForResource:@"mapstyle-silver" + withExtension:@"json"]; + _grayscaleStyle = [GMSMapStyle styleWithContentsOfFileURL:grayscaleURL error:NULL]; + + NSURL *nightURL = [[NSBundle mainBundle] URLForResource:@"mapstyle-night" + withExtension:@"json"]; + _nightStyle = [GMSMapStyle styleWithContentsOfFileURL:nightURL error:NULL]; + + NSString *noPOIsString = @" [\n" + " {\n" + " \"featureType\": \"poi.business\",\n" + " \"elementType\": \"all\",\n" + " \"stylers\": [\n" + " {\n" + " \"visibility\": \"off\"\n" + " }\n" + " ]\n" + " },\n" + " {\n" + " \"featureType\": \"transit\",\n" + " \"elementType\": \"all\",\n" + " \"stylers\": [\n" + " {\n" + " \"visibility\": \"off\"\n" + " }\n" + " ]\n" + " }\n" + " ]"; + _noPOIsStyle = [GMSMapStyle styleWithJSONString:noPOIsString error:NULL]; + + GMSCameraPosition *camera = + [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:12]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + self.view = _mapView; + + _mapView.mapStyle = _retroStyle; + + UIBarButtonItem *styleButton = [[UIBarButtonItem alloc] initWithTitle:@"Style" + style:UIBarButtonItemStyleBordered + target:self + action:@selector(changeMapStyle:)]; + self.navigationItem.rightBarButtonItem = styleButton; + self.navigationItem.title = kRetroType; +} + +- (void)changeMapStyle:(UIBarButtonItem *)sender { + UIActionSheet *actionSheet = [[UIActionSheet alloc] + initWithTitle:@"Select map style" + delegate:self + cancelButtonTitle:nil + destructiveButtonTitle:nil + otherButtonTitles:kRetroType, kGrayscaleType, kNightType, kNormalType, kNoPOIsType, nil]; + [actionSheet showFromBarButtonItem:sender animated:YES]; +} + +#pragma mark - UIActionSheetDelegate + +- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { + switch (buttonIndex) { + case 0: + _mapView.mapStyle = _retroStyle; + self.navigationItem.title = kRetroType; + break; + case 1: + _mapView.mapStyle = _grayscaleStyle; + self.navigationItem.title = kGrayscaleType; + break; + case 2: + _mapView.mapStyle = _nightStyle; + self.navigationItem.title = kNightType; + break; + case 3: + _mapView.mapStyle = nil; + self.navigationItem.title = kNormalType; + break; + case 4: + _mapView.mapStyle = _noPOIsStyle; + self.navigationItem.title = kNoPOIsType; + break; + default: + break; + } +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h new file mode 100755 index 0000000..4641d6c --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface TileLayerViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m new file mode 100755 index 0000000..d67dbc8 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m @@ -0,0 +1,80 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/TileLayerViewController.h" + +#import + +@implementation TileLayerViewController { + UISegmentedControl *_switcher; + GMSMapView *_mapView; + GMSTileLayer *_tileLayer; + NSInteger _floor; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318 + longitude:-122.403874 + zoom:18]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + _mapView.buildingsEnabled = NO; + _mapView.indoorEnabled = NO; + self.view = _mapView; + + // The possible floors that might be shown. + NSArray *types = @[ @"1", @"2", @"3" ]; + + // Create a UISegmentedControl that is the navigationItem's titleView. + _switcher = [[UISegmentedControl alloc] initWithItems:types]; + _switcher.selectedSegmentIndex = 0; + _switcher.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _switcher.frame = + CGRectMake(0, 0, 300, _switcher.frame.size.height); + self.navigationItem.titleView = _switcher; + + // Listen to touch events on the UISegmentedControl, force initial update. + [_switcher addTarget:self action:@selector(didChangeSwitcher) + forControlEvents:UIControlEventValueChanged]; + [self didChangeSwitcher]; +} + +- (void)didChangeSwitcher { + NSString *title = + [_switcher titleForSegmentAtIndex:_switcher.selectedSegmentIndex]; + NSInteger floor = [title integerValue]; + if (_floor != floor) { + // Clear existing tileLayer, if any. + _tileLayer.map = nil; + + // Create a new GMSTileLayer with the new floor choice. + GMSTileURLConstructor urls = ^(NSUInteger x, NSUInteger y, NSUInteger zoom) { + NSString *url = [NSString + stringWithFormat:@"https://www.gstatic.com/io2010maps/tiles/9/L%zd_%tu_%tu_%tu.png", + floor, zoom, x, y]; + return [NSURL URLWithString:url]; + }; + _tileLayer = [GMSURLTileLayer tileLayerWithURLConstructor:urls]; + _tileLayer.map = _mapView; + _floor = floor; + } +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h new file mode 100755 index 0000000..596aa4e --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface TrafficMapViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m new file mode 100755 index 0000000..08d6913 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m @@ -0,0 +1,37 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/TrafficMapViewController.h" + +#import + +@implementation TrafficMapViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:12]; + + GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + mapView.trafficEnabled = YES; + self.view = mapView; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h new file mode 100755 index 0000000..79c24cc --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface VisibleRegionViewController : UIViewController + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m new file mode 100755 index 0000000..e9d1491 --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m @@ -0,0 +1,75 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GoogleMapsDemos/Samples/VisibleRegionViewController.h" + +#import + +static CGFloat kOverlayHeight = 140.0f; + +@implementation VisibleRegionViewController { + GMSMapView *_mapView; + UIView *_overlay; + UIBarButtonItem *_flyInButton; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 + longitude:144.966085 + zoom:4]; + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + + // Enable my location button to show more UI components updating. + _mapView.settings.myLocationButton = YES; + _mapView.myLocationEnabled = YES; + _mapView.padding = UIEdgeInsetsMake(0, 0, kOverlayHeight, 0); + self.view = _mapView; + + // Create a button that, when pressed, causes an overlaying view to fly-in/out. + _flyInButton = [[UIBarButtonItem alloc] initWithTitle:@"Toggle Overlay" + style:UIBarButtonItemStylePlain + target:self + action:@selector(didTapFlyIn)]; + self.navigationItem.rightBarButtonItem = _flyInButton; + + CGRect overlayFrame = CGRectMake(0, -kOverlayHeight, 0, kOverlayHeight); + _overlay = [[UIView alloc] initWithFrame:overlayFrame]; + _overlay.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth; + + _overlay.backgroundColor = [UIColor colorWithHue:0.0 saturation:1.0 brightness:1.0 alpha:0.5]; + [self.view addSubview:_overlay]; +} + +- (void)didTapFlyIn { + UIEdgeInsets padding = _mapView.padding; + + [UIView animateWithDuration:2.0 animations:^{ + CGSize size = self.view.bounds.size; + if (padding.bottom == 0.0f) { + _overlay.frame = CGRectMake(0, size.height - kOverlayHeight, size.width, kOverlayHeight); + _mapView.padding = UIEdgeInsetsMake(0, 0, kOverlayHeight, 0); + } else { + _overlay.frame = CGRectMake(0, _mapView.bounds.size.height, size.width, 0); + _mapView.padding = UIEdgeInsetsZero; + } + }]; +} + +@end diff --git a/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m b/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m new file mode 100755 index 0000000..98e341e --- /dev/null +++ b/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m @@ -0,0 +1,28 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import + +#import "GoogleMapsDemos/DemoAppDelegate.h" + +int main(int argc, char *argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([DemoAppDelegate class])); + } +} diff --git a/Pods/GoogleMaps/Example/Podfile b/Pods/GoogleMaps/Example/Podfile new file mode 100755 index 0000000..d16ae20 --- /dev/null +++ b/Pods/GoogleMaps/Example/Podfile @@ -0,0 +1,5 @@ +source 'https://github.com/CocoaPods/Specs.git' + +target 'GoogleMapsDemos' do + pod 'GoogleMaps', '= 2.4.0' +end diff --git a/Pods/GoogleMaps/Example/README.GoogleMapsDemos b/Pods/GoogleMaps/Example/README.GoogleMapsDemos new file mode 100755 index 0000000..6a32aef --- /dev/null +++ b/Pods/GoogleMaps/Example/README.GoogleMapsDemos @@ -0,0 +1,21 @@ +GoogleMapsDemos contains a demo application showcasing various features of +the Google Maps SDK for iOS. + +Before starting, please note that these demos are directed towards a technical +audience. You'll also need Xcode 7.3 or later, with the iOS SDK 9.3 or later. + +If you're new to the SDK, please read the Introduction section of the Google +Maps SDK for iOS documentation- + https://developers.google.com/maps/documentation/ios + +Once you've read the Introduction page, follow the first couple of steps on the +"Getting Started" page. Specifically; + + * Obtain an API key for the demo application, and specify the bundle ID of + this demo application as an an 'allowed iOS app'. By default, the bundle ID + is "com.example.GoogleMapsDemos". + + * Open the project in Xcode, and update `SDKDemoAPIKey.h` with this key. + +If you'd like to add a new sample, add a new subclass of `ViewController` and +add it to the samples definitions inside the `Samples.m`. diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/GoogleMaps b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/GoogleMaps new file mode 100755 index 0000000..75d3681 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/GoogleMaps differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSAddress.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSAddress.h new file mode 100755 index 0000000..936ae89 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSAddress.h @@ -0,0 +1,75 @@ +// +// GMSAddress.h +// Google Maps SDK for iOS +// +// Copyright 2014 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif + +NS_ASSUME_NONNULL_BEGIN; + +/** + * A result from a reverse geocode request, containing a human-readable address. This class is + * immutable and should be obtained via GMSGeocoder. + * + * Some of the fields may be nil, indicating they are not present. + */ +@interface GMSAddress : NSObject + +/** Location, or kLocationCoordinate2DInvalid if unknown. */ +@property(nonatomic, readonly) CLLocationCoordinate2D coordinate; + +/** Street number and name. */ +@property(nonatomic, copy, readonly, nullable) NSString *thoroughfare; + +/** Locality or city. */ +@property(nonatomic, copy, readonly, nullable) NSString *locality; + +/** Subdivision of locality, district or park. */ +@property(nonatomic, copy, readonly, nullable) NSString *subLocality; + +/** Region/State/Administrative area. */ +@property(nonatomic, copy, readonly, nullable) NSString *administrativeArea; + +/** Postal/Zip code. */ +@property(nonatomic, copy, readonly, nullable) NSString *postalCode; + +/** The country name. */ +@property(nonatomic, copy, readonly, nullable) NSString *country; + +/** An array of NSString containing formatted lines of the address. May be nil. */ +@property(nonatomic, copy, readonly, nullable) NSArray *lines; + +/** + * Returns the first line of the address. + */ +- (nullable NSString *)addressLine1 __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "This method is obsolete and will be removed in a future release. Use the lines property " + "instead."); + +/** + * Returns the second line of the address. + */ +- (nullable NSString *)addressLine2 __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "This method is obsolete and will be removed in a future release. Use the lines property " + "instead."); + +@end + +/** + * The former type of geocode results (pre-1.7). This remains here for migration and will be + * removed in future releases. + */ +@compatibility_alias GMSReverseGeocodeResult GMSAddress; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCALayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCALayer.h new file mode 100755 index 0000000..93a720f --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCALayer.h @@ -0,0 +1,20 @@ +// +// GMSCALayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +/** + * GMSCALayer is a superclass used by layers in the Google Maps SDK for iOS, such as GMSMapLayer and + * GMSPanoramaLayer. + * + * This is an implementation detail and it should not be instantiated directly. + */ +@interface GMSCALayer : CALayer +@end diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraPosition.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraPosition.h new file mode 100755 index 0000000..fd8398c --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraPosition.h @@ -0,0 +1,126 @@ +// +// GMSCameraPosition.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** +* An immutable class that aggregates all camera position parameters. + */ +@interface GMSCameraPosition : NSObject + +/** + * Location on the Earth towards which the camera points. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D target; + +/** + * Zoom level. Zoom uses an exponentional scale, where zoom 0 represents the entire world as a + * 256 x 256 square. Each successive zoom level increases magnification by a factor of 2. So at + * zoom level 1, the world is 512x512, and at zoom level 2, the entire world is 1024x1024. + */ +@property(nonatomic, readonly) float zoom; + +/** + * Bearing of the camera, in degrees clockwise from true north. + */ +@property(nonatomic, readonly) CLLocationDirection bearing; + +/** + * The angle, in degrees, of the camera from the nadir (directly facing the Earth). 0 is + * straight down, 90 is parallel to the ground. Note that the maximum angle allowed is dependent + * on the zoom. You can think of it as a series of line segments as a function of zoom, rather + * than a step function. For zoom 16 and above, the maximum angle is 65 degrees. For zoom 10 and + * below, the maximum angle is 30 degrees. + */ +@property(nonatomic, readonly) double viewingAngle; + +/** + * Designated initializer. Configures this GMSCameraPosition with all available camera properties. + * Building a GMSCameraPosition via this initializer (or by the following convenience constructors) + * will implicitly clamp camera values. + * + * @param target Location on the earth towards which the camera points. + * @param zoom The zoom level near the center of the screen. + * @param bearing Bearing of the camera in degrees clockwise from true north. + * @param viewingAngle The angle, in degrees, of the camera angle from the nadir (directly facing + * the Earth) + */ +- (id)initWithTarget:(CLLocationCoordinate2D)target + zoom:(float)zoom + bearing:(CLLocationDirection)bearing + viewingAngle:(double)viewingAngle; + +/** + * Convenience constructor for GMSCameraPosition for a particular target and zoom level. This will + * set the bearing and viewingAngle properties of this camera to zero defaults (i.e., directly + * facing the Earth's surface, with the top of the screen pointing north). + */ ++ (instancetype)cameraWithTarget:(CLLocationCoordinate2D)target zoom:(float)zoom; + +/** + * Convenience constructor for GMSCameraPosition, as per cameraWithTarget:zoom:. + */ ++ (instancetype)cameraWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + zoom:(float)zoom; + +/** + * Convenience constructor for GMSCameraPosition, with all camera properties as per + * initWithTarget:zoom:bearing:viewingAngle:. + */ ++ (instancetype)cameraWithTarget:(CLLocationCoordinate2D)target + zoom:(float)zoom + bearing:(CLLocationDirection)bearing + viewingAngle:(double)viewingAngle; + +/** + * Convenience constructor for GMSCameraPosition, with latitude/longitude and all other camera + * properties as per initWithTarget:zoom:bearing:viewingAngle:. + */ ++ (instancetype)cameraWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + zoom:(float)zoom + bearing:(CLLocationDirection)bearing + viewingAngle:(double)viewingAngle; + +/** + * Get the zoom level at which |meters| distance, at given |coord| on Earth, correspond to the + * specified number of screen |points|. + * + * For extremely large or small distances the returned zoom level may be smaller or larger than the + * minimum or maximum zoom level allowed on the camera. + * + * This helper method is useful for building camera positions that contain specific physical areas + * on Earth. + */ ++ (float)zoomAtCoordinate:(CLLocationCoordinate2D)coordinate + forMeters:(CLLocationDistance)meters + perPoints:(CGFloat)points; + +@end + +/** Mutable version of GMSCameraPosition. */ +@interface GMSMutableCameraPosition : GMSCameraPosition +@property(nonatomic, assign) CLLocationCoordinate2D target; +@property(nonatomic, assign) float zoom; +@property(nonatomic, assign) CLLocationDirection bearing; +@property(nonatomic, assign) double viewingAngle; +@end + +/** The maximum zoom (closest to the Earth's surface) permitted by the map camera. */ +FOUNDATION_EXTERN const float kGMSMaxZoomLevel; + +/** The minimum zoom (farthest from the Earth's surface) permitted by the map camera. */ +FOUNDATION_EXTERN const float kGMSMinZoomLevel; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraUpdate.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraUpdate.h new file mode 100755 index 0000000..4b90f55 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCameraUpdate.h @@ -0,0 +1,109 @@ +// +// GMSCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +@class GMSCameraPosition; +@class GMSCoordinateBounds; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSCameraUpdate represents an update that may be applied to a GMSMapView. + * + * It encapsulates some logic for modifying the current camera. + * + * It should only be constructed using the factory helper methods below. + */ +@interface GMSCameraUpdate : NSObject + +/** + * Returns a GMSCameraUpdate that zooms in on the map. + * + * The zoom increment is 1.0. + */ ++ (GMSCameraUpdate *)zoomIn; + +/** + * Returns a GMSCameraUpdate that zooms out on the map. + * + * The zoom increment is -1.0. + */ ++ (GMSCameraUpdate *)zoomOut; + +/** + * Returns a GMSCameraUpdate that changes the zoom by the specified amount. + */ ++ (GMSCameraUpdate *)zoomBy:(float)delta; + +/** + * Returns a GMSCameraUpdate that sets the zoom to the specified amount. + */ ++ (GMSCameraUpdate *)zoomTo:(float)zoom; + +/** + * Returns a GMSCameraUpdate that sets the camera target to the specified coordinate. + */ ++ (GMSCameraUpdate *)setTarget:(CLLocationCoordinate2D)target; + +/** + * Returns a GMSCameraUpdate that sets the camera target and zoom to the specified values. + */ ++ (GMSCameraUpdate *)setTarget:(CLLocationCoordinate2D)target zoom:(float)zoom; + +/** + * Returns a GMSCameraUpdate that sets the camera to the specified GMSCameraPosition. + */ ++ (GMSCameraUpdate *)setCamera:(GMSCameraPosition *)camera; + +/** + * Returns a GMSCameraUpdate that transforms the camera such that the specified bounds are centered + * on screen at the greatest possible zoom level. The bounds will have a default padding of 64 + * points. + * + * The returned camera update will set the camera's bearing and tilt to their default zero values + * (i.e., facing north and looking directly at the Earth). + */ ++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds; + +/** + * This is similar to fitBounds: but allows specifying the padding (in points) in order to inset the + * bounding box from the view's edges. + * + * If the requested |padding| is larger than the view size in either the vertical or horizontal + * direction the map will be maximally zoomed out. + */ ++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds withPadding:(CGFloat)padding; + +/** + * This is similar to fitBounds: but allows specifying edge insets in order to inset the bounding + * box from the view's edges. + * + * If the requested |edgeInsets| are larger than the view size in either the vertical or horizontal + * direction the map will be maximally zoomed out. + */ ++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds + withEdgeInsets:(UIEdgeInsets)edgeInsets; + +/** + * Returns a GMSCameraUpdate that shifts the center of the view by the specified number of points in + * the x and y directions. X grows to the right, Y grows down. + */ ++ (GMSCameraUpdate *)scrollByX:(CGFloat)dX Y:(CGFloat)dY; + +/** + * Returns a GMSCameraUpdate that zooms with a focus point; the focus point stays fixed on screen. + */ ++ (GMSCameraUpdate *)zoomBy:(float)zoom atPoint:(CGPoint)point; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCircle.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCircle.h new file mode 100755 index 0000000..0bca26b --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCircle.h @@ -0,0 +1,54 @@ +// +// GMSCircle.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSOverlay.h" + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * A circle on the Earth's surface (spherical cap). + */ +@interface GMSCircle : GMSOverlay + +/** Position on Earth of circle center. */ +@property(nonatomic, assign) CLLocationCoordinate2D position; + +/** Radius of the circle in meters; must be positive. */ +@property(nonatomic, assign) CLLocationDistance radius; + +/** + * The width of the circle's outline in screen points. Defaults to 1. As per GMSPolygon, the width + * does not scale when the map is zoomed. + * + * Setting strokeWidth to 0 results in no stroke. + */ +@property(nonatomic, assign) CGFloat strokeWidth; + +/** The color of this circle's outline. The default value is black. */ +@property(nonatomic, strong, nullable) UIColor *strokeColor; + +/** + * The interior of the circle is painted with fillColor. The default value is nil, resulting in no + * fill. + */ +@property(nonatomic, strong, nullable) UIColor *fillColor; + +/** + * Convenience constructor for GMSCircle for a particular position and radius. Other properties will + * have default values. + */ ++ (instancetype)circleWithPosition:(CLLocationCoordinate2D)position + radius:(CLLocationDistance)radius; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h new file mode 100755 index 0000000..728cda8 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h @@ -0,0 +1,43 @@ +// +// GMSCoordinateBounds+GoogleMaps.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif + +#import "GMSProjection.h" + +@class GMSPath; + +NS_ASSUME_NONNULL_BEGIN; + +@interface GMSCoordinateBounds (GoogleMaps) + +/** + * Inits with bounds that encompass |region|. + */ +- (id)initWithRegion:(GMSVisibleRegion)region; + +/** + * Inits with bounds that encompass |path|. + */ +- (id)initWithPath:(GMSPath *)path; + +/** + * Returns a GMSCoordinateBounds representing the current bounds extended to include |path|. + */ +- (GMSCoordinateBounds *)includingPath:(GMSPath *)path; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeocoder.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeocoder.h new file mode 100755 index 0000000..ee91cae --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeocoder.h @@ -0,0 +1,69 @@ +// +// GMSGeocoder.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSAddress.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSReverseGeocodeResponse; + +/** + * GMSGeocoder error codes, embedded in NSError. + * + * @related GMSGeocoder + */ +typedef NS_ENUM(NSInteger, GMSGeocoderErrorCode) { + kGMSGeocoderErrorInvalidCoordinate = 1, + kGMSGeocoderErrorInternal, +}; + +/** + * Handler that reports a reverse geocoding response, or error. + * + * @related GMSGeocoder + */ +typedef void (^GMSReverseGeocodeCallback)(GMSReverseGeocodeResponse *_Nullable, + NSError *_Nullable); + +/** + * Exposes a service for reverse geocoding. This maps Earth coordinates (latitude and longitude) to + * a collection of addresses near that coordinate. + */ +@interface GMSGeocoder : NSObject + +/* Convenience constructor for GMSGeocoder. */ ++ (GMSGeocoder *)geocoder; + +/** + * Reverse geocodes a coordinate on the Earth's surface. + * + * @param coordinate The coordinate to reverse geocode. + * @param handler The callback to invoke with the reverse geocode results. + * The callback will be invoked asynchronously from the main thread. + */ +- (void)reverseGeocodeCoordinate:(CLLocationCoordinate2D)coordinate + completionHandler:(GMSReverseGeocodeCallback)handler; + +@end + +/** A collection of results from a reverse geocode request. */ +@interface GMSReverseGeocodeResponse : NSObject + +/** Returns the first result, or nil if no results were available. */ +- (nullable GMSAddress *)firstResult; + +/** Returns an array of all the results (contains GMSAddress), including the first result. */ +- (nullable NSArray *)results; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeometryUtils.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeometryUtils.h new file mode 100755 index 0000000..a7e5488 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGeometryUtils.h @@ -0,0 +1,243 @@ +// +// GMSGeometryUtils.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +/** + * \defgroup GeometryUtils GMSGeometryUtils + * @{ + */ + +#import + +#import "GMSPath.h" + +@class GMSPath; +@class GMSStrokeStyle; +@class GMSStyleSpan; + +NS_ASSUME_NONNULL_BEGIN; + +/** Average Earth radius in meters. */ +static const CLLocationDistance kGMSEarthRadius = 6371009.0; + +/** + * A point on the map. May represent a projected coordinate. + * + * x is in [-1, 1]. The axis direction is normal: y grows towards North, x grows towards East. (0, + * 0) is the center of the map. + * + * See GMSProject() and GMSUnproject(). + */ +typedef struct GMSMapPoint { + double x; + double y; +} GMSMapPoint; + +/** Projects |coordinate| to the map. |coordinate| must be valid. */ +FOUNDATION_EXPORT +GMSMapPoint GMSProject(CLLocationCoordinate2D coordinate); + +/** Unprojects |point| from the map. point.x must be in [-1, 1]. */ +FOUNDATION_EXPORT +CLLocationCoordinate2D GMSUnproject(GMSMapPoint point); + +/** + * Returns a linearly interpolated point on the segment [a, b], at the fraction |t| from |a|. |t|==0 + * corresponds to |a|, |t|==1 corresponds to |b|. + * + * The interpolation takes place along the short path between the points potentially crossing the + * date line. E.g. interpolating from San Francisco to Tokyo will pass north of Hawaii and cross the + * date line. + */ +FOUNDATION_EXPORT +GMSMapPoint GMSMapPointInterpolate(GMSMapPoint a, GMSMapPoint b, double t); + +/** + * Returns the length of the segment [a, b] in projected space. + * + * The length is computed along the short path between the points potentially crossing the date + * line. E.g. the distance between the points corresponding to San Francisco and Tokyo measures the + * segment that passes north of Hawaii crossing the date line. + */ +FOUNDATION_EXPORT +double GMSMapPointDistance(GMSMapPoint a, GMSMapPoint b); + +/** + * Returns whether |point| lies inside of path. The path is always considered closed, regardless of + * whether the last point equals the first or not. + * + * Inside is defined as not containing the South Pole -- the South Pole is always outside. + * + * |path| describes great circle segments if |geodesic| is YES, and rhumb (loxodromic) segments + * otherwise. + * + * If |point| is exactly equal to one of the vertices, the result is YES. A point that is not equal + * to a vertex is on one side or the other of any path segment -- it can never be "exactly on the + * border". + * + * See GMSGeometryIsLocationOnPath() for a border test with tolerance. + */ +FOUNDATION_EXPORT +BOOL GMSGeometryContainsLocation(CLLocationCoordinate2D point, GMSPath *path, BOOL geodesic); + +/** + * Returns whether |point| lies on or near |path|, within the specified |tolerance| in meters. + * |path| is composed of great circle segments if |geodesic| is YES, and of rhumb (loxodromic) + * segments if |geodesic| is NO. + * + * See also GMSGeometryIsLocationOnPath(point, path, geodesic). + * + * The tolerance, in meters, is relative to the spherical radius of the Earth. If you need to work + * on a sphere of different radius, you may compute the equivalent tolerance from the desired + * tolerance on the sphere of radius R: tolerance = toleranceR * (RadiusEarth / R), with + * RadiusEarth==6371009. + */ +FOUNDATION_EXPORT +BOOL GMSGeometryIsLocationOnPathTolerance(CLLocationCoordinate2D point, + GMSPath *path, + BOOL geodesic, + CLLocationDistance tolerance); + +/** + * Same as GMSGeometryIsLocationOnPath(point, path, geodesic, tolerance), with a default tolerance + * of 0.1 meters. + */ +FOUNDATION_EXPORT +BOOL GMSGeometryIsLocationOnPath(CLLocationCoordinate2D point, GMSPath *path, BOOL geodesic); + +/** + * Returns the great circle distance between two coordinates, in meters, on Earth. + * + * This is the shortest distance between the two coordinates on the sphere. + * + * Both coordinates must be valid. + */ +FOUNDATION_EXPORT +CLLocationDistance GMSGeometryDistance(CLLocationCoordinate2D from, CLLocationCoordinate2D to); + +/** + * Returns the great circle length of |path|, in meters, on Earth. + * + * This is the sum of GMSGeometryDistance() over the path segments. + * + * All the coordinates of the path must be valid. + */ +FOUNDATION_EXPORT +CLLocationDistance GMSGeometryLength(GMSPath *path); + +/** + * Returns the area of a geodesic polygon defined by |path| on Earth. + * + * The "inside" of the polygon is defined as not containing the South pole. + * + * If |path| is not closed, it is implicitly treated as a closed path nevertheless and the result is + * the same. + * + * All coordinates of the path must be valid. + * + * The polygon must be simple (not self-overlapping) and may be concave. + * + * If any segment of the path is a pair of antipodal points, the result is undefined -- because two + * antipodal points do not form a unique great circle segment on the sphere. + */ +FOUNDATION_EXPORT +double GMSGeometryArea(GMSPath *path); + +/** + * Returns the signed area of a geodesic polygon defined by |path| on Earth. + * + * The result has the same absolute value as GMSGeometryArea(); it is positive if the points of path + * are in counter-clockwise order, and negative otherwise. + * + * The same restrictions as on GMSGeometryArea() apply. + */ +FOUNDATION_EXPORT +double GMSGeometrySignedArea(GMSPath *path); + +/** + * Returns the initial heading (degrees clockwise of North) at |from| of the shortest path to |to|. + * + * The returned value is in the range [0, 360). + * + * Returns 0 if the two coordinates are the same. + * + * Both coordinates must be valid. + * + * To get the final heading at |to| one may use (GMSGeometryHeading(|to|, |from|) + 180) modulo 360. + */ +FOUNDATION_EXPORT +CLLocationDirection GMSGeometryHeading(CLLocationCoordinate2D from, CLLocationCoordinate2D to); + +/** + * Returns the destination coordinate, when starting at |from| with initial |heading|, travelling + * |distance| meters along a great circle arc, on Earth. + * + * The resulting longitude is in the range [-180, 180). + * + * Both coordinates must be valid. + */ +FOUNDATION_EXPORT +CLLocationCoordinate2D GMSGeometryOffset(CLLocationCoordinate2D from, + CLLocationDistance distance, + CLLocationDirection heading); + +/** + * Returns the coordinate that lies the given |fraction| of the way between the |from| and |to| + * coordinates on the shortest path between the two. + * + * The resulting longitude is in the range [-180, 180). + */ +FOUNDATION_EXPORT +CLLocationCoordinate2D GMSGeometryInterpolate(CLLocationCoordinate2D from, + CLLocationCoordinate2D to, + double fraction); + +/** + * Returns an NSArray of GMSStyleSpan constructed by repeated application of style and length + * information from |styles| and |lengths| along |path|. + * + * |path| the path along which the output spans are computed. + * |styles| an NSArray of GMSStrokeStyle. Wraps if consumed. Can't be empty. + * |lengths| an NSArray of NSNumber; each entry gives the length of the corresponding + * style from |styles|. Wraps if consumed. Can't be empty. + * |lengthKind| the interpretation of values from |lengths| (geodesic, rhumb or projected). + * + * Example: a polyline with alternating black and white spans: + * + *
+ * GMSMutablePath *path;
+ * NSArray *styles = @[[GMSStrokeStyle solidColor:[UIColor whiteColor]],
+ *                     [GMSStrokeStyle solidColor:[UIColor blackColor]]];
+ * NSArray *lengths = @[@100000, @50000];
+ * polyline.path = path;
+ * polyline.spans = GMSStyleSpans(path, styles, lengths, kGMSLengthRhumb);
+ * 
+ */ +FOUNDATION_EXPORT +NSArray *GMSStyleSpans(GMSPath *path, + NSArray *styles, + NSArray *lengths, + GMSLengthKind lengthKind); + +/** + * Similar to GMSStyleSpans(path, styles, lengths, lengthKind) but additionally takes an initial + * length offset that will be skipped over relative to the |lengths| array. + * + * |lengthOffset| the length (e.g. in meters) that should be skipped initially from |lengths|. + */ +FOUNDATION_EXPORT +NSArray *GMSStyleSpansOffset(GMSPath *path, + NSArray *styles, + NSArray *lengths, + GMSLengthKind lengthKind, + double lengthOffset); + +/**@}*/ + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGroundOverlay.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGroundOverlay.h new file mode 100755 index 0000000..dc620c6 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSGroundOverlay.h @@ -0,0 +1,85 @@ +// +// GMSGroundOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSOverlay.h" + +@class GMSCoordinateBounds; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSGroundOverlay specifies the available options for a ground overlay that exists on the Earth's + * surface. Unlike a marker, the position of a ground overlay is specified explicitly and it does + * not face the camera. + */ +@interface GMSGroundOverlay : GMSOverlay + +/** + * The position of this GMSGroundOverlay, or more specifically, the physical position of its anchor. + * If this is changed, |bounds| will be moved around the new position. + */ +@property(nonatomic, assign) CLLocationCoordinate2D position; + +/** + * The anchor specifies where this GMSGroundOverlay is anchored to the Earth in relation to + * |bounds|. If this is modified, |position| will be set to the corresponding new position within + * |bounds|. + */ +@property(nonatomic, assign) CGPoint anchor; + +/** + * Icon to render within |bounds| on the Earth. If this is nil, the overlay will not be visible + * (unlike GMSMarker which has a default image). + */ +@property(nonatomic, strong, nullable) UIImage *icon; + +/** + * Sets the opacity of the ground overlay, between 0 (completely transparent) and 1 (default) + * inclusive. + */ +@property(nonatomic, assign) float opacity; + +/** + * Bearing of this ground overlay, in degrees. The default value, zero, points this ground overlay + * up/down along the normal Y axis of the earth. + */ +@property(nonatomic, assign) CLLocationDirection bearing; + +/** + * The 2D bounds on the Earth in which |icon| is drawn. Changing this value will adjust |position| + * accordingly. + */ +@property(nonatomic, strong, nullable) GMSCoordinateBounds *bounds; + +/** + * Convenience constructor for GMSGroundOverlay for a particular |bounds| and |icon|. Will set + * |position| accordingly. + */ ++ (instancetype)groundOverlayWithBounds:(nullable GMSCoordinateBounds *)bounds + icon:(nullable UIImage *)icon; + +/** + * Constructs a GMSGroundOverlay that renders the given |icon| at |position|, as if the image's + * actual size matches camera pixels at |zoomLevel|. + */ ++ (instancetype)groundOverlayWithPosition:(CLLocationCoordinate2D)position + icon:(nullable UIImage *)icon + zoomLevel:(CGFloat)zoomLevel; + +@end + +/** + * The default position of the ground anchor of a GMSGroundOverlay: the center point of the icon. + */ +FOUNDATION_EXTERN const CGPoint kGMSGroundOverlayDefaultAnchor; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorBuilding.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorBuilding.h new file mode 100755 index 0000000..32e783a --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorBuilding.h @@ -0,0 +1,41 @@ +// +// GMSIndoorBuilding.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSIndoorLevel; + +/** + * Describes a building which contains levels. + */ +@interface GMSIndoorBuilding : NSObject + +/** + * Array of GMSIndoorLevel describing the levels which make up the building. + * The levels are in 'display order' from top to bottom. + */ +@property(nonatomic, strong, readonly) NSArray *levels; + +/** + * Index in the levels array of the default level. + */ +@property(nonatomic, assign, readonly) NSUInteger defaultLevelIndex; + +/** + * If YES, the building is entirely underground and supports being hidden. + */ +@property(nonatomic, assign, readonly, getter=isUnderground) BOOL underground; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorDisplay.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorDisplay.h new file mode 100755 index 0000000..77096c1 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorDisplay.h @@ -0,0 +1,66 @@ +// +// GMSIndoorDisplay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +@class GMSIndoorBuilding; +@class GMSIndoorLevel; + +NS_ASSUME_NONNULL_BEGIN; + +/** Delegate for events on GMSIndoorDisplay. */ +@protocol GMSIndoorDisplayDelegate +@optional + +/** + * Raised when the activeBuilding has changed. The activeLevel will also have already been updated + * for the new building, but didChangeActiveLevel: will be raised after this method. + */ +- (void)didChangeActiveBuilding:(nullable GMSIndoorBuilding *)building; + +/** + * Raised when the activeLevel has changed. This event is raised for all changes, including + * explicit setting of the property. + */ +- (void)didChangeActiveLevel:(nullable GMSIndoorLevel *)level; + +@end + +/** + * Provides ability to observe or control the display of indoor level data. + * + * Like GMSMapView, GMSIndoorDisplay may only be used from the main thread. + */ +@interface GMSIndoorDisplay : NSObject + +/** GMSIndoorDisplay delegate */ +@property(nonatomic, weak, nullable) id delegate; + +/** + * Provides the currently focused building, will be nil if there is no building with indoor data + * currently under focus. + */ +@property(nonatomic, strong, readonly, nullable) GMSIndoorBuilding *activeBuilding; + +/** + * Provides and controls the active level for activeBuilding. Will be updated whenever + * activeBuilding changes, and may be set to any member of activeBuilding's levels property. May + * also be set to nil if the building is underground, to stop showing the building (the building + * will remain active). + * + * Will always be nil if activeBuilding is nil. + * + * Any attempt to set it to an invalid value will be ignored. + */ +@property(nonatomic, strong, nullable) GMSIndoorLevel *activeLevel; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorLevel.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorLevel.h new file mode 100755 index 0000000..7afcdab --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSIndoorLevel.h @@ -0,0 +1,32 @@ +// +// GMSIndoorLevel.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Describes a single level in a building. + * + * Multiple buildings can share a level - in this case the level instances will compare as equal, + * even though the level numbers/names may be different. + */ +@interface GMSIndoorLevel : NSObject + +/** Localized display name for the level, e.g. "Ground floor". */ +@property(nonatomic, copy, readonly, nullable) NSString *name; + +/** Localized short display name for the level, e.g. "1". */ +@property(nonatomic, copy, readonly, nullable) NSString *shortName; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapLayer.h new file mode 100755 index 0000000..f7841d9 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapLayer.h @@ -0,0 +1,110 @@ +// +// GMSMapLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#import "GMSCALayer.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * The following layer properties and constants describe the camera properties that may be animated + * on the custom model layer of a GMSMapView with Core Animation. For simple camera control and + * animation, please see the helper methods in GMSMapView+Animation.h, and the camera object + * definition within GMSCameraPosition.h. + * + * Changing layer properties triggers an implicit animation, e.g.:- + * mapView_.layer.cameraBearing = 20; + * + * An explicit animation, replacing the implicit animation, may be added after changing the + * property, for example: + *
+ *   CAMediaTimingFunction *curve = [CAMediaTimingFunction functionWithName:
+ *                                   kCAMediaTimingFunctionEaseInEaseOut];
+ *   CABasicAnimation *animation =
+ *       [CABasicAnimation animationWithKeyPath:kGMSLayerCameraBearingKey];
+ *   animation.duration = 2.0f;
+ *   animation.timingFunction = curve;
+ *   animation.toValue = @20;
+ *   [mapView_.layer addAnimation:animation forKey:kGMSLayerCameraBearingKey];
+ * 
+ * + * To control several implicit animations, Core Animation's transaction support may be used, for + * example: + *
+ *   [CATransaction begin];
+ *   [CATransaction setAnimationDuration:2.0f];
+ *   mapView_.layer.cameraBearing = 20;
+ *   mapView_.layer.cameraViewingAngle = 30;
+ *   [CATransaction commit];
+ * 
+ * + * Note that these properties are not view-based. Please see "Animating View and Layer Changes + * Together" in the + * View Programming Guide for iOS. + */ + +/** + * kGMSLayerCameraLatitudeKey ranges from [-85, 85], and values outside this range will be clamped. + * + * @related GMSMapLayer + */ +extern NSString *const kGMSLayerCameraLatitudeKey; + +/** + * kGMSLayerCameraLongitudeKey ranges from [-180, 180), and values outside this range will be + * wrapped to within this range. + * + * @related GMSMapLayer + */ +extern NSString *const kGMSLayerCameraLongitudeKey; + +/** + * kGMSLayerCameraBearingKey ranges from [0, 360), and values are wrapped. + * + * @related GMSMapLayer + */ +extern NSString *const kGMSLayerCameraBearingKey; + +/** + * kGMSLayerCameraZoomLevelKey ranges from [kGMSMinZoomLevel, kGMSMaxZoomLevel], and values are + * clamped. + * + * @related GMSMapLayer + */ +extern NSString *const kGMSLayerCameraZoomLevelKey; + +/** + * kGMSLayerCameraViewingAngleKey ranges from zero (i.e., facing straight down) and to between 30 + * and 45 degrees towards the horizon, depending on the model zoom level. + * + * @related GMSMapLayer + */ +extern NSString *const kGMSLayerCameraViewingAngleKey; + +/** + * GMSMapLayer is a custom subclass of CALayer, provided as the layer class on GMSMapView. This + * layer should not be instantiated directly. It provides model access to the camera normally + * defined on GMSMapView. + * + * Modifying or animating these properties will typically interrupt any current gesture on + * GMSMapView, e.g., a user's pan or rotation. Similarly, if a user performs an enabled gesture + * during an animation, the animation will stop 'in-place' (at the current presentation value). + */ +@interface GMSMapLayer : GMSCALayer +@property(nonatomic, assign) CLLocationDegrees cameraLatitude; +@property(nonatomic, assign) CLLocationDegrees cameraLongitude; +@property(nonatomic, assign) CLLocationDirection cameraBearing; +@property(nonatomic, assign) float cameraZoomLevel; +@property(nonatomic, assign) double cameraViewingAngle; +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapStyle.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapStyle.h new file mode 100755 index 0000000..218c306 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapStyle.h @@ -0,0 +1,47 @@ +// +// GMSMapStyle.h +// Google Maps SDK for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSMapStyle holds details about a style which can be applied to a map. + * + * With style options you can customize the presentation of the standard Google map styles, changing + * the visual display of features like roads, parks, and other points of interest. As well as + * changing the style of these features, you can also hide features entirely. This means that you + * can emphasize particular components of the map or make the map complement the content of your + * app. + * + * For more information see: https://developers.google.com/maps/documentation/ios-sdk/styling + */ +@interface GMSMapStyle : NSObject + +/** + * Creates a style using a string containing JSON. + * + * Returns nil and populates |error| (if provided) if |style| is invalid. + */ ++ (nullable instancetype)styleWithJSONString:(NSString *)style + error:(NSError *__autoreleasing _Nullable *)error; + +/** + * Creates a style using a file containing JSON. + * + * Returns nil and populates |error| (if provided) if |style| is invalid, the file cannot be read, + * or the URL is not a file URL. + */ ++ (nullable instancetype)styleWithContentsOfFileURL:(NSURL *)fileURL + error:(NSError *__autoreleasing _Nullable *)error; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView+Animation.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView+Animation.h new file mode 100755 index 0000000..404054d --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView+Animation.h @@ -0,0 +1,61 @@ +// +// GMSMapView+Animation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSMapView.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSMapView (Animation) offers several animation helper methods. + * + * During any animation, retrieving the camera position through the camera property on GMSMapView + * returns an intermediate immutable GMSCameraPosition. This camera position will typically + * represent the most recently drawn frame. + */ +@interface GMSMapView (Animation) + +/** Animates the camera of this map to |cameraPosition|. */ +- (void)animateToCameraPosition:(GMSCameraPosition *)cameraPosition; + +/** + * As animateToCameraPosition:, but changes only the location of the camera (i.e., from the current + * location to |location|). + */ +- (void)animateToLocation:(CLLocationCoordinate2D)location; + +/** + * As animateToCameraPosition:, but changes only the zoom level of the camera. + * + * This value is clamped by [kGMSMinZoomLevel, kGMSMaxZoomLevel]. + */ +- (void)animateToZoom:(float)zoom; + +/** + * As animateToCameraPosition:, but changes only the bearing of the camera (in degrees). Zero + * indicates true north. + */ +- (void)animateToBearing:(CLLocationDirection)bearing; + +/** + * As animateToCameraPosition:, but changes only the viewing angle of the camera (in degrees). This + * value will be clamped to a minimum of zero (i.e., facing straight down) and between 30 and 45 + * degrees towards the horizon, depending on the relative closeness to the earth. + */ +- (void)animateToViewingAngle:(double)viewingAngle; + +/** + * Applies |cameraUpdate| to the current camera, and then uses the result as per + * animateToCameraPosition:. + */ +- (void)animateWithCameraUpdate:(GMSCameraUpdate *)cameraUpdate; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView.h new file mode 100755 index 0000000..1f435d5 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMapView.h @@ -0,0 +1,461 @@ +// +// GMSMapView.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSMapLayer.h" +#import "GMSUISettings.h" + +@class GMSCameraPosition; +@class GMSCameraUpdate; +@class GMSCoordinateBounds; +@class GMSIndoorDisplay; +@class GMSMapLayer; +@class GMSMapStyle; +@class GMSMapView; +@class GMSMarker; +@class GMSOverlay; +@class GMSProjection; + +NS_ASSUME_NONNULL_BEGIN; + +/** Delegate for events on GMSMapView. */ +@protocol GMSMapViewDelegate + +@optional + +/** + * Called before the camera on the map changes, either due to a gesture, animation (e.g., by a user + * tapping on the "My Location" button) or by being updated explicitly via the camera or a + * zero-length animation on layer. + * + * @param gesture If YES, this is occuring due to a user gesture. +*/ +- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture; + +/** + * Called repeatedly during any animations or gestures on the map (or once, if the camera is + * explicitly set). This may not be called for all intermediate camera positions. It is always + * called for the final position of an animation or gesture. + */ +- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position; + +/** + * Called when the map becomes idle, after any outstanding gestures or animations have completed (or + * after the camera has been explicitly set). + */ +- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position; + +/** + * Called after a tap gesture at a particular coordinate, but only if a marker was not tapped. This + * is called before deselecting any currently selected marker (the implicit action for tapping on + * the map). + */ +- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Called after a long-press gesture at a particular coordinate. + * + * @param mapView The map view that was tapped. + * @param coordinate The location that was tapped. + */ +- (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Called after a marker has been tapped. + * + * @param mapView The map view that was tapped. + * @param marker The marker that was tapped. + * @return YES if this delegate handled the tap event, which prevents the map from performing its + * default selection behavior, and NO if the map should continue with its default selection + * behavior. + */ +- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker; + +/** + * Called after a marker's info window has been tapped. + */ +- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker; + +/** + * Called after a marker's info window has been long pressed. + */ +- (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker; + +/** + * Called after an overlay has been tapped. + * + * This method is not called for taps on markers. + * + * @param mapView The map view that was tapped. + * @param overlay The overlay that was tapped. + */ +- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay; + +/** + * Called after a POI has been tapped. + * + * @param mapView The map view that was tapped. + * @param placeID The placeID of the POI that was tapped. + * @param name The name of the POI that was tapped. + * @param location The location of the POI that was tapped. + */ +- (void)mapView:(GMSMapView *)mapView + didTapPOIWithPlaceID:(NSString *)placeID + name:(NSString *)name + location:(CLLocationCoordinate2D)location; + +/** + * Called when a marker is about to become selected, and provides an optional custom info window to + * use for that marker if this method returns a UIView. + * + * If you change this view after this method is called, those changes will not necessarily be + * reflected in the rendered version. + * + * The returned UIView must not have bounds greater than 500 points on either dimension. As there + * is only one info window shown at any time, the returned view may be reused between other info + * windows. + * + * Removing the marker from the map or changing the map's selected marker during this call results + * in undefined behavior. + * + * @return The custom info window for the specified marker, or nil for default + */ +- (nullable UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker; + +/** + * Called when mapView:markerInfoWindow: returns nil. If this method returns a view, it will be + * placed within the default info window frame. If this method returns nil, then the default + * rendering will be used instead. + * + * @param mapView The map view that was pressed. + * @param marker The marker that was pressed. + * @return The custom view to display as contents in the info window, or nil to use the default + * content rendering instead + */ + +- (nullable UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker; + +/** + * Called when the marker's info window is closed. + */ +- (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker; + +/** + * Called when dragging has been initiated on a marker. + */ +- (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker; + +/** + * Called after dragging of a marker ended. + */ +- (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker; + +/** + * Called while a marker is dragged. + */ +- (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker; + +/** + * Called when the My Location button is tapped. + * + * @return YES if the listener has consumed the event (i.e., the default behavior should not occur), + * NO otherwise (i.e., the default behavior should occur). The default behavior is for the + * camera to move such that it is centered on the user location. + */ +- (BOOL)didTapMyLocationButtonForMapView:(GMSMapView *)mapView; + +/** + * Called when tiles have just been requested or labels have just started rendering. + */ +- (void)mapViewDidStartTileRendering:(GMSMapView *)mapView; + +/** + * Called when all tiles have been loaded (or failed permanently) and labels have been rendered. + */ +- (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView; + +/** + * Called when map is stable (tiles loaded, labels rendered, camera idle) and overlay objects have + * been rendered. + */ +- (void)mapViewSnapshotReady:(GMSMapView *)mapView; + +@end + +/** + * Display types for GMSMapView. + * + * @related GMSMapView + */ +typedef NS_ENUM(NSUInteger, GMSMapViewType) { + /** Basic maps. The default. */ + kGMSTypeNormal GMS_SWIFT_NAME_2_0_3_0(Normal, normal) = 1, + + /** Satellite maps with no labels. */ + kGMSTypeSatellite GMS_SWIFT_NAME_2_0_3_0(Satellite, satellite), + + /** Terrain maps. */ + kGMSTypeTerrain GMS_SWIFT_NAME_2_0_3_0(Terrain, terrain), + + /** Satellite maps with a transparent label overview. */ + kGMSTypeHybrid GMS_SWIFT_NAME_2_0_3_0(Hybrid, hybrid), + + /** No maps, no labels. Display of traffic data is not supported. */ + kGMSTypeNone GMS_SWIFT_NAME_2_0_3_0(None, none), + +}; + +/** + * Rendering frame rates for GMSMapView. + * + * @related GMSMapView + */ +typedef NS_ENUM(NSUInteger, GMSFrameRate) { + /** Use the minimum frame rate to conserve battery usage. */ + kGMSFrameRatePowerSave, + + /** + * Use a median frame rate to provide smoother rendering and conserve processing cycles. + */ + kGMSFrameRateConservative, + + /** + * Use the maximum frame rate for a device. For low end devices this will be 30 FPS, + * for high end devices 60 FPS. + */ + kGMSFrameRateMaximum, +}; + +/** + * This is the main class of the Google Maps SDK for iOS and is the entry point for all methods + * related to the map. + * + * The map should be instantiated via the convenience constructor [GMSMapView mapWithFrame:camera:]. + * It may also be created with the default [[GMSMapView alloc] initWithFrame:] method (wherein its + * camera will be set to a default location). + * + * GMSMapView can only be read and modified from the main thread, similar to all UIKit objects. + * Calling these methods from another thread will result in an exception or undefined behavior. + */ +@interface GMSMapView : UIView + +/** GMSMapView delegate. */ +@property(nonatomic, weak, nullable) IBOutlet id delegate; + +/** + * Controls the camera, which defines how the map is oriented. Modification of this property is + * instantaneous. + */ +@property(nonatomic, copy) GMSCameraPosition *camera; + +/** + * Returns a GMSProjection object that you can use to convert between screen coordinates and + * latitude/longitude coordinates. + * + * This is a snapshot of the current projection, and will not automatically update when the camera + * moves. It represents either the projection of the last drawn GMSMapView frame, or; where the + * camera has been explicitly set or the map just created, the upcoming frame. It will never be nil. + */ +@property(nonatomic, readonly) GMSProjection *projection; + +/** + * Controls whether the My Location dot and accuracy circle is enabled. Defaults to NO. + */ +@property(nonatomic, assign, getter=isMyLocationEnabled) BOOL myLocationEnabled; + +/** + * If My Location is enabled, reveals where the user location dot is being drawn. If it is disabled, + * or it is enabled but no location data is available, this will be nil. This property is + * observable using KVO. + */ +@property(nonatomic, strong, readonly, nullable) CLLocation *myLocation; + +/** + * The marker that is selected. Setting this property selects a particular marker, showing an info + * window on it. If this property is non-nil, setting it to nil deselects the marker, hiding the + * info window. This property is observable using KVO. + */ +@property(nonatomic, strong, nullable) GMSMarker *selectedMarker; + +/** + * Controls whether the map is drawing traffic data, if available. This is subject to the + * availability of traffic data. Defaults to NO. + */ +@property(nonatomic, assign, getter=isTrafficEnabled) BOOL trafficEnabled; + +/** + * Controls the type of map tiles that should be displayed. Defaults to kGMSTypeNormal. + */ +@property(nonatomic, assign) GMSMapViewType mapType; + +/** + * Controls the style of the map. + * + * A non-nil mapStyle will only apply if mapType is Normal. + */ +@property(nonatomic, strong, nullable) GMSMapStyle *mapStyle; + +/** + * Minimum zoom (the farthest the camera may be zoomed out). Defaults to kGMSMinZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, assign, readonly) float minZoom; + +/** + * Maximum zoom (the closest the camera may be to the Earth). Defaults to kGMSMaxZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, assign, readonly) float maxZoom; + +/** + * If set, 3D buildings will be shown where available. Defaults to YES. + * + * This may be useful when adding a custom tile layer to the map, in order to make it clearer at + * high zoom levels. Changing this value will cause all tiles to be briefly invalidated. + */ +@property(nonatomic, assign, getter=isBuildingsEnabled) BOOL buildingsEnabled; + +/** + * Sets whether indoor maps are shown, where available. Defaults to YES. + * + * If this is set to NO, caches for indoor data may be purged and any floor currently selected by + * the end-user may be reset. + */ +@property(nonatomic, assign, getter=isIndoorEnabled) BOOL indoorEnabled; + +/** + * Gets the GMSIndoorDisplay instance which allows to observe or control aspects of indoor data + * display. + */ +@property(nonatomic, strong, readonly) GMSIndoorDisplay *indoorDisplay; + +/** + * Gets the GMSUISettings object, which controls user interface settings for the map. + */ +@property(nonatomic, strong, readonly) GMSUISettings *settings; + +/** + * Controls the 'visible' region of the view. By applying padding an area around the edge of the + * view can be created which will contain map data but will not contain UI controls. + * + * If the padding is not balanced, the visual center of the view will move as appropriate. Padding + * will also affect the |projection| property so the visible region will not include the padding + * area. GMSCameraUpdate fitToBounds will ensure that both this padding and any padding requested + * will be taken into account. + * + * This property may be animated within a UIView-based animation block. + */ +@property(nonatomic, assign) UIEdgeInsets padding; + +/** + * Defaults to YES. If set to NO, GMSMapView will generate accessibility elements for overlay + * objects, such as GMSMarker and GMSPolyline. + * + * This property is as per the informal UIAcessibility protocol, except for the default value of + * YES. + */ +@property(nonatomic) BOOL accessibilityElementsHidden; + +/** + * Accessor for the custom CALayer type used for the layer. + */ +@property(nonatomic, readonly, retain) GMSMapLayer *layer; + +/** + * Controls the rendering frame rate. Default value is kGMSFrameRateMaximum. + */ +@property(nonatomic, assign) GMSFrameRate preferredFrameRate; + +/** + * If not nil, constrains the camera target so that gestures cannot cause it to leave the specified + * bounds. + */ +@property(nonatomic, nullable) GMSCoordinateBounds *cameraTargetBounds; + +/** + * Builds and returns a GMSMapView, with a frame and camera target. + */ ++ (instancetype)mapWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera; + +/** + * Tells this map to power up its renderer. This is optional and idempotent. + */ +- (void)startRendering __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "This method is obsolete and will be removed in a future release."); + +/** + * Tells this map to power down its renderer. This is optional and idempotent. + */ +- (void)stopRendering __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "This method is obsolete and will be removed in a future release."); + +/** + * Clears all markup that has been added to the map, including markers, polylines and ground + * overlays. This will not clear the visible location dot or reset the current mapType. + */ +- (void)clear; + +/** + * Sets |minZoom| and |maxZoom|. This method expects the minimum to be less than or equal to the + * maximum, and will throw an exception with name NSRangeException otherwise. + */ +- (void)setMinZoom:(float)minZoom maxZoom:(float)maxZoom; + +/** + * Build a GMSCameraPosition that presents |bounds| with |padding|. The camera will have a zero + * bearing and tilt (i.e., facing north and looking directly at the Earth). This takes the frame and + * padding of this GMSMapView into account. + * + * If the bounds is invalid this method will return a nil camera. + */ +- (nullable GMSCameraPosition *)cameraForBounds:(GMSCoordinateBounds *)bounds + insets:(UIEdgeInsets)insets; + +/** + * Changes the camera according to |update|. The camera change is instantaneous (with no animation). + */ +- (void)moveCamera:(GMSCameraUpdate *)update; + +/** + * Check whether the given camera positions would practically cause the camera to be rendered the + * same, taking into account the level of precision and transformations used internally. + */ +- (BOOL)areEqualForRenderingPosition:(GMSCameraPosition *)position + position:(GMSCameraPosition *)otherPosition; + +@end + +/** + * Accessibility identifier for the compass button. + * + * @related GMSMapView + */ +extern NSString *const kGMSAccessibilityCompass; + +/** + * Accessibility identifier for the "my location" button. + * + * @related GMSMapView + */ +extern NSString *const kGMSAccessibilityMyLocation; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarker.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarker.h new file mode 100755 index 0000000..0a2b41a --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarker.h @@ -0,0 +1,174 @@ +// +// GMSMarker.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSOverlay.h" + +@class GMSMarkerLayer; +@class GMSPanoramaView; +@class UIImage; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Animation types for GMSMarker. + * + * @related GMSMarker + */ +typedef NS_ENUM(NSUInteger, GMSMarkerAnimation) { + /** No animation (default). */ + kGMSMarkerAnimationNone = 0, + + /** The marker will pop from its groundAnchor when added. */ + kGMSMarkerAnimationPop, +}; + +/** + * A marker is an icon placed at a particular point on the map's surface. A marker's icon is drawn + * oriented against the device's screen rather than the map's surface; i.e., it will not necessarily + * change orientation due to map rotations, tilting, or zooming. + */ +@interface GMSMarker : GMSOverlay + +/** Marker position. Animated. */ +@property(nonatomic, assign) CLLocationCoordinate2D position; + +/** Snippet text, shown beneath the title in the info window when selected. */ +@property(nonatomic, copy, nullable) NSString *snippet; + +/** + * Marker icon to render. If left nil, uses a default SDK place marker. + * + * Supports animated images, but each frame must be the same size or the behavior is undefined. + * + * Supports the use of alignmentRectInsets to specify a reduced tap area. This also redefines how + * anchors are specified. For an animated image the value for the animation is used, not the + * individual frames. + */ +@property(nonatomic, strong, nullable) UIImage *icon; + +/** + * Marker view to render. If left nil, falls back to the |icon| property instead. + * + * Supports animation of all animatable properties of UIView, except |frame| and |center|. Changing + * these properties or their corresponding CALayer version, including |position|, is not supported. + * + * Note that the view behaves as if |clipsToBounds| is set to YES, regardless of its actual value. + */ +@property(nonatomic, strong, nullable) UIView *iconView; + +/** + * Controls whether the icon for this marker should be redrawn every frame. + * + * Note that when this changes from NO to YES, the icon is guaranteed to be redrawn next frame. + * + * Defaults to YES. + * Has no effect if |iconView| is nil. + */ +@property(nonatomic, assign) BOOL tracksViewChanges; + +/** + * Controls whether the info window for this marker should be redrawn every frame. + * + * Note that when this changes from NO to YES, the info window is guaranteed to be redrawn next + * frame. + * + * Defaults to NO. + */ +@property(nonatomic, assign) BOOL tracksInfoWindowChanges; + +/** + * The ground anchor specifies the point in the icon image that is anchored to the marker's position + * on the Earth's surface. This point is specified within the continuous space [0.0, 1.0] x [0.0, + * 1.0], where (0,0) is the top-left corner of the image, and (1,1) is the bottom-right corner. + * + * If the image has non-zero alignmentRectInsets, the top-left and bottom-right mentioned above + * refer to the inset section of the image. + */ +@property(nonatomic, assign) CGPoint groundAnchor; + +/** + * The info window anchor specifies the point in the icon image at which to anchor the info window, + * which will be displayed directly above this point. This point is specified within the same space + * as groundAnchor. + */ +@property(nonatomic, assign) CGPoint infoWindowAnchor; + +/** + * Controls the animation used when this marker is placed on a GMSMapView (default + * kGMSMarkerAnimationNone, no animation). + */ +@property(nonatomic, assign) GMSMarkerAnimation appearAnimation; + +/** + * Controls whether this marker can be dragged interactively (default NO). + */ +@property(nonatomic, assign, getter=isDraggable) BOOL draggable; + +/** + * Controls whether this marker should be flat against the Earth's surface (YES) or a billboard + * facing the camera (NO, default). + */ +@property(nonatomic, assign, getter=isFlat) BOOL flat; + +/** + * Sets the rotation of the marker in degrees clockwise about the marker's anchor point. The axis of + * rotation is perpendicular to the marker. A rotation of 0 corresponds to the default position of + * the marker. Animated. + * + * When the marker is flat on the map, the default position is north aligned and the rotation is + * such that the marker always remains flat on the map. When the marker is a billboard, the default + * position is pointing up and the rotation is such that the marker is always facing the camera. + */ +@property(nonatomic, assign) CLLocationDegrees rotation; + +/** + * Sets the opacity of the marker, between 0 (completely transparent) and 1 (default) inclusive. + */ +@property(nonatomic, assign) float opacity; + +/** + * Provides the Core Animation layer for this GMSMarker. + */ +@property(nonatomic, strong, readonly) GMSMarkerLayer *layer; + +/** + * The |panoramaView| specifies which panorama view will attempt to show this marker. Note that if + * the marker's |position| is too far away from the |panoramaView|'s current panorama location, it + * will not be displayed as it will be too small. + * + * Can be set to nil to remove the marker from any current panorama view it is attached to. + * + * A marker can be shown on both a panorama and a map at the same time. + */ +@property(nonatomic, weak, nullable) GMSPanoramaView *panoramaView; + +/** Convenience constructor for a default marker. */ ++ (instancetype)markerWithPosition:(CLLocationCoordinate2D)position; + +/** Creates a tinted version of the default marker image for use as an icon. */ ++ (UIImage *)markerImageWithColor:(nullable UIColor *)color; + +@end + +/** + * The default position of the ground anchor of a GMSMarker: the center bottom point of the marker + * icon. + */ +FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultGroundAnchor; + +/** + * The default position of the info window anchor of a GMSMarker: the center top point of the marker + * icon. + */ +FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultInfoWindowAnchor; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarkerLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarkerLayer.h new file mode 100755 index 0000000..f08ad1b --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMarkerLayer.h @@ -0,0 +1,45 @@ +// +// GMSMarkerLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSMarkerLayer is a custom subclass of CALayer, available on a per-marker basis, that allows + * animation of several properties of its associated GMSMarker. + * + * Note that this CALayer is never actually rendered directly, as GMSMapView is provided entirely + * via an OpenGL layer. As such, adjustments or animations to 'default' properties of CALayer will + * not have any effect. + */ +@interface GMSMarkerLayer : CALayer + +/** Latitude, part of |position| on GMSMarker. */ +@property(nonatomic, assign) CLLocationDegrees latitude; + +/** Longitude, part of |position| on GMSMarker. */ +@property(nonatomic, assign) CLLocationDegrees longitude; + +/** Rotation, as per GMSMarker. */ +@property(nonatomic, assign) CLLocationDegrees rotation; + +/** Opacity, as per GMSMarker. */ +@property(atomic, assign) float opacity; + +@end + +extern NSString *const kGMSMarkerLayerLatitude; +extern NSString *const kGMSMarkerLayerLongitude; +extern NSString *const kGMSMarkerLayerRotation; +extern NSString *const kGMSMarkerLayerOpacity; + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMutablePath.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMutablePath.h new file mode 100755 index 0000000..e739a09 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSMutablePath.h @@ -0,0 +1,60 @@ +// +// GMSMutablePath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSPath.h" + +#import +#import + +/** + * GMSMutablePath is a dynamic (resizable) array of CLLocationCoordinate2D. All coordinates must be + * valid. GMSMutablePath is the mutable counterpart to the immutable GMSPath. + */ +@interface GMSMutablePath : GMSPath + +/** Adds |coord| at the end of the path. */ +- (void)addCoordinate:(CLLocationCoordinate2D)coord; + +/** Adds a new CLLocationCoordinate2D instance with the given lat/lng. */ +- (void)addLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude; + +/** + * Inserts |coord| at |index|. + * + * If this is smaller than the size of the path, shifts all coordinates forward by one. Otherwise, + * behaves as replaceCoordinateAtIndex:withCoordinate:. + */ +- (void)insertCoordinate:(CLLocationCoordinate2D)coord atIndex:(NSUInteger)index; + +/** + * Replace the coordinate at |index| with |coord|. If |index| is after the end, grows the array with + * an undefined coordinate. + */ +- (void)replaceCoordinateAtIndex:(NSUInteger)index + withCoordinate:(CLLocationCoordinate2D)coord; + +/** + * Remove entry at |index|. + * + * If |index| < count decrements size. If |index| >= count this is a silent no-op. + */ +- (void)removeCoordinateAtIndex:(NSUInteger)index; + +/** + * Removes the last coordinate of the path. + * + * If the array is non-empty decrements size. If the array is empty, this is a silent no-op. + */ +- (void)removeLastCoordinate; + +/** Removes all coordinates in this path. */ +- (void)removeAllCoordinates; + +@end diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOrientation.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOrientation.h new file mode 100755 index 0000000..fd68ad1 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOrientation.h @@ -0,0 +1,44 @@ +// +// GMSOrientation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +/** + * GMSOrientation is a tuple of heading and pitch used to control the viewing direction of a + * GMSPanoramaCamera. + */ +typedef struct { + /** The camera heading (horizontal angle) in degrees. */ + const CLLocationDirection heading; + + /** + * The camera pitch (vertical angle), in degrees from the horizon. The |pitch| range is [-90,90], + * although it is possible that not the full range is supported. + */ + const double pitch; +} GMSOrientation; + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Returns a GMSOrientation with the given |heading| and |pitch|. + * + * @related GMSOrientation + */ +inline static GMSOrientation GMSOrientationMake(CLLocationDirection heading, double pitch) { + GMSOrientation orientation = {heading, pitch}; + return orientation; +} + +#ifdef __cplusplus +} +#endif diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOverlay.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOverlay.h new file mode 100755 index 0000000..1044cd5 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSOverlay.h @@ -0,0 +1,66 @@ +// +// GMSOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSMapView; + +/** + * GMSOverlay is an abstract class that represents some overlay that may be attached to a specific + * GMSMapView. It may not be instantiated directly; instead, instances of concrete overlay types + * should be created directly (such as GMSMarker, GMSPolyline, and GMSPolygon). + * + * This supports the NSCopying protocol; [overlay_ copy] will return a copy of the overlay type, but + * with |map| set to nil. + */ +@interface GMSOverlay : NSObject + +/** + * Title, a short description of the overlay. Some overlays, such as markers, will display the title + * on the map. The title is also the default accessibility text. + */ +@property(nonatomic, copy, nullable) NSString *title; + +/** + * The map this overlay is on. Setting this property will add the overlay to the map. Setting it to + * nil removes this overlay from the map. An overlay may be active on at most one map at any given + * time. + */ +@property(nonatomic, weak, nullable) GMSMapView *map; + +/** + * If this overlay should cause tap notifications. Some overlays, such as markers, will default to + * being tappable. + */ +@property(nonatomic, assign, getter=isTappable) BOOL tappable; + +/** + * Higher |zIndex| value overlays will be drawn on top of lower |zIndex| value tile layers and + * overlays. Equal values result in undefined draw ordering. Markers are an exception that + * regardless of |zIndex|, they will always be drawn above tile layers and other non-marker + * overlays; they are effectively considered to be in a separate z-index group compared to other + * overlays. + */ +@property(nonatomic, assign) int zIndex; + +/** + * Overlay data. You can use this property to associate an arbitrary object with this overlay. + * Google Maps SDK for iOS neither reads nor writes this property. + * + * Note that userData should not hold any strong references to any Maps objects, otherwise a retain + * cycle may be created (preventing objects from being released). + */ +@property(nonatomic, strong, nullable) id userData; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanorama.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanorama.h new file mode 100755 index 0000000..e8188c9 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanorama.h @@ -0,0 +1,34 @@ +// +// GMSPanorama.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSPanoramaLink; + +/** + * GMSPanorama represents metadata for a specific panorama on the Earth. This class is not + * instantiable directly and is obtained via GMSPanoramaService or GMSPanoramaView. + */ +@interface GMSPanorama : NSObject + +/** The precise location of this panorama. */ +@property(nonatomic, readonly) CLLocationCoordinate2D coordinate; + +/** The ID of this panorama. Panoramas may change ID over time, so this should not be persisted */ +@property(nonatomic, copy, readonly) NSString *panoramaID; + +/** An array of GMSPanoramaLink describing the neighboring panoramas. */ +@property(nonatomic, copy, readonly) NSArray *links; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCamera.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCamera.h new file mode 100755 index 0000000..eb71c65 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCamera.h @@ -0,0 +1,81 @@ +// +// GMSPanoramaCamera.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSOrientation.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSPanoramaCamera is used to control the viewing direction of a GMSPanoramaView. It does not + * contain information about which particular panorama should be displayed. + */ +@interface GMSPanoramaCamera : NSObject + +/** + * Designated initializer. Configures this GMSPanoramaCamera with |orientation|, |zoom| and |FOV|. + * These values will be clamped to acceptable ranges. + */ +- (id)initWithOrientation:(GMSOrientation)orientation zoom:(float)zoom FOV:(double)FOV; + +/** + * Convenience constructor specifying heading and pitch as part of |orientation|, plus |zoom| and + * default field of view (90 degrees). + */ ++ (instancetype)cameraWithOrientation:(GMSOrientation)orientation zoom:(float)zoom; + +/** + * Convenience constructor specifying |heading|, |pitch|, |zoom| with default field of view (90 + * degrees). + */ ++ (instancetype)cameraWithHeading:(CLLocationDirection)heading pitch:(double)pitch zoom:(float)zoom; + +/** + * Convenience constructor for GMSPanoramaCamera, specifying all camera properties with heading and + * pitch as part of |orientation|. + */ ++ (instancetype)cameraWithOrientation:(GMSOrientation)orientation zoom:(float)zoom FOV:(double)FOV; + +/** + * Convenience constructor for GMSPanoramaCamera, specifying all camera properties. + */ ++ (instancetype)cameraWithHeading:(CLLocationDirection)heading + pitch:(double)pitch + zoom:(float)zoom + FOV:(double)FOV; + +/** + * The field of view (FOV) encompassed by the larger dimension (width or height) of the view in + * degrees at zoom 1. This is clamped to the range [1, 160] degrees, and has a default value of 90. + * + * Lower FOV values produce a zooming in effect; larger FOV values produce an fisheye effect. + * + * Note: This is not the displayed FOV if zoom is anything other than 1. User zoom gestures + * control the zoom property, not this property. + */ +@property(nonatomic, assign, readonly) double FOV; + +/** + * Adjusts the visible region of the screen. A zoom of N will show the same area as the central + * width/N height/N area of what is shown at zoom 1. + * + * Zoom is clamped to the implementation defined range [1, 5]. + */ +@property(nonatomic, assign, readonly) float zoom; + +/** + * The camera orientation, which groups together heading and pitch. + */ +@property(nonatomic, assign, readonly) GMSOrientation orientation; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h new file mode 100755 index 0000000..041fc07 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h @@ -0,0 +1,37 @@ +// +// GMSPanoramaCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSPanoramaCameraUpdate represents an update that may be applied to a GMSPanoramaView. + * It encapsulates some logic for modifying the current camera. + * It should only be constructed using the factory helper methods below. + */ +@interface GMSPanoramaCameraUpdate : NSObject + +/** Returns an update that increments the camera heading with |deltaHeading|. */ ++ (GMSPanoramaCameraUpdate *)rotateBy:(CGFloat)deltaHeading; + +/** Returns an update that sets the camera heading to the given value. */ ++ (GMSPanoramaCameraUpdate *)setHeading:(CGFloat)heading; + +/** Returns an update that sets the camera pitch to the given value. */ ++ (GMSPanoramaCameraUpdate *)setPitch:(CGFloat)pitch; + +/** Returns an update that sets the camera zoom to the given value. */ ++ (GMSPanoramaCameraUpdate *)setZoom:(CGFloat)zoom; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLayer.h new file mode 100755 index 0000000..4b4238f --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLayer.h @@ -0,0 +1,57 @@ +// +// GMSPanoramaLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#import "GMSCALayer.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * kGMSLayerPanoramaHeadingKey ranges from [0, 360). + * + * @related GMSPanoramaLayer + */ +extern NSString *const kGMSLayerPanoramaHeadingKey; + +/** + * kGMSLayerPanoramaPitchKey ranges from [-90, 90]. + * + * @related GMSPanoramaLayer + */ +extern NSString *const kGMSLayerPanoramaPitchKey; + +/** + * kGMSLayerCameraZoomLevelKey ranges from [1, 5], default 1. + * + * @related GMSPanoramaLayer + */ +extern NSString *const kGMSLayerPanoramaZoomKey; + +/** + * kGMSLayerPanoramaFOVKey ranges from [1, 160] (in degrees), default 90. + * + * @related GMSPanoramaLayer + */ +extern NSString *const kGMSLayerPanoramaFOVKey; + +/** + * GMSPanoramaLayer is a custom subclass of CALayer, provided as the layer class on GMSPanoramaView. + * This layer should not be instantiated directly. + */ +@interface GMSPanoramaLayer : GMSCALayer +@property(nonatomic, assign) CLLocationDirection cameraHeading; +@property(nonatomic, assign) double cameraPitch; +@property(nonatomic, assign) float cameraZoom; +@property(nonatomic, assign) double cameraFOV; +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLink.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLink.h new file mode 100755 index 0000000..86ab935 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaLink.h @@ -0,0 +1,30 @@ +// +// GMSPanoramaLink.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** Links from a GMSPanorama to neighboring panoramas. */ +@interface GMSPanoramaLink : NSObject + +/** Angle of the neighboring panorama, clockwise from north in degrees. */ +@property(nonatomic, assign) CGFloat heading; + +/** + * Panorama ID for the neighboring panorama. + * Do not store this persistenly, it changes in time. + */ +@property(nonatomic, copy) NSString *panoramaID; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaService.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaService.h new file mode 100755 index 0000000..7d212de --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaService.h @@ -0,0 +1,60 @@ +// +// GMSPanoramaService.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +@class GMSPanorama; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Callback for when a panorama metadata becomes available. + * If an error occurred, |panorama| is nil and |error| is not nil. + * Otherwise, |panorama| is not nil and |error| is nil. + * + * @related GMSPanoramaService + */ +typedef void (^GMSPanoramaCallback)(GMSPanorama *_Nullable panorama, NSError *_Nullable error); + +/** + * GMSPanoramaService can be used to request panorama metadata even when a GMSPanoramaView is not + * active. + * + * Get an instance like this: [[GMSPanoramaService alloc] init]. + */ +@interface GMSPanoramaService : NSObject + +/** + * Retrieves information about a panorama near the given |coordinate|. + * + * This is an asynchronous request, |callback| will be called with the result. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + callback:(GMSPanoramaCallback)callback; + +/** + * Similar to requestPanoramaNearCoordinate:callback: but allows specifying a search radius (meters) + * around |coordinate|. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + callback:(GMSPanoramaCallback)callback; + +/** + * Retrieves information about a panorama with the given |panoramaID|. + * + * |callback| will be called with the result. Only panoramaIDs obtained from the Google Maps SDK for + * iOS are supported. + */ +- (void)requestPanoramaWithID:(NSString *)panoramaID callback:(GMSPanoramaCallback)callback; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaView.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaView.h new file mode 100755 index 0000000..ad6e109 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPanoramaView.h @@ -0,0 +1,260 @@ +// +// GMSPanoramaView.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#import "GMSOrientation.h" +#import "GMSPanoramaLayer.h" + +@class GMSMarker; +@class GMSPanorama; +@class GMSPanoramaCamera; +@class GMSPanoramaCameraUpdate; +@class GMSPanoramaView; + +NS_ASSUME_NONNULL_BEGIN; + +/** Delegate for events on GMSPanoramaView. */ +@protocol GMSPanoramaViewDelegate +@optional + +/** + * Called when starting a move to another panorama. + * + * This can be the result of interactive navigation to a neighbouring panorama. + * + * At the moment this method is called, the |view|.panorama is still pointing to the old panorama, + * as the new panorama identified by |panoID| is not yet resolved. panoramaView:didMoveToPanorama: + * will be called when the new panorama is ready. + */ +- (void)panoramaView:(GMSPanoramaView *)view willMoveToPanoramaID:(NSString *)panoramaID; + +/** + * This is invoked every time the |view|.panorama property changes. + */ +- (void)panoramaView:(GMSPanoramaView *)view + didMoveToPanorama:(nullable GMSPanorama *)panorama; + +/** + * Called when the panorama change was caused by invoking moveToPanoramaNearCoordinate:. The + * coordinate passed to that method will also be passed here. + */ +- (void)panoramaView:(GMSPanoramaView *)view + didMoveToPanorama:(GMSPanorama *)panorama + nearCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Called when moveNearCoordinate: produces an error. + */ +- (void)panoramaView:(GMSPanoramaView *)view + error:(NSError *)error + onMoveNearCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Called when moveToPanoramaID: produces an error. + */ +- (void)panoramaView:(GMSPanoramaView *)view + error:(NSError *)error + onMoveToPanoramaID:(NSString *)panoramaID; + +/** + * Called repeatedly during changes to the camera on GMSPanoramaView. This may not be called for all + * intermediate camera values, but is always called for the final position of the camera after an + * animation or gesture. + */ +- (void)panoramaView:(GMSPanoramaView *)panoramaView didMoveCamera:(GMSPanoramaCamera *)camera; + +/** + * Called when a user has tapped on the GMSPanoramaView, but this tap was not consumed (taps may be + * consumed by e.g., tapping on a navigation arrow). + */ +- (void)panoramaView:(GMSPanoramaView *)panoramaView didTap:(CGPoint)point; + +/** + * Called after a marker has been tapped. May return YES to indicate the event has been fully + * handled and suppress any default behavior. + */ +- (BOOL)panoramaView:(GMSPanoramaView *)panoramaView didTapMarker:(GMSMarker *)marker; + +/** + * Called when the panorama tiles for the current view have just been requested and are beginning to + * load. + */ +- (void)panoramaViewDidStartRendering:(GMSPanoramaView *)panoramaView; + +/** + * Called when the panorama tiles have been loaded (or permanently failed to load) and rendered on + * screen. + */ +- (void)panoramaViewDidFinishRendering:(GMSPanoramaView *)panoramaView; + +@end + +/** + * A panorama is used to display Street View imagery. It should be constructed via [[GMSPanoramaView + * alloc] initWithFrame:], and configured post-initialization. + * + * All properties and methods should be accessed on the main thread, similar to all UIKit objects. + * The GMSPanoramaViewDelegate methods will also be called back only on the main thread. + * + * The backgroundColor of this view is shown while no panorama is visible, such as while it is + * loading or if the panorama is later set to nil. The alpha color of backgroundColor is not + * supported. + */ +@interface GMSPanoramaView : UIView + +/** + * The panorama to display; setting it will transition to a new panorama. This is animated, except + * for the initial panorama. + * + * Can be set to nil to clear the view. + */ +@property(nonatomic, strong, nullable) GMSPanorama *panorama; + +/** GMSPanoramaView delegate. */ +@property(nonatomic, weak, nullable) IBOutlet id delegate; + +/** + * Sets the preference for whether all gestures should be enabled (default) or disabled. + * + * This does not limit programmatic movement of the camera or control of the panorama. + */ +- (void)setAllGesturesEnabled:(BOOL)enabled; + +/** + * Controls whether orientation gestures are enabled (default) or disabled. If enabled, users may + * use gestures to change the orientation of the camera. + * + * This does not limit programmatic movement of the camera. + */ +@property(nonatomic, assign) BOOL orientationGestures; + +/** + * Controls whether zoom gestures are enabled (default) or disabled. If enabled, users may pinch to + * zoom the camera. + * + * This does not limit programmatic movement of the camera. + */ +@property(nonatomic, assign) BOOL zoomGestures; + +/** + * Controls whether navigation gestures are enabled (default) or disabled. If enabled, users may use + * a single tap on navigation links or double tap the view to change panoramas. + * + * This does not limit programmatic control of the panorama. + */ +@property(nonatomic, assign) BOOL navigationGestures; + +/** + * Controls whether the tappable navigation links are hidden or visible (default). Hidden navigation + * links cannot be tapped. + */ +@property(nonatomic, assign) BOOL navigationLinksHidden; + +/** + * Controls whether the street name overlays are hidden or visible (default). + */ +@property(nonatomic, assign) BOOL streetNamesHidden; + +/** + * Controls the panorama's camera. Setting a new camera here jumps to the new camera value, with no + * animation. + */ +@property(nonatomic, strong) GMSPanoramaCamera *camera; + +/** + * Accessor for the custom CALayer type used for the layer. + */ +@property(nonatomic, readonly, retain) GMSPanoramaLayer *layer; + +/** + * Animates the camera of this GMSPanoramaView to |camera|, over |duration| (specified in seconds). + */ +- (void)animateToCamera:(GMSPanoramaCamera *)camera animationDuration:(NSTimeInterval)duration; + +/** + * Modifies the camera according to |cameraUpdate|, over |duration| (specified in seconds). + */ +- (void)updateCamera:(GMSPanoramaCameraUpdate *)cameraUpdate + animationDuration:(NSTimeInterval)duration; + +/** + * Requests a panorama near |coordinate|. + * + * Upon successful completion panoramaView:didMoveToPanorama: and + * panoramaView:didMoveToPanorama:nearCoordinate: will be sent to GMSPanoramaViewDelegate. + * + * On error panoramaView:error:onMoveNearCoordinate: will be sent. + * + * Repeated calls to moveNearCoordinate: result in the previous pending (incomplete) transitions + * being cancelled -- only the most recent of moveNearCoordinate: and moveToPanoramaId: will proceed + * and generate events. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Similar to moveNearCoordinate: but allows specifying a search radius (meters) around + * |coordinate|. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate radius:(NSUInteger)radius; + +/** + * Requests a panorama with |panoramaID|. + * + * Upon successful completion panoramaView:didMoveToPanorama: will be sent to + * GMSPanoramaViewDelegate. + * + * On error panoramaView:error:onMoveToPanoramaID: will be sent. + * + * Repeated calls to moveToPanoramaID: result in the previous pending (incomplete) transitions being + * cancelled -- only the most recent of moveNearCoordinate: and moveToPanoramaId: will proceed and + * generate events. + * + * Only panoramaIDs obtained from the Google Maps SDK for iOS are supported. + */ +- (void)moveToPanoramaID:(NSString *)panoramaID; + +/** + * For the current view, returns the screen point the |orientation| points through. This value may + * be outside the view for forward facing orientations which are far enough away from straight + * ahead. + * + * The result will contain NaNs for camera orientations which point away from the view, where the + * implied screen point would have had a negative distance from the camera in the direction of + * orientation. + */ +- (CGPoint)pointForOrientation:(GMSOrientation)orientation; + +/** + * Given a point for this view, returns the current camera orientation pointing through that screen + * location. At the center of this view, the returned GMSOrientation will be approximately equal to + * that of the current GMSPanoramaCamera. + */ +- (GMSOrientation)orientationForPoint:(CGPoint)point; + +/** + * Convenience constructor for GMSPanoramaView, which searches for and displays a GMSPanorama near + * |coordinate|. This performs a similar action to that of moveNearCoordinate:, and will call the + * same delegate methods. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame nearCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Similar to panoramaWithFrame:nearCoordinate: but allows specifying a search radius (meters) + * around |coordinate|. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame + nearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPath.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPath.h new file mode 100755 index 0000000..8316927 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPath.h @@ -0,0 +1,107 @@ +// +// GMSPath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSPath encapsulates an immutable array of CLLocationCooordinate2D. All the coordinates of a + * GMSPath must be valid. The mutable counterpart is GMSMutablePath. + */ +@interface GMSPath : NSObject + +/** Convenience constructor for an empty path. */ ++ (instancetype)path; + +/** Initializes a newly allocated path with the contents of another GMSPath. */ +- (id)initWithPath:(GMSPath *)path; + +/** Get size of path. */ +- (NSUInteger)count; + +/** Returns kCLLocationCoordinate2DInvalid if |index| >= count. */ +- (CLLocationCoordinate2D)coordinateAtIndex:(NSUInteger)index; + +/** + * Initializes a newly allocated path from |encodedPath|. This format is described at: + * https://developers.google.com/maps/documentation/utilities/polylinealgorithm + */ ++ (nullable instancetype)pathFromEncodedPath:(NSString *)encodedPath; + +/** Returns an encoded string of the path in the format described above. */ +- (NSString *)encodedPath; + +/** + * Returns a new path obtained by adding |deltaLatitude| and |deltaLongitude| to each coordinate + * of the current path. Does not modify the current path. + */ +- (instancetype)pathOffsetByLatitude:(CLLocationDegrees)deltaLatitude + longitude:(CLLocationDegrees)deltaLongitude; + +@end + +/** + * kGMSEquatorProjectedMeter may be useful when specifying lengths for segment in "projected" units. + * The value of kGMSEquatorProjectedMeter, 1/(pi * EarthRadius), represents the length of one meter + * at the equator in projected units. For example to specify a projected length that corresponds + * to 100km at the equator use 100000 * kGMSEquatorProjectedMeter. + * See [GMSPath segmentsForLength:kind:], [GMSPath lengthOfKind:] and kGMSLengthProjected. + */ +extern const double kGMSEquatorProjectedMeter; + +/** + * GMSLengthKind indicates the type of a length value, which can be geodesic (in meters), rhumb + * length (in meters) and projected length (in GMSMapPoint units). + * + * @related GMSPath + */ +typedef NS_ENUM(NSUInteger, GMSLengthKind) { + /* + * Geodesic length, in meters, along geodesic segments. May be useful, for example, to specify + * lengths along the the trajectory of airplanes or ships. + */ + kGMSLengthGeodesic, + + /* + * Rhumb length, in meters, along rhumb (straight line) segments. May be useful, for example, to + * draw a scale bar on a map. The visual size of a segment of a given length depens on the + * latitude. + */ + kGMSLengthRhumb, + + /* + * Length in projected space, along rhumb segments. Projected length uses the same units as + * GMSMapPoint - the Earth equator circumference has length 2. It is possible to specify projected + * length in units corresponding to 1 meter at the equator by multiplying with + * kGMSEquatorProjectedMeter, equal to 1/(pi * EarthRadius). + * + * Projected length may be useful, for example, to specify segments with the same visual length + * regardless of latitude. + */ + kGMSLengthProjected +}; + +@interface GMSPath (GMSPathLength) + +/** + * Returns the fractional number of segments along the path that correspond to |length|, + * interpreted according to |kind|. See GMSLengthKind. + */ +- (double)segmentsForLength:(CLLocationDistance)length kind:(GMSLengthKind)kind; + +/** + * Returns the length of the path, according to |kind|. See GMSLengthKind. + */ +- (CLLocationDistance)lengthOfKind:(GMSLengthKind)kind; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolygon.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolygon.h new file mode 100755 index 0000000..43ca767 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolygon.h @@ -0,0 +1,55 @@ +// +// GMSPolygon.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSOverlay.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSPath; + +/** + * GMSPolygon defines a polygon that appears on the map. A polygon (like a polyline) defines a + * series of connected coordinates in an ordered sequence; additionally, polygons form a closed loop + * and define a filled region. + */ +@interface GMSPolygon : GMSOverlay + +/** The path that describes this polygon. The coordinates composing the path must be valid. */ +@property(nonatomic, copy, nullable) GMSPath *path; + +/** + * The array of GMSPath instances that describes any holes in this polygon. The coordinates + * composing each path must be valid. + */ +@property(nonatomic, copy, nullable) NSArray *holes; + +/** The width of the polygon outline in screen points. Defaults to 1. */ +@property(nonatomic, assign) CGFloat strokeWidth; + +/** The color of the polygon outline. Defaults to nil. */ +@property(nonatomic, strong, nullable) UIColor *strokeColor; + +/** The fill color. Defaults to blueColor. */ +@property(nonatomic, strong, nullable) UIColor *fillColor; + +/** Whether this polygon should be rendered with geodesic correction. */ +@property(nonatomic, assign) BOOL geodesic; + +/** + * Convenience constructor for GMSPolygon for a particular path. Other properties will have default + * values. + */ ++ (instancetype)polygonWithPath:(nullable GMSPath *)path; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolyline.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolyline.h new file mode 100755 index 0000000..ac7930a --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSPolyline.h @@ -0,0 +1,106 @@ +// +// GMSPolyline.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSOverlay.h" + +@class GMSPath; + +NS_ASSUME_NONNULL_BEGIN; + +/** Describes the drawing style for one-dimensional entities such as polylines. */ +@interface GMSStrokeStyle : NSObject + +/** Creates a solid color stroke style. */ ++ (instancetype)solidColor:(UIColor *)color; + +/** Creates a gradient stroke style interpolating from |fromColor| to |toColor|. */ ++ (instancetype)gradientFromColor:(UIColor *)fromColor toColor:(UIColor *)toColor; + +@end + +/** Describes the style for some region of a polyline. */ +@interface GMSStyleSpan : NSObject + +/** + * Factory returning a solid color span of length one segment. Equivalent to + * [GMSStyleSpan spanWithStyle:[GMSStrokeStyle solidColor:|color|] segments:1]. + */ ++ (instancetype)spanWithColor:(UIColor *)color; + +/** + * Factory returning a solid color span with a given number of segments. Equivalent to + * [GMSStyleSpan spanWithStyle:[GMSStrokeStyle solidColor:|color|] segments:|segments|]. + */ ++ (instancetype)spanWithColor:(UIColor *)color segments:(double)segments; + +/** + * Factory returning a span with the given |style| of length one segment. Equivalent to + * [GMSStyleSpan spanWithStyle:|style| segments:1]. + */ ++ (instancetype)spanWithStyle:(GMSStrokeStyle *)style; + +/** + * Factory returning a span with the given |style| and length in number of segments. + * |segments| must be greater than 0 (i.e. can't be 0). + */ ++ (instancetype)spanWithStyle:(GMSStrokeStyle *)style segments:(double)segments; + +/** The style of this span. */ +@property(nonatomic, readonly) GMSStrokeStyle *style; + +/** The length of this span in number of segments. */ +@property(nonatomic, readonly) double segments; + +@end + +/** + * GMSPolyline specifies the available options for a polyline that exists on the Earth's surface. + * It is drawn as a physical line between the points specified in |path|. + */ +@interface GMSPolyline : GMSOverlay + +/** + * The path that describes this polyline. + */ +@property(nonatomic, copy, nullable) GMSPath *path; + +/** + * The width of the line in screen points. Defaults to 1. + */ +@property(nonatomic, assign) CGFloat strokeWidth; + +/** + * The UIColor used to render the polyline. Defaults to [UIColor blueColor]. + */ +@property(nonatomic, strong) UIColor *strokeColor; + +/** Whether this line should be rendered with geodesic correction. */ +@property(nonatomic, assign) BOOL geodesic; + +/** + * Convenience constructor for GMSPolyline for a particular path. Other properties will have + * default values. + */ ++ (instancetype)polylineWithPath:(nullable GMSPath *)path; + +/** + * An array containing GMSStyleSpan, the spans used to render this polyline. + * + * If this array contains fewer segments than the polyline itself, the final segment will be applied + * over the remaining length. If this array is unset or empty, then |strokeColor| is used for the + * entire line instead. + */ +@property(nonatomic, copy, nullable) NSArray *spans; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSProjection.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSProjection.h new file mode 100755 index 0000000..2115786 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSProjection.h @@ -0,0 +1,76 @@ +// +// GMSProjection.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +/** + * GMSVisibleRegion contains the four points defining the polygon that is visible in a map's camera. + * + * This polygon can be a trapezoid instead of a rectangle, because a camera can have tilt. If the + * camera is directly over the center of the camera, the shape is rectangular, but if the camera is + * tilted, the shape will appear to be a trapezoid whose smallest side is closest to the point of + * view. + */ +typedef struct { + + /** Bottom left corner of the camera. */ + CLLocationCoordinate2D nearLeft; + + /** Bottom right corner of the camera. */ + CLLocationCoordinate2D nearRight; + + /** Far left corner of the camera. */ + CLLocationCoordinate2D farLeft; + + /** Far right corner of the camera. */ + CLLocationCoordinate2D farRight; +} GMSVisibleRegion; + +/** + * Defines a mapping between Earth coordinates (CLLocationCoordinate2D) and coordinates in the map's + * view (CGPoint). A projection is constant and immutable, in that the mapping it embodies never + * changes. The mapping is not necessarily linear. + * + * Passing invalid Earth coordinates (i.e., per CLLocationCoordinate2DIsValid) to this object may + * result in undefined behavior. + * + * This class should not be instantiated directly, instead, obtained via projection on GMSMapView. + */ +@interface GMSProjection : NSObject + +/** Maps an Earth coordinate to a point coordinate in the map's view. */ +- (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate; + +/** Maps a point coordinate in the map's view to an Earth coordinate. */ +- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point; + +/** + * Converts a distance in meters to content size. This is only accurate for small Earth distances, + * as it uses CGFloat for screen distances. + */ +- (CGFloat)pointsForMeters:(CLLocationDistance)meters + atCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Returns whether a given coordinate (lat/lng) is contained within the projection. + */ +- (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate; + +/** + * Returns the region (four location coordinates) that is visible according to the projection. If + * padding was set on GMSMapView, this region takes the padding into account. + * + * The visible region can be non-rectangular. The result is undefined if the projection includes + * points that do not map to anywhere on the map (e.g., camera sees outer space). + */ +- (GMSVisibleRegion)visibleRegion; + +@end diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSServices.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSServices.h new file mode 100755 index 0000000..5192978 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSServices.h @@ -0,0 +1,56 @@ +// +// GMSServices.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** Service class for the Google Maps SDK for iOS. */ +@interface GMSServices : NSObject + +/** + * Provides the shared instance of GMSServices for the Google Maps SDK for iOS, creating it if + * necessary. Classes such as GMSMapView and GMSPanoramaView will hold this instance to provide + * their connection to Google. + * + * This is an opaque object. If your application often creates and destroys view or service classes + * provided by the Google Maps SDK for iOS, it may be useful to hold onto this object directly, as + * otherwise your connection to Google may be restarted on a regular basis. It also may be useful to + * take this object in advance of the first map creation, to reduce initial map creation performance + * cost. + * + * This method will throw an exception if provideAPIKey: has not been called. + */ ++ (id)sharedServices; + +/** + * Provides your API key to the Google Maps SDK for iOS. This key is generated for your application + * via the Google APIs Console, and is paired with your application's bundle ID to identify it. + * This must be called exactly once by your application before any iOS Maps SDK object is + * initialized. + * + * @return YES if the APIKey was successfully provided + */ ++ (BOOL)provideAPIKey:(NSString *)APIKey; + +/** + * Returns the open source software license information for Google Maps SDK for iOS. This + * information must be made available within your application. + */ ++ (NSString *)openSourceLicenseInfo; + +/** + * Returns the version for this release of the Google Maps SDK for iOS. + */ ++ (NSString *)SDKVersion; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSSyncTileLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSSyncTileLayer.h new file mode 100755 index 0000000..82cf84b --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSSyncTileLayer.h @@ -0,0 +1,35 @@ +// +// GMSSyncTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSTileLayer.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * GMSSyncTileLayer is an abstract subclass of GMSTileLayer that provides a sync interface to + * generate image tile data. + */ +@interface GMSSyncTileLayer : GMSTileLayer + +/** + * As per requestTileForX:y:zoom:receiver: on GMSTileLayer, but provides a synchronous interface to + * return tiles. This method may block or otherwise perform work, and is not called on the main + * thread. + * + * Calls to this method may also be made from multiple threads so implementations must be + * threadsafe. + */ +- (nullable UIImage *)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSTileLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSTileLayer.h new file mode 100755 index 0000000..521d571 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSTileLayer.h @@ -0,0 +1,105 @@ +// +// GMSTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +@class GMSMapView; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Stub tile that is used to indicate that no tile exists for a specific tile coordinate. May be + * returned by tileForX:y:zoom: on GMSTileProvider. + */ +FOUNDATION_EXTERN UIImage *const kGMSTileLayerNoTile; + +/** + * GMSTileReceiver is provided to GMSTileLayer when a tile request is made, allowing the callback to + * be later (or immediately) invoked. + */ +@protocol GMSTileReceiver +- (void)receiveTileWithX:(NSUInteger)x + y:(NSUInteger)y + zoom:(NSUInteger)zoom + image:(nullable UIImage *)image; +@end + +/** + * GMSTileLayer is an abstract class that allows overlaying of custom image tiles on a specified + * GMSMapView. It may not be initialized directly, and subclasses must implement the + * tileForX:y:zoom: method to return tiles. + * + * At zoom level 0 the whole world is a square covered by a single tile, and the coordinates |x| and + * |y| are both 0 for that tile. At zoom level 1, the world is covered by 4 tiles with |x| and |y| + * being 0 or 1, and so on. + */ +@interface GMSTileLayer : NSObject + +/** + * requestTileForX:y:zoom:receiver: generates image tiles for GMSTileOverlay. It must be overridden + * by subclasses. The tile for the given |x|, |y| and |zoom| _must_ be later passed to |receiver|. + * + * Specify kGMSTileLayerNoTile if no tile is available for this location; or nil if a transient + * error occured and a tile may be available later. + * + * Calls to this method will be made on the main thread. See GMSSyncTileLayer for a base class that + * implements a blocking tile layer that does not run on your application's main thread. + */ +- (void)requestTileForX:(NSUInteger)x + y:(NSUInteger)y + zoom:(NSUInteger)zoom + receiver:(id)receiver; + +/** + * Clears the cache so that all tiles will be requested again. + */ +- (void)clearTileCache; + +/** + * The map this GMSTileOverlay is displayed on. Setting this property will add the layer to the map. + * Setting it to nil removes this layer from the map. A layer may be active on at most one map at + * any given time. + */ +@property(nonatomic, weak, nullable) GMSMapView *map; + +/** + * Higher |zIndex| value tile layers will be drawn on top of lower |zIndex| value tile layers and + * overlays. Equal values result in undefined draw ordering. + */ +@property(nonatomic, assign) int zIndex; + +/** + * Specifies the number of pixels (not points) that the returned tile images will prefer to display + * as. For best results, this should be the edge length of your custom tiles. Defaults to 256, which + * is the traditional size of Google Maps tiles. + * + * Values less than the equivalent of 128 points (e.g. 256 pixels on retina devices) may not perform + * well and are not recommended. + * + * As an example, an application developer may wish to provide retina tiles (512 pixel edge length) + * on retina devices, to keep the same number of tiles + * per view as the default value of 256 would give on a non-retina device. + */ +@property(nonatomic, assign) NSInteger tileSize; + +/** + * Specifies the opacity of the tile layer. This provides a multiplier for the alpha channel of tile + * images. + */ +@property(nonatomic, assign) float opacity; + +/** + * Specifies whether the tiles should fade in. Default YES. + */ +@property(nonatomic, assign) BOOL fadeIn; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSUISettings.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSUISettings.h new file mode 100755 index 0000000..a23607a --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSUISettings.h @@ -0,0 +1,91 @@ +// +// GMSUISettings.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +/** Settings for the user interface of a GMSMapView. */ +@interface GMSUISettings : NSObject + +/** + * Sets the preference for whether all gestures should be enabled (default) or disabled. This + * doesn't restrict users from tapping any on screen buttons to move the camera (e.g., compass or + * zoom controls), nor does it restrict programmatic movements and animation. + */ +- (void)setAllGesturesEnabled:(BOOL)enabled; + +/** + * Controls whether scroll gestures are enabled (default) or disabled. If enabled, users may drag to + * pan the camera. This does not limit programmatic movement of the camera. + */ +@property(nonatomic, assign) BOOL scrollGestures; + +/** + * Controls whether zoom gestures are enabled (default) or disabled. If enabled, users may double + * tap/two-finger tap or pinch to zoom the camera. This does not limit programmatic movement of the + * camera. + */ +@property(nonatomic, assign) BOOL zoomGestures; + +/** + * Controls whether tilt gestures are enabled (default) or disabled. If enabled, users may use a + * two-finger vertical down or up swipe to tilt the camera. This does not limit programmatic control + * of the camera's viewingAngle. + */ +@property(nonatomic, assign) BOOL tiltGestures; + +/** + * Controls whether rotate gestures are enabled (default) or disabled. If enabled, users may use a + * two-finger rotate gesture to rotate the camera. This does not limit programmatic control of the + * camera's bearing. + */ +@property(nonatomic, assign) BOOL rotateGestures; + +/** + * Controls whether gestures by users are completely consumed by the GMSMapView when gestures are + * enabled (default YES). This prevents these gestures from being received by parent views. + * + * When the GMSMapView is contained by a UIScrollView (or other scrollable area), this means that + * gestures on the map will not be additional consumed as scroll gestures. However, disabling this + * (set to NO) may be useful to support complex view hierarchies or requirements. + */ +@property(nonatomic, assign) BOOL consumesGesturesInView; + +/** + * Enables or disables the compass. The compass is an icon on the map that indicates the direction + * of north on the map. + * + * If enabled, it is only shown when the camera is rotated away from its default orientation + * (bearing of 0). When a user taps the compass, the camera orients itself to its default + * orientation and fades away shortly after. If disabled, the compass will never be displayed. + */ +@property(nonatomic, assign) BOOL compassButton; + +/** + * Enables or disables the My Location button. This is a button visible on the map that, when tapped + * by users, will center the map on the current user location. + */ +@property(nonatomic, assign) BOOL myLocationButton; + +/** + * Enables (default) or disables the indoor floor picker. + * + * If enabled, it is only visible when the view is focused on a building with indoor floor data. If + * disabled, the selected floor can still be controlled programmatically via the indoorDisplay + * mapView property. + */ +@property(nonatomic, assign) BOOL indoorPicker; + +/** + * Controls whether rotate and zoom gestures can be performed off-center and scrolled around + * (default YES). + */ +@property(nonatomic, assign) BOOL allowScrollGesturesDuringRotateOrZoom; + +@end diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSURLTileLayer.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSURLTileLayer.h new file mode 100755 index 0000000..e62496c --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GMSURLTileLayer.h @@ -0,0 +1,56 @@ +// +// GMSURLTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSTileLayer.h" + +@class NSURL; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * |GMSTileURLConstructor| is a block taking |x|, |y| and |zoom| and returning an NSURL, or nil to + * indicate no tile for that location. + * + * @related GMSURLTileLayer + */ +typedef NSURL *_Nullable (^GMSTileURLConstructor)(NSUInteger x, NSUInteger y, NSUInteger zoom); + +/** + * GMSURLTileProvider fetches tiles based on the URLs returned from a GMSTileURLConstructor. For + * example: + *
+ *   GMSTileURLConstructor constructor = ^(NSUInteger x, NSUInteger y, NSUInteger zoom) {
+ *     NSString *URLStr =
+ *         [NSString stringWithFormat:@"https://example.com/%d/%d/%d.png", x, y, zoom];
+ *     return [NSURL URLWithString:URLStr];
+ *   };
+ *   GMSTileLayer *layer =
+ *       [GMSURLTileLayer tileLayerWithURLConstructor:constructor];
+ *   layer.userAgent = @"SDK user agent";
+ *   layer.map = map;
+ * 
+ * + * GMSURLTileProvider may not be subclassed and should only be created via its convenience + * constructor. + */ +@interface GMSURLTileLayer : GMSTileLayer + +/** Convenience constructor. |constructor| must be non-nil. */ ++ (instancetype)tileLayerWithURLConstructor:(GMSTileURLConstructor)constructor; + +/** + * Specify the user agent to describe your application. If this is nil (the default), the default + * iOS user agent is used for HTTP requests. + */ +@property(nonatomic, copy, nullable) NSString *userAgent; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GoogleMaps.h b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GoogleMaps.h new file mode 100755 index 0000000..2f18c3f --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Headers/GoogleMaps.h @@ -0,0 +1,47 @@ +// +// GoogleMaps.h +// Google Maps SDK for iOS +// +// Copyright 2017 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSIndoorBuilding.h" +#import "GMSIndoorLevel.h" +#import "GMSAddress.h" +#import "GMSCALayer.h" +#import "GMSCameraPosition.h" +#import "GMSCameraUpdate.h" +#import "GMSCoordinateBounds+GoogleMaps.h" +#import "GMSGeocoder.h" +#import "GMSGeometryUtils.h" +#import "GMSIndoorDisplay.h" +#import "GMSMapLayer.h" +#import "GMSMapStyle.h" +#import "GMSMapView+Animation.h" +#import "GMSMapView.h" +#import "GMSMutablePath.h" +#import "GMSPath.h" +#import "GMSProjection.h" +#import "GMSServices.h" +#import "GMSUISettings.h" +#import "GMSCircle.h" +#import "GMSGroundOverlay.h" +#import "GMSMarker.h" +#import "GMSMarkerLayer.h" +#import "GMSOverlay.h" +#import "GMSPolygon.h" +#import "GMSPolyline.h" +#import "GMSSyncTileLayer.h" +#import "GMSTileLayer.h" +#import "GMSURLTileLayer.h" +#import "GMSOrientation.h" +#import "GMSPanorama.h" +#import "GMSPanoramaCamera.h" +#import "GMSPanoramaCameraUpdate.h" +#import "GMSPanoramaLayer.h" +#import "GMSPanoramaLink.h" +#import "GMSPanoramaService.h" +#import "GMSPanoramaView.h" diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Modules/module.modulemap b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Modules/module.modulemap new file mode 100755 index 0000000..5cf35f4 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Modules/module.modulemap @@ -0,0 +1,21 @@ +framework module GoogleMaps { + umbrella header "GoogleMaps.h" + export * + module * { export *} + link "z" + link framework "Accelerate" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} \ No newline at end of file diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom new file mode 100755 index 0000000..4eb3268 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo new file mode 100755 index 0000000..7c16697 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist new file mode 100755 index 0000000..47b2dcd Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car new file mode 100755 index 0000000..35cc949 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf new file mode 100755 index 0000000..2aca5f5 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png new file mode 100755 index 0000000..b68a9f0 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png new file mode 100755 index 0000000..3d077df Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png new file mode 100755 index 0000000..5180530 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png new file mode 100755 index 0000000..447bcea Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png new file mode 100755 index 0000000..a4cd614 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png new file mode 100755 index 0000000..db6a3e1 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png new file mode 100755 index 0000000..4591b47 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png new file mode 100755 index 0000000..c067289 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png new file mode 100755 index 0000000..69ceb93 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist new file mode 100755 index 0000000..9207c0c Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Italic.ttf b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Italic.ttf new file mode 100755 index 0000000..d2b611f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Italic.ttf differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Regular.ttf b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Regular.ttf new file mode 100755 index 0000000..b9fc49c Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/RobotoCondensed-Regular.ttf differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf new file mode 100755 index 0000000..4717d70 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings new file mode 100755 index 0000000..5163c58 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png new file mode 100755 index 0000000..847575a Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png new file mode 100755 index 0000000..84e76a3 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png new file mode 100755 index 0000000..b89372f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png new file mode 100755 index 0000000..a0b07bb Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png new file mode 100755 index 0000000..c03e1e9 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png new file mode 100755 index 0000000..5d81d4a Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png new file mode 100755 index 0000000..82460c8 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png new file mode 100755 index 0000000..e32568d Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png new file mode 100755 index 0000000..c5465b7 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings new file mode 100755 index 0000000..c3e7838 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings new file mode 100755 index 0000000..93752dc Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings new file mode 100755 index 0000000..e157abe Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png new file mode 100755 index 0000000..cb77f83 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings new file mode 100755 index 0000000..b31fffa Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings new file mode 100755 index 0000000..7306d36 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings new file mode 100755 index 0000000..f5d10bb Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings new file mode 100755 index 0000000..fa4850c Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings new file mode 100755 index 0000000..fa4850c Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings new file mode 100755 index 0000000..fa4850c Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings new file mode 100755 index 0000000..0c5081b Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings new file mode 100755 index 0000000..bead9e8 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings new file mode 100755 index 0000000..bead9e8 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings new file mode 100755 index 0000000..c1d4809 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings new file mode 100755 index 0000000..ec706d1 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings new file mode 100755 index 0000000..cc60dbd Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings new file mode 100755 index 0000000..65a4357 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings new file mode 100755 index 0000000..f1af18f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings new file mode 100755 index 0000000..d85ff73 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings new file mode 100755 index 0000000..4a0c939 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png new file mode 100755 index 0000000..6e0663e Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png new file mode 100755 index 0000000..f1d5caf Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png new file mode 100755 index 0000000..4bd8c8f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png new file mode 100755 index 0000000..b2cf321 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png new file mode 100755 index 0000000..91cf55f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings new file mode 100755 index 0000000..240b00e Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings new file mode 100755 index 0000000..a9be91a Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/iw.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/iw.lproj/GMSCore.strings new file mode 100755 index 0000000..65a4357 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/iw.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings new file mode 100755 index 0000000..f459ec9 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings new file mode 100755 index 0000000..b56f4fe Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings new file mode 100755 index 0000000..f5d10bb Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings new file mode 100755 index 0000000..f5d10bb Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings new file mode 100755 index 0000000..05b2246 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings new file mode 100755 index 0000000..ac63fdd Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings new file mode 100755 index 0000000..063d23a Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/no.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/no.lproj/GMSCore.strings new file mode 100755 index 0000000..ac63fdd Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/no.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings new file mode 100755 index 0000000..ce33919 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png new file mode 100755 index 0000000..6273335 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png new file mode 100755 index 0000000..b0b2e3e Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings new file mode 100755 index 0000000..dcc2c7d Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings new file mode 100755 index 0000000..dcc2c7d Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings new file mode 100755 index 0000000..c9f37fa Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings new file mode 100755 index 0000000..9b51841 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png new file mode 100755 index 0000000..dfe2a31 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png new file mode 100755 index 0000000..357d1df Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png new file mode 100755 index 0000000..35f58cf Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png new file mode 100755 index 0000000..eb99b86 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png new file mode 100755 index 0000000..5162343 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png new file mode 100755 index 0000000..ed0424b Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png new file mode 100755 index 0000000..a44a743 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png new file mode 100755 index 0000000..46915dc Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png new file mode 100755 index 0000000..be12717 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings new file mode 100755 index 0000000..fec2367 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings new file mode 100755 index 0000000..902bae6 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings new file mode 100755 index 0000000..b9701e7 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings new file mode 100755 index 0000000..d24714d Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings new file mode 100755 index 0000000..1ab1947 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings new file mode 100755 index 0000000..296d819 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings new file mode 100755 index 0000000..c7d97f6 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings new file mode 100755 index 0000000..f823065 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings new file mode 100755 index 0000000..c216917 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings new file mode 100755 index 0000000..4113fea Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist new file mode 100755 index 0000000..5f3b1c6 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png new file mode 100755 index 0000000..10dc435 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png new file mode 100755 index 0000000..c03f8a4 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png new file mode 100755 index 0000000..0473999 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png new file mode 100755 index 0000000..51a4367 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png new file mode 100755 index 0000000..9484957 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png new file mode 100755 index 0000000..b11c744 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker.png new file mode 100755 index 0000000..8b99a9f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@2x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@2x.png new file mode 100755 index 0000000..d2f98b0 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@2x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@3x.png b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@3x.png new file mode 100755 index 0000000..829ea5f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/default_marker@3x.png differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz new file mode 100755 index 0000000..d545b4f Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/GoogleMapsCore b/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/GoogleMapsCore new file mode 100755 index 0000000..eaf9ba1 Binary files /dev/null and b/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/GoogleMapsCore differ diff --git a/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/Modules/module.modulemap b/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/Modules/module.modulemap new file mode 100755 index 0000000..0b042f1 --- /dev/null +++ b/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework/Modules/module.modulemap @@ -0,0 +1,18 @@ +framework module GoogleMapsCore { + export * + module * { export *} + link "z" + link framework "Accelerate" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "GLKit" + link framework "ImageIO" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" +} \ No newline at end of file diff --git a/Pods/GoogleMaps/README.md b/Pods/GoogleMaps/README.md new file mode 100755 index 0000000..0371996 --- /dev/null +++ b/Pods/GoogleMaps/README.md @@ -0,0 +1,88 @@ +# Google Maps SDK for iOS + +This pod contains the Google Maps SDK for iOS, supporting both Objective C and +Swift. + +Use the [Google Maps SDK for iOS] +(https://developers.google.com/maps/documentation/ios-sdk/) to enrich your +app with interactive maps and immersive street view panoramas, and add your +own custom elements such as markers, windows and polylines. + +# Getting Started + +* *Guides*: Read our [Getting Started guides] + (https://developers.google.com/maps/documentation/ios-sdk/intro). +* *Demo Videos*: View [pre-recorded online demos] + (https://developers.google.com/maps/documentation/ios-sdk/#demos). +* *Code samples*: In order to try out our demo app, use + + ``` + $ pod try GoogleMaps + ``` + + and follow the instructions on our [developer pages] + (https://developers.google.com/maps/documentation/ios-sdk/code-samples). + +* *Support*: Find support from various channels and communities. + + * Support pages for [Google Maps SDK for iOS] + (https://developers.google.com/maps/documentation/ios-sdk/support). + * Stack Overflow, using the [google-maps] + (https://stackoverflow.com/questions/tagged/google-maps) tag. + * [Google Maps APIs Premium Plan] + (https://developers.google.com/maps/premium/support) customers have + access to business-level support through Google's [Enterprise Support + Portal](https://google.secure.force.com/) + +* *Report issues*: Use our issue tracker to [file a bug] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Maps%20SDK%20for%20iOS%20-%20Bug) + or a [feature request] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Maps%20SDK%20for%20iOS%20-%20Feature%20Request) + +# Installation + +To integrate Google Maps SDK for iOS into your Xcode project using CocoaPods, +specify it in your `Podfile`: + +``` +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' +target 'YOUR_APPLICATION_TARGET_NAME_HERE' do + pod 'GoogleMaps' +end +``` + +Then, run the following command: + +``` +$ pod install +``` + +Before you can start using the API, you have to activate it in the [Google +Developer Console](https://console.developers.google.com/) and integrate the +respective API key in your project. For detailed installation instructions, +visit Google's Getting Started Guides for the [Google Maps SDK for iOS] +(https://developers.google.com/maps/documentation/ios-sdk/start). + +# Migration from version 1 + +If you are using the Google Places API for iOS as part of the Google Maps SDK +for iOS version 1 please check the [migration guide](https://developers.google.com/places/migrate-to-v2) +for more information on upgrading your project. + +# License and Terms of Service + +By using the Google Maps SDK for iOS you accept Google's Terms of Service and +Policies. Pay attention particularly to the following aspects: + +* Depending on your app and use case, you may be required to display + attribution. Read more about [attribution requirements] + (https://developers.google.com/maps/documentation/ios-sdk/intro#attribution_requirements). +* Your API usage is subject to quota limitations. Read more about [usage + limits](https://developers.google.com/maps/pricing-and-plans/). +* The [Terms of Service](https://developers.google.com/maps/terms) are a + comprehensive description of the legal contract that you enter with Google + by using the Google Maps SDK for iOS. You may want to pay special attention + to [section 10] + (https://developers.google.com/maps/terms#10-license-restrictions), as it + talks in detail about what you can do with the API, and what you can't. diff --git a/Pods/GooglePlacePicker/CHANGELOG b/Pods/GooglePlacePicker/CHANGELOG new file mode 100755 index 0000000..0a94a43 --- /dev/null +++ b/Pods/GooglePlacePicker/CHANGELOG @@ -0,0 +1,90 @@ +Version 2.4.0 - August 2017 +=========================== +Note: + - The armv7s architecture in the frameworks has been removed. Devices which + previously used armv7s are still supported using the armv7 architecture. + All applications using the default architecture settings in any supported + version of Xcode should not notice any change. + - The layout of the static frameworks has changed. There is no longer a + Versions directory. The contents of Versions/A has been moved to the root + directory of the framework. Developers who manually integrate frameworks + with their project should take additional care during the upgrade. + - Support for Xcode 7.3 will be dropped with 2.5.0. + +Version 2.3.1 - June 2017 +======================== +Note: + - Updated for compatibility with GoogleMaps/GooglePlaces 2.3.1 + +Version 2.3.0 - May 2017 +======================== +Features: + - Expanded the number of scenarios where you can use the place picker with the + addition of GMSPlacePickerViewController. The old GMSPlacePicker is now + deprecated. + +Improvements: + - Dropped support for iOS 7, which enabled the use of modern core data + threading models. This means that applications should be able to use + -com.apple.CoreData.ConcurrencyDebug 1 when debugging with iOS 10 devices. + +Note: + - The armv7s architecture in the frameworks will be removed in 2.4. Devices + which previously used armv7s can continue to be supported using the armv7 + architecture. All applications using the default architecture settings + in any supported version of Xcode shouldn't notice any change. + +Version 2.2.0 - February 2017 +============================= +Resolved Issues: + - Fixes an issue where the Place Picker viewport was not being centered + correctly. + +Note: + - iOS 7 support is intended to be dropped starting with 2.3. 2.2.x will be + the last release series to support iOS 7. + +Version 2.1.1 - November 2016 +============================= +Resolved Issues: + - Fixes an issue which caused rotation of the place picker to move the marker. + +Version 2.1.0 - September 2016 +============================== + +Resolved Issues: + - Added workaround for the `userEmail` triggering false positives during + submission to the Apple app store. + - Errors returned from lookUpPlaceID(_:callback:) now have the correct error + domain and codes. + - Small fixes to RTL support in the place picker. + - Minor reliability improvements for the autocomplete widget and place picker. + +Version 2.0.1 - July 2016 +========================= + +Resolved Issues: + - Array properties are now correctly typed when accessed from Swift. + +Version 2.0.0 - July 2016 +========================= + +Improvements: + ! This release splits the Places API from the Maps SDK. Previously, if you + wanted to use the Places API you had to include all of GoogleMaps. As a + result of the split, the final size of the Places API binary is 70% smaller + than the previous combined binary. If you are using only the Maps SDK you + will not be affected unless you have pinned your dependency on GoogleMaps + to a version earlier than 2.0. In this case, you should update this + restriction in your Podfile. If you are using the Places API, see the + migration guide online for more details. + +Resolved Issues: + - The Places framework is now available as a download for manual installation. + For details, see the get started guide online. + - The Places API no longer requests permission to access the user's location + on behalf of the app. This means that existing code which calls + GMSPlacesClient.currentPlaceWithCallback(_:) must be updated to ensure that + the location permission has been granted beforehand. + +* Items denoted with an '!' may indicate a backwards incompatible change. diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos.xcodeproj/project.pbxproj b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos.xcodeproj/project.pbxproj new file mode 100755 index 0000000..c9973d0 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos.xcodeproj/project.pbxproj @@ -0,0 +1,435 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0D6B3F1F618616A1996097D6 /* PlaceNameHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1991B7FDB189EB74B25938F1 /* PlaceNameHeader.swift */; }; + 15C31A5A9CD97F3F7F4A0372 /* SplitPaneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6040B234CA30AF1FEB5AC76 /* SplitPaneViewController.swift */; }; + 20C65EAFEC9FA4BA246EB8E0 /* InsetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA09DA713847E0A039F17264 /* InsetViewController.swift */; }; + 29E5953DD17B8AFD0FA00A49 /* PickAPlaceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D71A3886B92484E31061FE2E /* PickAPlaceViewController.xib */; }; + 2A7447638B22569980DDAF5F /* ShadowLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2836DC45ED6FF12A8045D24D /* ShadowLineView.swift */; }; + 2B2A8CF73A6C066122802F79 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF48282F0284AC80B150415 /* AppDelegate.swift */; }; + 32FD6CF35907E26E1A619A7A /* PickAPlaceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE0B0E2CDF0E968CD1E79E19 /* PickAPlaceViewController.swift */; }; + 38FC54D803D779C5D0C5B881 /* PlaceAttributeCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 902EE76ACAF122B481EC2327 /* PlaceAttributeCell.xib */; }; + 3FA2445646E180671F57C44A /* ShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 374F27B8350AA9CD3D97A6D7 /* ShadowView.swift */; }; + 5146E98AD75F3AD5152822A3 /* PlacePickerDemoAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DD5392FBE909C543313456E8 /* PlacePickerDemoAssets.xcassets */; }; + 52CB776CFF951849852EE717 /* RoundedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81CF142401F965BEB559B621 /* RoundedButton.swift */; }; + 64198D06033BD1DAE2F74294 /* PlaceNameHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 597394CBA9D90E1EA4A5A00A /* PlaceNameHeader.xib */; }; + 76122A5F41469C1C903531A3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 39CFAAA1B5A0FAA751BF9B3E /* LaunchScreen.storyboard */; }; + 7B4CB1823BBC63FAC6060071 /* BaseContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBC884951D8FE75116785399 /* BaseContainerViewController.swift */; }; + B06B81A95FF8A22F3A279B60 /* PlaceDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4A9B140A7162D6AF6C6BA18A /* PlaceDetailViewController.xib */; }; + B1E178999F680415D9FD4BBA /* BackgroundMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ED9FE8CBBC495FA4A9B87F7 /* BackgroundMapViewController.swift */; }; + C47908BFD6CF13F01D891856 /* PlaceDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C5B75788C7BC8344EEF2FC7 /* PlaceDetailViewController.swift */; }; + C8963CAD839E17E5644B89CF /* CGRect+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E9201B24989251AB2AC75FF /* CGRect+Extensions.swift */; }; + D5DA438651C662C254396522 /* SDKDemoAPIKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE95997DFB327FC675FDB90 /* SDKDemoAPIKey.swift */; }; + D6F5A7D00B2846B512C5DD71 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 755A20A0114418AD8398FB59 /* Localizable.strings */; }; + D7582708599410FEFDF53E75 /* Styles.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9AE6F1EB7F463645CC2E62E /* Styles.swift */; }; + DF0041C4FA445D0D3ACEACA9 /* PlaceAttributeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39898850CF055DC94490206F /* PlaceAttributeCell.swift */; }; + E71AF40604AB4E74A9F8E210 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 949EBB6EB538C05BD9F67F54 /* UIKit.framework */; }; + EEA61309D2F22B56C5AFB003 /* NotificationObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFAAEC1899F5BAFF817EC73F /* NotificationObserver.swift */; }; + F32631FA10536780187DC754 /* PlaceDetailTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 904D7FB86C333B1AC8DAC707 /* PlaceDetailTableViewDataSource.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 046867B7F68CA24EA02DE0DF /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + 0C0C2D9E0439D77024E9482E /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + 0EE95997DFB327FC675FDB90 /* SDKDemoAPIKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDKDemoAPIKey.swift; sourceTree = ""; }; + 15F4E2FD8F16AB5D209106A9 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 185077504FBA490089DC3EFC /* zh_HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_HK; path = zh_HK.lproj/Localizable.strings; sourceTree = ""; }; + 18A971D65331CE90F2AF67DC /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + 1991B7FDB189EB74B25938F1 /* PlaceNameHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceNameHeader.swift; sourceTree = ""; }; + 1A83E06D7571BC26CF7A771F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 1A99FA33F6FFC5D29D3093A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = pt_BR.lproj/Localizable.strings; sourceTree = ""; }; + 1C5B75788C7BC8344EEF2FC7 /* PlaceDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceDetailViewController.swift; sourceTree = ""; }; + 1DA815A1A137DEB8F09C34C7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 2836DC45ED6FF12A8045D24D /* ShadowLineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowLineView.swift; sourceTree = ""; }; + 2C4B5BD046C22F2B06C483BA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 2D44C0DF2ED13D1D5A17B924 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + 3522A2BCD2247D01619B6DA2 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + 362500129AA17DDB5BE6CDFC /* en_AU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_AU; path = en_AU.lproj/Localizable.strings; sourceTree = ""; }; + 374F27B8350AA9CD3D97A6D7 /* ShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowView.swift; sourceTree = ""; }; + 39898850CF055DC94490206F /* PlaceAttributeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceAttributeCell.swift; sourceTree = ""; }; + 42D8E5B1789789DB504101E3 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/Localizable.strings; sourceTree = ""; }; + 48ED9BF9613998B42A4D0F2D /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + 4A9B140A7162D6AF6C6BA18A /* PlaceDetailViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlaceDetailViewController.xib; sourceTree = ""; }; + 4BCFCCCA25F8683DF1EC1F57 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 4E9201B24989251AB2AC75FF /* CGRect+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGRect+Extensions.swift"; sourceTree = ""; }; + 5412B357B8142083BBA719C4 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; + 597394CBA9D90E1EA4A5A00A /* PlaceNameHeader.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlaceNameHeader.xib; sourceTree = ""; }; + 5CF784A348C765D7BF55DD36 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + 62E3973DC3A84613332D7812 /* fr_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_CA; path = fr_CA.lproj/Localizable.strings; sourceTree = ""; }; + 63ED8882A5788952D9B2939A /* pt_PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_PT; path = pt_PT.lproj/Localizable.strings; sourceTree = ""; }; + 65B6E3EEC62C99BEADB6EAB8 /* zh_TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_TW; path = zh_TW.lproj/Localizable.strings; sourceTree = ""; }; + 6F2053A655AC96020FDFA0E8 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = ""; }; + 7C0B1FD895D21F0675200435 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + 7ED9FE8CBBC495FA4A9B87F7 /* BackgroundMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundMapViewController.swift; sourceTree = ""; }; + 80A44CEC31A05FB7D5EA0314 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + 81CF142401F965BEB559B621 /* RoundedButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundedButton.swift; sourceTree = ""; }; + 82F415C951B9DA261139E901 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 902EE76ACAF122B481EC2327 /* PlaceAttributeCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlaceAttributeCell.xib; sourceTree = ""; }; + 904D7FB86C333B1AC8DAC707 /* PlaceDetailTableViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceDetailTableViewDataSource.swift; sourceTree = ""; }; + 921F3FB6B31067D36E2D8D7E /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 945CB9823F750167F33D569F /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = zh_CN.lproj/Localizable.strings; sourceTree = ""; }; + 949EBB6EB538C05BD9F67F54 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 99124309FD33C398395F31A2 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 9B5CF9E6401E3A78736C2763 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + 9BFD0E3250CCACE53EDBDA8C /* es_MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_MX; path = es_MX.lproj/Localizable.strings; sourceTree = ""; }; + A13A917B66F5513FDF0FB31C /* GooglePlacePickerDemos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GooglePlacePickerDemos.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A9AE6F1EB7F463645CC2E62E /* Styles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Styles.swift; sourceTree = ""; }; + ABF48282F0284AC80B150415 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + AC1FECBF4B283E25595029A3 /* en_IN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_IN; path = en_IN.lproj/Localizable.strings; sourceTree = ""; }; + AE0B0E2CDF0E968CD1E79E19 /* PickAPlaceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickAPlaceViewController.swift; sourceTree = ""; }; + B6040B234CA30AF1FEB5AC76 /* SplitPaneViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitPaneViewController.swift; sourceTree = ""; }; + BB0849F77301D04BAA0FBEBE /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/Localizable.strings; sourceTree = ""; }; + CAD22369EE26C07FA4544F22 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; + CD06CE4A6ABA5780649E45F6 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Localizable.strings; sourceTree = ""; }; + CE48346B8F280FF3797DA725 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Localizable.strings; sourceTree = ""; }; + D06889C191D3C0B731869800 /* en_GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_GB; path = en_GB.lproj/Localizable.strings; sourceTree = ""; }; + D220421780E113B810E87AE6 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + D71A3886B92484E31061FE2E /* PickAPlaceViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PickAPlaceViewController.xib; sourceTree = ""; }; + DB9F2466438BB5B0676FBD78 /* es_419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_419; path = es_419.lproj/Localizable.strings; sourceTree = ""; }; + DD5392FBE909C543313456E8 /* PlacePickerDemoAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = PlacePickerDemoAssets.xcassets; sourceTree = ""; }; + E39186DCA321FA7E6B3358E0 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + E8C1A642E101AB92D25E7E74 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + EA09DA713847E0A039F17264 /* InsetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsetViewController.swift; sourceTree = ""; }; + EBC884951D8FE75116785399 /* BaseContainerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseContainerViewController.swift; sourceTree = ""; }; + EF5A9F2AAB5A6B5B08395C96 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + FB5384E2C9B587E26F1AAD9E /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + FB6C760FF34B2F0FF4DF356E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + FF171560576DB4C191F56CE5 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = ""; }; + FFAAEC1899F5BAFF817EC73F /* NotificationObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationObserver.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6FA79BEEA663ED6E161F08CE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E71AF40604AB4E74A9F8E210 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 193C37CCC90EA3A335B08841 /* GooglePlacePickerDemos */ = { + isa = PBXGroup; + children = ( + FDE74A748C9AA3981EB91E2D /* Resources */, + 4D8F44D0B6495D541AC18472 /* Support */, + 9372D5C51E3CCA74762CAED7 /* ViewControllers */, + ABF48282F0284AC80B150415 /* AppDelegate.swift */, + 81CF142401F965BEB559B621 /* RoundedButton.swift */, + 0EE95997DFB327FC675FDB90 /* SDKDemoAPIKey.swift */, + 2836DC45ED6FF12A8045D24D /* ShadowLineView.swift */, + 374F27B8350AA9CD3D97A6D7 /* ShadowView.swift */, + A9AE6F1EB7F463645CC2E62E /* Styles.swift */, + ); + path = GooglePlacePickerDemos; + sourceTree = ""; + }; + 42770B4AEB358294DDF70748 /* PlaceDetail */ = { + isa = PBXGroup; + children = ( + 39898850CF055DC94490206F /* PlaceAttributeCell.swift */, + 902EE76ACAF122B481EC2327 /* PlaceAttributeCell.xib */, + 904D7FB86C333B1AC8DAC707 /* PlaceDetailTableViewDataSource.swift */, + 1C5B75788C7BC8344EEF2FC7 /* PlaceDetailViewController.swift */, + 4A9B140A7162D6AF6C6BA18A /* PlaceDetailViewController.xib */, + 1991B7FDB189EB74B25938F1 /* PlaceNameHeader.swift */, + 597394CBA9D90E1EA4A5A00A /* PlaceNameHeader.xib */, + ); + path = PlaceDetail; + sourceTree = ""; + }; + 4D8F44D0B6495D541AC18472 /* Support */ = { + isa = PBXGroup; + children = ( + 4E9201B24989251AB2AC75FF /* CGRect+Extensions.swift */, + FFAAEC1899F5BAFF817EC73F /* NotificationObserver.swift */, + ); + path = Support; + sourceTree = ""; + }; + 6F85D8BB7D3DDB7CCC49F660 /* Products */ = { + isa = PBXGroup; + children = ( + A13A917B66F5513FDF0FB31C /* GooglePlacePickerDemos.app */, + ); + name = Products; + sourceTree = ""; + }; + 9372D5C51E3CCA74762CAED7 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + BABFAC3D9605568ED09973B1 /* Containers */, + B9BFC45CDF7BF8C0B4E6BC94 /* PickAPlace */, + 42770B4AEB358294DDF70748 /* PlaceDetail */, + ); + path = ViewControllers; + sourceTree = ""; + }; + B40D4294C2D6A5CF1A68F4E4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 949EBB6EB538C05BD9F67F54 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B62271BCEAE2153946B0AD8C = { + isa = PBXGroup; + children = ( + D50176A6963190422233C501 /* Source */, + B40D4294C2D6A5CF1A68F4E4 /* Frameworks */, + 6F85D8BB7D3DDB7CCC49F660 /* Products */, + ); + sourceTree = ""; + }; + B9BFC45CDF7BF8C0B4E6BC94 /* PickAPlace */ = { + isa = PBXGroup; + children = ( + AE0B0E2CDF0E968CD1E79E19 /* PickAPlaceViewController.swift */, + D71A3886B92484E31061FE2E /* PickAPlaceViewController.xib */, + ); + path = PickAPlace; + sourceTree = ""; + }; + BABFAC3D9605568ED09973B1 /* Containers */ = { + isa = PBXGroup; + children = ( + 7ED9FE8CBBC495FA4A9B87F7 /* BackgroundMapViewController.swift */, + EBC884951D8FE75116785399 /* BaseContainerViewController.swift */, + EA09DA713847E0A039F17264 /* InsetViewController.swift */, + B6040B234CA30AF1FEB5AC76 /* SplitPaneViewController.swift */, + ); + path = Containers; + sourceTree = ""; + }; + D50176A6963190422233C501 /* Source */ = { + isa = PBXGroup; + children = ( + 193C37CCC90EA3A335B08841 /* GooglePlacePickerDemos */, + ); + name = Source; + sourceTree = ""; + }; + FDE74A748C9AA3981EB91E2D /* Resources */ = { + isa = PBXGroup; + children = ( + 39CFAAA1B5A0FAA751BF9B3E /* LaunchScreen.storyboard */, + 755A20A0114418AD8398FB59 /* Localizable.strings */, + DD5392FBE909C543313456E8 /* PlacePickerDemoAssets.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 525D6A3076CF0C7088A5B17F /* GooglePlacePickerDemos */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0181798447144E4629BB14E0 /* Build configuration list for PBXNativeTarget "GooglePlacePickerDemos" */; + buildPhases = ( + 0939FD8B14D5C9708A2F5105 /* Resources */, + 3CB001A9B76FED35F4304364 /* Sources */, + 6FA79BEEA663ED6E161F08CE /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GooglePlacePickerDemos; + productName = GooglePlacePickerDemos; + productReference = A13A917B66F5513FDF0FB31C /* GooglePlacePickerDemos.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 174AAE95412B0F78C1F406D0 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0800; + LastUpgradeCheck = 0830; + }; + buildConfigurationList = 8414C09EE75491FC466E0F17 /* Build configuration list for PBXProject "GooglePlacePickerDemos" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + en, + ); + mainGroup = B62271BCEAE2153946B0AD8C; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 525D6A3076CF0C7088A5B17F /* GooglePlacePickerDemos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0939FD8B14D5C9708A2F5105 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29E5953DD17B8AFD0FA00A49 /* PickAPlaceViewController.xib in Resources */, + 38FC54D803D779C5D0C5B881 /* PlaceAttributeCell.xib in Resources */, + B06B81A95FF8A22F3A279B60 /* PlaceDetailViewController.xib in Resources */, + 64198D06033BD1DAE2F74294 /* PlaceNameHeader.xib in Resources */, + 76122A5F41469C1C903531A3 /* LaunchScreen.storyboard in Resources */, + D6F5A7D00B2846B512C5DD71 /* Localizable.strings in Resources */, + 5146E98AD75F3AD5152822A3 /* PlacePickerDemoAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3CB001A9B76FED35F4304364 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2B2A8CF73A6C066122802F79 /* AppDelegate.swift in Sources */, + 52CB776CFF951849852EE717 /* RoundedButton.swift in Sources */, + D5DA438651C662C254396522 /* SDKDemoAPIKey.swift in Sources */, + 2A7447638B22569980DDAF5F /* ShadowLineView.swift in Sources */, + 3FA2445646E180671F57C44A /* ShadowView.swift in Sources */, + D7582708599410FEFDF53E75 /* Styles.swift in Sources */, + C8963CAD839E17E5644B89CF /* CGRect+Extensions.swift in Sources */, + EEA61309D2F22B56C5AFB003 /* NotificationObserver.swift in Sources */, + B1E178999F680415D9FD4BBA /* BackgroundMapViewController.swift in Sources */, + 7B4CB1823BBC63FAC6060071 /* BaseContainerViewController.swift in Sources */, + 20C65EAFEC9FA4BA246EB8E0 /* InsetViewController.swift in Sources */, + 15C31A5A9CD97F3F7F4A0372 /* SplitPaneViewController.swift in Sources */, + 32FD6CF35907E26E1A619A7A /* PickAPlaceViewController.swift in Sources */, + DF0041C4FA445D0D3ACEACA9 /* PlaceAttributeCell.swift in Sources */, + F32631FA10536780187DC754 /* PlaceDetailTableViewDataSource.swift in Sources */, + C47908BFD6CF13F01D891856 /* PlaceDetailViewController.swift in Sources */, + 0D6B3F1F618616A1996097D6 /* PlaceNameHeader.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 39CFAAA1B5A0FAA751BF9B3E /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 1DA815A1A137DEB8F09C34C7 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + 755A20A0114418AD8398FB59 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + EF5A9F2AAB5A6B5B08395C96 /* ar */, + 5412B357B8142083BBA719C4 /* ca */, + 4BCFCCCA25F8683DF1EC1F57 /* cs */, + D220421780E113B810E87AE6 /* da */, + 2C4B5BD046C22F2B06C483BA /* de */, + 99124309FD33C398395F31A2 /* el */, + 1A83E06D7571BC26CF7A771F /* en */, + 362500129AA17DDB5BE6CDFC /* en_AU */, + D06889C191D3C0B731869800 /* en_GB */, + AC1FECBF4B283E25595029A3 /* en_IN */, + 921F3FB6B31067D36E2D8D7E /* es */, + DB9F2466438BB5B0676FBD78 /* es_419 */, + 9BFD0E3250CCACE53EDBDA8C /* es_MX */, + 2D44C0DF2ED13D1D5A17B924 /* fi */, + 82F415C951B9DA261139E901 /* fr */, + 62E3973DC3A84613332D7812 /* fr_CA */, + FB5384E2C9B587E26F1AAD9E /* he */, + 48ED9BF9613998B42A4D0F2D /* hi */, + BB0849F77301D04BAA0FBEBE /* hr */, + FF171560576DB4C191F56CE5 /* hu */, + 6F2053A655AC96020FDFA0E8 /* id */, + 9B5CF9E6401E3A78736C2763 /* it */, + E39186DCA321FA7E6B3358E0 /* ja */, + CAD22369EE26C07FA4544F22 /* ko */, + CE48346B8F280FF3797DA725 /* ms */, + 7C0B1FD895D21F0675200435 /* nb */, + FB6C760FF34B2F0FF4DF356E /* nl */, + 15F4E2FD8F16AB5D209106A9 /* pl */, + 42D8E5B1789789DB504101E3 /* pt */, + 1A99FA33F6FFC5D29D3093A6 /* pt_BR */, + 63ED8882A5788952D9B2939A /* pt_PT */, + 5CF784A348C765D7BF55DD36 /* ro */, + E8C1A642E101AB92D25E7E74 /* ru */, + 3522A2BCD2247D01619B6DA2 /* sk */, + 18A971D65331CE90F2AF67DC /* sv */, + CD06CE4A6ABA5780649E45F6 /* th */, + 046867B7F68CA24EA02DE0DF /* tr */, + 80A44CEC31A05FB7D5EA0314 /* uk */, + 0C0C2D9E0439D77024E9482E /* vi */, + 945CB9823F750167F33D569F /* zh_CN */, + 185077504FBA490089DC3EFC /* zh_HK */, + 65B6E3EEC62C99BEADB6EAB8 /* zh_TW */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 0115569311D7727FCCB903AC /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SDKROOT = iphoneos; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Default; + }; + 595FEA2A2598B758017E2662 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = ./GooglePlacePickerDemos/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SDKROOT)/System/Library/Frameworks", + ); + PRODUCT_NAME = GooglePlacePickerDemos; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)"; + USE_HEADERMAP = NO; + WRAPPER_PREFIX = ""; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0181798447144E4629BB14E0 /* Build configuration list for PBXNativeTarget "GooglePlacePickerDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 595FEA2A2598B758017E2662 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; + 8414C09EE75491FC466E0F17 /* Build configuration list for PBXProject "GooglePlacePickerDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0115569311D7727FCCB903AC /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 174AAE95412B0F78C1F406D0 /* Project object */; +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/AppDelegate.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/AppDelegate.swift new file mode 100755 index 0000000..4038134 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/AppDelegate.swift @@ -0,0 +1,68 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit +import GoogleMaps +import GooglePlaces + +/// Application delegate for the PlacePicker demo app. +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? + + func application(_ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool { + + // Do a quick check to see if you've provided an API key, in a real app you wouldn't need this + // but for the demo it means we can provide a better error message if you haven't. + if kMapsAPIKey.isEmpty || kPlacesAPIKey.isEmpty { + // Blow up if API keys have not yet been set. + let bundleId = Bundle.main.bundleIdentifier! + let msg = "Configure API keys inside SDKDemoAPIKey.swift for your bundle `\(bundleId)`, " + + "see README.GooglePlacePickerDemos for more information" + fatalError(msg) + } + + // Provide the Places API with your API key. + GMSPlacesClient.provideAPIKey(kPlacesAPIKey) + // Provide the Maps API with your API key. We need to provide this as well because the Place + // Picker displays a Google Map. + GMSServices.provideAPIKey(kMapsAPIKey) + + // Log the required open source licenses! Yes, just logging them is not enough but is good for + // a demo. + print(GMSPlacesClient.openSourceLicenseInfo()) + print(GMSServices.openSourceLicenseInfo()) + + // Construct a window and the split split pane view controller we are going to embed our UI in. + let window = UIWindow(frame: UIScreen.main.bounds) + let rootViewController = PickAPlaceViewController() + let splitPaneViewController = SplitPaneViewController(rootViewController: rootViewController) + + // Wrap the split pane controller in a inset controller to get the map displaying behind our + // content on iPad devices. + let mapController = BackgroundMapViewController() + rootViewController.mapViewController = mapController + let insetController = InsetViewController(backgroundViewController: mapController, + contentViewController: splitPaneViewController) + window.rootViewController = insetController + + // Make the window visible and allow the app to continue initialization. + window.makeKeyAndVisible() + self.window = window + + return true + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Info.plist b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Info.plist new file mode 100755 index 0000000..b4c6117 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Info.plist @@ -0,0 +1,53 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleIcons~ipad + + CFBundleIdentifier + com.example.GooglePlacePickerDemos + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSApplicationCategoryType + + LSRequiresIPhoneOS + + NSLocationWhenInUseUsageDescription + Show your location in the Place Picker + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationLandscapeLeft + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/Base.lproj/LaunchScreen.storyboard b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/Base.lproj/LaunchScreen.storyboard new file mode 100755 index 0000000..e43db22 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..8994617 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "PlacePicker-Demo-App_120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "PlacePicker-Demo-App_180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "PlacePicker-Demo-App_76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "PlacePicker-Demo-App_152.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "PlacePicker-Demo-App_167.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_120.png b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_120.png new file mode 100755 index 0000000..f27408b Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_120.png differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_152.png b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_152.png new file mode 100755 index 0000000..9e2c826 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_152.png differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_167.png b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_167.png new file mode 100755 index 0000000..370a8bb Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_167.png differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_180.png b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_180.png new file mode 100755 index 0000000..c198791 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_180.png differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_76.png b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_76.png new file mode 100755 index 0000000..ced65ae Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/AppIcon.appiconset/PlacePicker-Demo-App_76.png differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/Contents.json new file mode 100755 index 0000000..01f0a73 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "address.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/address.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/address.pdf new file mode 100755 index 0000000..d50e7d5 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/address.imageset/address.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/Contents.json new file mode 100755 index 0000000..7132a48 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "attribution.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/attribution.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/attribution.pdf new file mode 100755 index 0000000..37fa0f9 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/attribution.imageset/attribution.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/Contents.json new file mode 100755 index 0000000..140278c --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "back.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/back.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/back.pdf new file mode 100755 index 0000000..02bdb82 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/back.imageset/back.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/Contents.json new file mode 100755 index 0000000..ef5aaa4 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "coordinate.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/coordinate.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/coordinate.pdf new file mode 100755 index 0000000..6869ce2 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/coordinate.imageset/coordinate.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/Contents.json new file mode 100755 index 0000000..c369d6f --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "logo.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/logo.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/logo.pdf new file mode 100755 index 0000000..023949d Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/logo.imageset/logo.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/Contents.json new file mode 100755 index 0000000..8897764 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "open_now.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/open_now.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/open_now.pdf new file mode 100755 index 0000000..f450106 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/open_now.imageset/open_now.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/Contents.json new file mode 100755 index 0000000..7a18624 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "phone_number.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/phone_number.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/phone_number.pdf new file mode 100755 index 0000000..e625291 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/phone_number.imageset/phone_number.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/Contents.json new file mode 100755 index 0000000..6767285 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "pins.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/pins.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/pins.pdf new file mode 100755 index 0000000..85b0c08 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/pins.imageset/pins.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/Contents.json new file mode 100755 index 0000000..868a699 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "place_id.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/place_id.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/place_id.pdf new file mode 100755 index 0000000..15ffbc2 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/place_id.imageset/place_id.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/Contents.json new file mode 100755 index 0000000..84e7bde --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "price_level.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/price_level.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/price_level.pdf new file mode 100755 index 0000000..6935363 Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/price_level.imageset/price_level.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/Contents.json new file mode 100755 index 0000000..7d84400 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/rating.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/rating.pdf new file mode 100755 index 0000000..b1bd30e Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/rating.imageset/rating.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/Contents.json new file mode 100755 index 0000000..afadb65 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "types.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/types.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/types.pdf new file mode 100755 index 0000000..f62b2cb Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/types.imageset/types.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/Contents.json b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/Contents.json new file mode 100755 index 0000000..0c5f051 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "website.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/website.pdf b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/website.pdf new file mode 100755 index 0000000..9771fbb Binary files /dev/null and b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/PlacePickerDemoAssets.xcassets/website.imageset/website.pdf differ diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ar.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ar.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ca.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ca.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ca.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/cs.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/cs.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/da.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/da.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/da.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/de.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/de.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/de.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/el.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/el.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/el.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_AU.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_AU.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_AU.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_GB.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_GB.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_GB.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_IN.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_IN.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/en_IN.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_419.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_419.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_419.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_MX.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_MX.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/es_MX.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fi.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fi.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr_CA.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr_CA.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/fr_CA.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/he.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/he.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/he.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hi.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hi.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hr.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hr.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hr.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hu.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hu.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/hu.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/id.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/id.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/id.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/it.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/it.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/it.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ja.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ja.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ko.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ko.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ko.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ms.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ms.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ms.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nb.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nb.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nl.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nl.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pl.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pl.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_BR.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_BR.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_BR.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_PT.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_PT.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/pt_PT.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ro.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ro.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ru.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ru.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sk.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sk.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sv.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sv.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/th.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/th.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/th.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/tr.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/tr.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/uk.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/uk.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/uk.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/vi.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/vi.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_CN.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_CN.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_CN.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_HK.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_HK.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_HK.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_TW.lproj/Localizable.strings b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_TW.lproj/Localizable.strings new file mode 100755 index 0000000..6430203 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Resources/zh_TW.lproj/Localizable.strings @@ -0,0 +1,51 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Place Picker widget. In a +// shipping app you should never do this, it is for demonstration purposes only. + + +// Closed/Open state for a closed location. +"Places.OpenNow.No"="Closed"; +// Closed/Open state for an open location. +"Places.OpenNow.Yes"="Open"; +// Closed/Open state for when it is unknown. +"Places.OpenNow.Unknown"="Unknown"; + +// Relative cost for a free location. +"Places.PriceLevel.Free"="Free"; +// Relative cost for a cheap location. +"Places.PriceLevel.Cheap"="Cheap"; +// Relative cost for a medium cost location. +"Places.PriceLevel.Medium"="Medium"; +// Relative cost for a high cost location. +"Places.PriceLevel.High"="High"; +// Relative cost for an expensive location. +"Places.PriceLevel.Expensive"="Expensive"; +// Relative cost for when it is unknown. +"Places.PriceLevel.Unknown"="Unknown"; + +// The value of a property which is missing +"PlaceDetails.MissingValue"="None"; + +// Name for the Place ID property +"Places.Property.PlaceID"="Place ID"; +// Name for the Coordinate property +"Places.Property.Coordinate"="Coordinate"; +// Name for the Open now status property +"Places.Property.OpenNowStatus"="Open now status"; +// Name for the Phone number property +"Places.Property.PhoneNumber"="Phone number"; +// Name for the Website property +"Places.Property.Website"="Website"; +// Name for the Formatted address property +"Places.Property.FormattedAddress"="Formatted address"; +// Name for the Rating property +"Places.Property.Rating"="Rating"; +// Name for the Price level property +"Places.Property.PriceLevel"="Price level"; +// Name for the Types property +"Places.Property.Types"="Types"; +// Name for the Attributions property +"Places.Property.Attributions"="Attributions"; +// The format string for latitude, longitude +"Places.Property.Coordinate.Format"="%1$0.7f, %2$0.7f"; diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/RoundedButton.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/RoundedButton.swift new file mode 100755 index 0000000..f8119ce --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/RoundedButton.swift @@ -0,0 +1,56 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// A simple UIButton subclass which displays a rounded border. +class RoundedButton: UIButton { + override var bounds: CGRect { + didSet(oldBounds) { + // Whenever the bounds change. + if oldBounds.height != bounds.height { + // Update the layer appearance. + layer.cornerRadius = bounds.size.height/2 + + // And notify the autolayout engine that our intrinsic width has changed. + invalidateIntrinsicContentSize() + } + } + } + + override init(frame: CGRect) { + super.init(frame: frame) + self.style() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + self.style() + } + + private func style() { + // We want a 1px thin white border. + layer.borderWidth = 1 + layer.borderColor = UIColor.white.cgColor + } + + /// Expand the default intrinsicContentSize so that the corners look nice. + override var intrinsicContentSize: CGSize { + var size = super.intrinsicContentSize + // Add some padding to the left and right + size.width += bounds.height + return size + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/SDKDemoAPIKey.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/SDKDemoAPIKey.swift new file mode 100755 index 0000000..08048d2 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/SDKDemoAPIKey.swift @@ -0,0 +1,28 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +/** + * To use GooglePlacePickerDemos, please register an API Key for your application and set it here. + * Your API Key should be kept private. + * + * See documentation on getting an API Key for your API Project here: + * https://developers.google.com/places/ios-api/start#get-key + */ + +// Register your API keys and insert here. Likely these two keys will be the same for your project, +// provided that it has both the GoogleMaps SDK for iOS and the Places API for iOS enabled in the +// developer console. If you do have separate keys for the two APIs you can provide these here. +internal let kPlacesAPIKey = "" +internal let kMapsAPIKey = "" diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowLineView.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowLineView.swift new file mode 100755 index 0000000..ef1153e --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowLineView.swift @@ -0,0 +1,58 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// A UIView subclass which draws a horizontal line of drop-shadow above and below the view's +/// bounds. The view should be given a height of 0 when added to a view hierarchy. +class ShadowLineView: UIView { + private let shadowView = ShadowView() + + /// The opacity of the drop-shadow line, defaults to 0. + var shadowOpacity = Float() { didSet { shadowView.shadowOpacity = shadowOpacity } } + /// The color of the drop-shadow. defaults to black. + var shadowColor = UIColor.black { didSet { shadowView.shadowColor = shadowColor } } + /// Whether to display the drop-shadow or not, defaults to false. + var enableShadow = false { didSet { update() } } + /// The size of the shadow. This extends above and beneath the view. Defaults to 0. + var shadowSize = CGFloat() { didSet { update() } } + + override init(frame: CGRect) { + super.init(frame: frame) + self.setup() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + self.setup() + } + + private func setup() { + addSubview(shadowView) + shadowView.autoresizingMask = [.flexibleWidth] + } + + private func update() { + // Pass on our enabled state to the shadow view. + shadowView.enableShadow = enableShadow + // Adjust the positioning of the shadow view so that it is centered in our bounds, but has a + // height of shadow size, and a width which is 2*shadow size larger. + shadowView.frame = bounds.insetBy(dx: -shadowSize, dy: -shadowSize/2) + // Make the shadow radius be half of the requested size. As the shadow view itself is half the + // size of the requested shadow size once you add this value the shadow will be the correct + // height. + shadowView.shadowRadius = shadowSize/2 + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowView.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowView.swift new file mode 100755 index 0000000..ff8e283 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ShadowView.swift @@ -0,0 +1,83 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// A simple UIView subclass which renders a configurable drop-shadow. The view itself is +/// transparent and only shows the drop-shadow. The drop-shadow draws the same size as the frame of +/// the view, and can take an optional corner radius into account when calculating the effect. +class ShadowView: UIView { + /// The blur radius of the drop-shadow, defaults to 0. + var shadowRadius = CGFloat() { didSet { update() } } + /// The opacity of the drop-shadow, defaults to 0. + var shadowOpacity = Float() { didSet { update() } } + /// The x,y offset of the drop-shadow from being cast straight down. + var shadowOffset = CGSize.zero { didSet { update() } } + /// The color of the drop-shadow, defaults to black. + var shadowColor = UIColor.black { didSet { update() } } + /// Whether to display the shadow, defaults to false. + var enableShadow = false { didSet { update() } } + /// The corner radius to take into account when casting the shadow, defaults to 0. + var cornerRadius = CGFloat() { didSet { update() } } + + override var frame: CGRect { + didSet(oldFrame) { + // Check to see if the size of the frame has changed, if it has then we need to recalculate + // the shadow. + if oldFrame.size != frame.size { + update() + } + } + } + + override init(frame: CGRect) { + super.init(frame: frame) + self.setup() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + self.setup() + } + + private func setup() { + // Configure the view + backgroundColor = UIColor.clear + isOpaque = false + isHidden = true + + // Enable rasterization on the layer, this will improve the performance of shadow rendering. + layer.shouldRasterize = true + } + + private func update() { + isHidden = !enableShadow + + if enableShadow { + // Configure the layer properties. + layer.shadowRadius = shadowRadius + layer.shadowOffset = shadowOffset + layer.shadowOpacity = shadowOpacity + layer.shadowColor = shadowColor.cgColor + + // Set a shadow path as an optimization, this significantly improves shadow performance. + layer.shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius).cgPath + } else { + // Disable the shadow. + layer.shadowRadius = 0 + layer.shadowOpacity = 0 + } + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Styles.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Styles.swift new file mode 100755 index 0000000..ed2d708 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Styles.swift @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// Style constants for use in the PlacePickerDemo. +struct Colors { + static let blue1 = UIColor(red: 0.224, green: 0.286, blue: 0.671, alpha: 1) + static let blue2 = UIColor(red: 0.247, green: 0.318, blue: 0.710, alpha: 1) +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/CGRect+Extensions.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/CGRect+Extensions.swift new file mode 100755 index 0000000..325ea5a --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/CGRect+Extensions.swift @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import CoreGraphics + +extension CGRect { + var center: CGPoint { + get { + return CGPoint(x: origin.x+size.width/2, y: origin.y+size.height/2) + } + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/NotificationObserver.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/NotificationObserver.swift new file mode 100755 index 0000000..67dcd7f --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/Support/NotificationObserver.swift @@ -0,0 +1,57 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import Foundation + +/// A small class for managing the lifecycle of a NSNotificationCenter registration. When the class +/// is deinited it will automatically unregister from the NSNotificationCenter. +class NotificationObserver: NSObject { + private weak var target: T? + private let action: (T) -> (NSNotification) -> Void + + /// Create a new NotificationObserver with the specified notification name, target and action. The + /// method action on target will be called with a NSNotification object anytime a notification + /// is fired. + /// + /// The target is be weakly referenced and therefore instances of this class can safely be + /// stored in instance variables, and do not need to be nilled out. + /// + /// - parameter name The name of the notification to listen for. + /// - parameter target The object to call the method on whenever the notification is posted. + /// - parameter action The method to call. + init(name: NSNotification.Name, target: T, action: @escaping (T) -> (NSNotification) -> Void) { + self.target = target + self.action = action + + super.init() + + let sel = #selector(self.notificationFired(notification:)) + NotificationCenter.default.addObserver(self, selector: sel, name: name, object: nil) + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + func notificationFired(notification: NSNotification) { + guard let target = target else { + // May as well deregister from notifications if our target has gone away. + NotificationCenter.default.removeObserver(self) + return + } + + action(target)(notification) + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BackgroundMapViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BackgroundMapViewController.swift new file mode 100755 index 0000000..357188e --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BackgroundMapViewController.swift @@ -0,0 +1,186 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit +import GoogleMaps + +/// A view controller which displays a map which continually pans around the area specified as +/// a coordinate. +class BackgroundMapViewController: UIViewController, CAAnimationDelegate { + // MARK: - Properties + private var mapView: GMSMapView? + private let zoomLevel = Float(12) + private let animationDuration = CFTimeInterval(30) + private var isAnimating = false + private var reduceMotionChanged: NotificationObserver? + private var lowPowerModeChanged: NotificationObserver? + + /// The coordinate to animate the map around. + var coordinate = CLLocationCoordinate2D(latitude: -33.8675, longitude: 151.2070) { // Sydney + didSet { + updateCoordinate() + } + } + + // MARK: - View Controller Lifecycle + + override func loadView() { + mapView = GMSMapView() + view = mapView + } + + override func viewDidLoad() { + super.viewDidLoad() + view.isUserInteractionEnabled = false + updateCoordinate() + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + // Start animating the map when it becomes visible. + startAnimatingMap() + + // Restart the animation whenever the 'reduce motion' setting changes. This will allow the + // animation code to adjust for the setting. See the implementation of startAnimating() for + // more details. + let notificationName = NSNotification.Name.UIAccessibilityReduceMotionStatusDidChange + reduceMotionChanged = NotificationObserver(name: notificationName, target: self, + action: type(of: self).restartAnimation) + + if #available(iOS 9.0, *) { + // Much like 'reduce motion', detect changes in 'lower power mode' and restart the animation. + let notificationName = NSNotification.Name.NSProcessInfoPowerStateDidChange + lowPowerModeChanged = NotificationObserver(name: notificationName, target: self, + action: type(of: self).restartAnimation) + } + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + // And stop it when it is no longer onscreen. + stopAnimatingMap() + + // Stop listening for 'reduce motion' and 'low power mode' changes if we're not going to be + // visible. + reduceMotionChanged = nil + lowPowerModeChanged = nil + } + + func restartAnimation(notification: NSNotification) { + self.stopAnimatingMap() + self.startAnimatingMap() + } + + // MARK: Implementation + + private func updateCoordinate() { + if let mapView = mapView { + // Start and stop the map animating if needed. + let wasAnimating = isAnimating + stopAnimatingMap() + + // Set the camera on the map to look at the specified coordinate. + mapView.camera = GMSCameraPosition(target: coordinate, zoom: zoomLevel, bearing: 0, + viewingAngle: 0) + + if wasAnimating { + startAnimatingMap() + } + } + } + + private func startAnimatingMap() { + // If 'reduce motion' is enabled, don't start the animation. + if UIAccessibilityIsReduceMotionEnabled() { + return + } + + if #available(iOS 9.0, *) { + // If 'low power mode' is enabled, don't start the animation. + if ProcessInfo.processInfo.isLowPowerModeEnabled { + return + } + } + + isAnimating = true + + // Grab the last coordinate which the map was centered on. + let lastCoordinate = mapView?.camera.target ?? coordinate + + // Generate a random lat,lng which is near to the specified coordinate. + // + // NOTE: This code is not the recommended way of picking a random coordinate, but for the + // purposes of this demo it is sufficient. As the relationship between distance and latitude + // varies over the surface of the earth, the amount of distance between the target coordinate + // and the center coordinate will change significantly. Another example of how this is not + // correct for most use-cases is that it does not handle the wrapping from -180° to +180° + // which occurs at the antimeridian. + let targetCoordinate = CLLocationCoordinate2D(latitude: coordinate.latitude + randomOffset(), + longitude: coordinate.longitude + randomOffset()) + + // Set the target coordinate on the map layer. + mapView?.layer.cameraLatitude = targetCoordinate.latitude + mapView?.layer.cameraLongitude = targetCoordinate.longitude + + // Setup two explicit animations to animate from the last coordinate to the target coordinate. + // This has to be two animations as we have to manipulate latitude and longitude separately. + // Use the duration we specified at the top of the file, and use a nice timing function to get + // a smoother transition when we start/stop the animation. + let latAnimation = CABasicAnimation(keyPath: kGMSLayerCameraLatitudeKey) + latAnimation.fromValue = lastCoordinate.latitude + latAnimation.toValue = targetCoordinate.latitude + latAnimation.duration = animationDuration + latAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) + let lngAnimation = CABasicAnimation(keyPath: kGMSLayerCameraLongitudeKey) + lngAnimation.fromValue = lastCoordinate.longitude + lngAnimation.toValue = targetCoordinate.longitude + lngAnimation.duration = animationDuration + lngAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) + + // Create an animation group for the two animations. + let group = CAAnimationGroup() + group.animations = [latAnimation, lngAnimation] + group.duration = animationDuration + // Set ourselves as the delegate so that we can continue with the next step in the animation + // when this one is done. + group.delegate = self + + // Start the animations. + mapView?.layer.add(group, forKey: nil) + } + + private func randomOffset() -> CLLocationDegrees { + // Pick a random value from -0.05 to 0.05. + return Double(arc4random()) / Double(UINT32_MAX) * 0.1 - 0.05 + } + + private func stopAnimatingMap() { + isAnimating = false + mapView?.layer.removeAllAnimations() + } + + func animationDidStop(_ anim: CAAnimation, finished flag: Bool) { + // Start the animation again if we're still running it. + if isAnimating { + startAnimatingMap() + } + } + + override var preferredStatusBarStyle: UIStatusBarStyle { + return .default + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BaseContainerViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BaseContainerViewController.swift new file mode 100755 index 0000000..a95ba18 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/BaseContainerViewController.swift @@ -0,0 +1,51 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// Base view controller for the two container view controllers in the demo. This class monitors the +/// current traitCollection and provides a property |actualTraitCollection| which can be used to +/// access the most recent trait collection. +class BaseContainerViewController: UIViewController { + private var _actualTraitCollection: AnyObject? = nil + + /// Retrieve the most recent trait collection. This will usually be the same as |traitCollection| + /// but will differ during trait transitions. During a trait transition |traitCollection| will + /// still have the old value of the trait collection, whereas |actualTraitCollection| will store + /// the value of the new trait collection. + internal var actualTraitCollection: UITraitCollection { + get { + if let collection = _actualTraitCollection as? UITraitCollection { + return collection + } + return traitCollection + } + } + + override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + /// Monitor for trait collection changes so |actualTraitCollection| can be kept up to date. + override func willTransition(to newCollection: UITraitCollection, + with coordinator: UIViewControllerTransitionCoordinator) { + _actualTraitCollection = newCollection + super.willTransition(to: newCollection, with: coordinator) + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/InsetViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/InsetViewController.swift new file mode 100755 index 0000000..fc24e83 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/InsetViewController.swift @@ -0,0 +1,234 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// A container view controller which displays its child controller with an optional inset and +/// background view controller. The inset and background controller are only shown if there is +/// enough space for the child controller to fit after being inset. +class InsetViewController: BaseContainerViewController { + // MARK: - Properties + private let backgroundViewController: UIViewController + private let contentViewController: UIViewController + private(set) var hasMargin = false + + // MARK: - Init/Deinit + + init(backgroundViewController: UIViewController, contentViewController: UIViewController) { + self.backgroundViewController = backgroundViewController + self.contentViewController = contentViewController + + super.init(nibName: nil, bundle: nil) + + // Set the associated object value on |viewController| so that it can look up this instance + // using |UIViewController.insetViewController|. + objc_setAssociatedObject(self.contentViewController, &InsetViewControllerAssociatedObjectHandle, + self, .OBJC_ASSOCIATION_ASSIGN) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - View Controller Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + + // Add the background and the content controllers. + + addChildViewController(backgroundViewController) + backgroundViewController.view.frame = view.bounds + backgroundViewController.view.autoresizingMask = [.flexibleHeight, .flexibleWidth] + view.addSubview(backgroundViewController.view) + backgroundViewController.didMove(toParentViewController: self) + + addChildViewController(contentViewController) + view.addSubview(contentViewController.view) + contentViewController.view.autoresizingMask = [.flexibleTopMargin, .flexibleLeftMargin, + .flexibleRightMargin, .flexibleBottomMargin] + contentViewController.didMove(toParentViewController: self) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + // Trigger a layout when we are first made visible. + transition(to: view.bounds.size, traitCollection: traitCollection) {} + } + + /// Listen to size changes and trigger the appropriate animations. + override func viewWillTransition(to size: CGSize, + with coordinator: UIViewControllerTransitionCoordinator) { + transition(to: size, traitCollection: actualTraitCollection, coordinator: coordinator) {} + + super.viewWillTransition(to: size, with: coordinator) + } + + /// Provide the correct size of the child controller to UIKit. + override func size(forChildContentContainer container: UIContentContainer, + withParentContainerSize parentSize: CGSize) -> CGSize { + if container.isEqual(contentViewController) { + return InsetViewController.viewControllerSize(contentViewController.preferredContentSize, + size: parentSize, traits: actualTraitCollection) + } else if container.isEqual(backgroundViewController) { + return parentSize + } else { + return super.size(forChildContentContainer: container, withParentContainerSize: parentSize) + } + } + + /// Pass through to the appropriate child view controller for status bar appearance. + override var childViewControllerForStatusBarStyle: UIViewController? { + if contentViewController.view.frame == view.bounds { + return contentViewController + } else { + return backgroundViewController + } + } + + /// Pass through to the appropriate child view controller for status bar appearance. + override var childViewControllerForStatusBarHidden: UIViewController? { + if contentViewController.view.frame == view.bounds { + return contentViewController + } else { + return backgroundViewController + } + } + + /// Listen for changes in our children's preferred content size. + override func preferredContentSizeDidChange(forChildContentContainer + container: UIContentContainer) { + transition(to: view.bounds.size, traitCollection: actualTraitCollection) {} + } + + // MARK: - Layout + + /// Transition to the given size using an animation. + /// + /// - parameter size The size to transition to. + /// - parameter traitCollection The trait collection which will be used for layout. + /// - parameter coordinator An optional animation coordinator to use. + /// - parameter completion The completion block to call upon animation completion. + private func transition(to size: CGSize, + traitCollection: UITraitCollection, + coordinator: UIViewControllerTransitionCoordinator? = nil, + completion: @escaping () -> Void) { + // Determine the visibility state of the background before and after the transition. + let backgroundWasHidden = backgroundViewController.view.isHidden + var newFrame = CGRect() + newFrame.size = InsetViewController.viewControllerSize( + contentViewController.preferredContentSize, size: size, traits: traitCollection) + let backgroundWillBeHidden = newFrame.size == size + hasMargin = !backgroundWillBeHidden + + // Setup the animation. + let animate = { + self.contentViewController.view.frame = newFrame + self.contentViewController.view.center = self.view.bounds.center + + if backgroundWasHidden != backgroundWillBeHidden { + // Notify the background controller that it is about to transition in/out. + self.backgroundViewController.beginAppearanceTransition(!backgroundWillBeHidden, + animated: true) + } + + self.backgroundViewController.view.isHidden = backgroundWasHidden && backgroundWillBeHidden + + self.setNeedsStatusBarAppearanceUpdate() + } + + // And the completion callback. + let finish = { + self.backgroundViewController.view.isHidden = backgroundWillBeHidden + + if backgroundWasHidden != backgroundWillBeHidden { + // Notify the background controller that the transition in/out has finished. + self.backgroundViewController.endAppearanceTransition() + } + + completion() + } + + // If a coordinator was provided use that, otherwise kick of a vanilla UIView animation. + if let coordinator = coordinator { + coordinator.animate(alongsideTransition: { _ in + animate() + }, completion: { _ in + finish() + }) + } else { + animate() + finish() + } + } + + /// Determine the size of the child for the given state. This function is static specifically so + /// that all state must be passed in as parameters and instance variables cannot accidentally + /// alter the behavior of the method. + /// + /// - parameter controllersPreferredSize The child view controllers preferred size. + /// - parameter size The size of this controller. + /// - parameter traits The trait classes which this controller will be displayed for. + /// + /// - returns: The size the child view controller should be given the parameters. + private static func viewControllerSize(_ controllersPreferredSize: CGSize, + size: CGSize, + traits: UITraitCollection) -> CGSize { + // If we're compact immediately make the child fullscreen, it'll need all the space it can get. + if traits.horizontalSizeClass == .compact || traits.verticalSizeClass == .compact { + return size + } + + // Use the preferred size if its non-zero. + var preferredSize = controllersPreferredSize + if preferredSize == CGSize.zero { + preferredSize = CGSize(width: 600, height: 600) + } + + // If we don't have enough space to fit the controller horizontally or vertically with some + // padding, make it fullscreen. + + if size.width < preferredSize.width + 100 || size.height < preferredSize.height + 100 { + return size + } + + // Else give the controller the size it wanted. + return preferredSize + } +} + +internal var InsetViewControllerAssociatedObjectHandle: UInt8 = 0 + +extension UIViewController { + /// Retrieve the parent |InsetViewController| of |self| if one is present. + var insetViewController: InsetViewController? { + get { + // Walk up the view controller hierarchy until we find one with the associated object set. + var check = self + repeat { + if let inset = objc_getAssociatedObject(check, + &InsetViewControllerAssociatedObjectHandle) as? + InsetViewController { + return inset + } + guard let parent = check.parent else { + return nil + } + check = parent + } while true + } + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/SplitPaneViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/SplitPaneViewController.swift new file mode 100755 index 0000000..d1b746b --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/Containers/SplitPaneViewController.swift @@ -0,0 +1,446 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// Represents the current UI state of a |SplitPaneViewController|. +enum State { + /// The UI is being displayed fullscreen, only one view controller will be onscreen at a time. + case fullScreen + /// The UI is being displayed in a fullscreen split. One or two controllers will be visible at a + /// time. + case splitScreen + /// The UI is being displayed in a split inset from the screen. One or two controllers will be + /// visible at a time and background view will likely be visible around them. Note, this state + /// can only occur when nested in a |InsetViewController|. + case centeredSplitScreen +} + +/// A container view controller which displays up to two view controllers in a navigation controller +/// style manner when there is not enough screen space to display them side-by-side. +class SplitPaneViewController: BaseContainerViewController { + // MARK: - Properties + private let leftController: UIViewController + private var rightController: UIViewController? + private let wrapperView = UIView() + private let shadowView = ShadowView() + + init(rootViewController: UIViewController) { + self.leftController = rootViewController + super.init(nibName: nil, bundle: nil) + } + + // MARK: - Init/Deinit + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - View Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + + updatePreferredContentSize() + + // Configure the shadow view at the bottom of the view hierarchy. + view.addSubview(shadowView) + shadowView.shadowRadius = 3 + shadowView.shadowOpacity = 0.4 + shadowView.cornerRadius = 3 + shadowView.shadowOffset = CGSize(width: 1.5, height: 1.5) + + // Then add the wrapper view. + view.addSubview(wrapperView) + wrapperView.layer.cornerRadius = 3 + + // And the root controller. + startAdd(leftController) + wrapperView.addSubview(leftController.view) + endAdd(leftController) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + transition(to: state, animated: false) {} + } + + /// Listen to size changes and trigger the appropriate animations. + override func viewWillTransition(to size: CGSize, + with coordinator: UIViewControllerTransitionCoordinator) { + transition(to: state, overrideSize: size, coordinator: coordinator) {} + + super.viewWillTransition(to: size, with: coordinator) + } + + /// Pass through to the child view controller for status bar appearance. + override var childViewControllerForStatusBarStyle: UIViewController? { + return leftController + } + + /// Pass through to the child view controller for status bar appearance. + override var childViewControllerForStatusBarHidden: UIViewController? { + return leftController + } + + /// Listen to changes in the preferred content size of our children. + override func preferredContentSizeDidChange( + forChildContentContainer container: UIContentContainer) { + updatePreferredContentSize() + } + + /// When called, calculates the new preferred content size for this view controller. + private func updatePreferredContentSize() { + let childPreferred = self.leftController.preferredContentSize + let preferredSize = CGSize(width: childPreferred.width * 2, height: childPreferred.height) + if preferredSize != CGSize.zero { + self.preferredContentSize = preferredSize + } else { + // Default is 2x iPhone + self.preferredContentSize = CGSize(width: 640, height: 480) + } + } + + // MARK: - Public Methods + + /// Push the provided view controller onto this split pane. + /// + /// - parameter rightController The new controller to display to the right of the current one. + /// - parameter animated Whether to animate the push. This is true by default. + func push(viewController rightController: UIViewController, animated: Bool = true) { + var animate = animated + + // Check to see if there is an existing view controller which we need to remove. + if let oldRightController = self.rightController { + // We can't animate in this case. + animate = false + + startRemove(oldRightController) + transition(to: state, forceCollapsed: false, animated: false) { + oldRightController.view.removeFromSuperview() + self.endRemove(oldRightController) + } + } + + self.rightController = rightController + + // Add the new controller and insert it under the left one. + startAdd(rightController) + wrapperView.insertSubview(rightController.view, belowSubview: leftController.view) + + // Trigger an initial layout with the split pane collapsed, and then animate to being open. + layoutViewControllers(for: state, forceCollapsed: true) + transition(to: state, animated: animate) { + self.endAdd(rightController) + } + } + + /// Pop the rightmost view controller. + /// + /// - parameter animated Whether to animate the pop. This is true by default. + func popViewController(animated: Bool = true) { + guard let rightController = rightController else { + return + } + + // Remove the controller and animate it out. + startRemove(rightController) + transition(to: state, forceCollapsed: true, animated: animated) { + rightController.view.removeFromSuperview() + self.endRemove(rightController) + } + + self.rightController = nil + } + + // MARK: - State Management + + /// Access the current state of the UI. + private var state: State { + get { + let hasMargin = insetViewController?.hasMargin ?? false + return SplitPaneViewController.state(for: actualTraitCollection, + hasMargin: hasMargin) + } + } + + /// Determine the expected UI state for the given parameters. + /// + /// - parameter traitCollection The trait collection the UI will be displayed for. + /// - parameter hasMargin Whether or not a wrapping |InsetViewController| has margins. + private static func state(for traitCollection: UITraitCollection, hasMargin: Bool) -> State { + switch traitCollection.horizontalSizeClass { + case .compact, .unspecified: return .fullScreen + case .regular: return hasMargin ? .centeredSplitScreen : .splitScreen + } + } + + // MARK: - State Change Animation + + /// Animate to the given state. + /// + /// - parameter state The state to animate to. + /// - parameter forceCollapsed Whether to force the right view controller to be collapsed. + /// - parameter overrideSize Override the size to use for layout. + /// - parameter coordinator An optional animation coordinator to animate with. + /// - parameter animated Whether to animate the transition. Defaults to true. + /// - parameter completion A completion block to call when the animation has finished. + private func transition(to state: State, + forceCollapsed: Bool = false, + overrideSize: CGSize? = nil, + animated: Bool = true, + coordinator: UIViewControllerTransitionCoordinator? = nil, + completion: @escaping () -> Void) { + // Determine which controllers were visible. + let leftWasHidden = !wrapperView.bounds.intersects(leftController.view.frame) + var rightWasHidden = false + if let rightController = rightController { + rightWasHidden = !view.bounds.intersects(rightController.view.frame) + } + + var leftWillBeHidden = false + var rightWillBeHidden = false + + // Setup the animation block. + let animation = { + // Layout the controllers using the given information. + self.layoutViewControllers(for: state, forceCollapsed: forceCollapsed, + overrideSize: overrideSize) + + // Update the state of whether the left and right controllers will be hidden. Also set the + // 'from' hidden state. + leftWillBeHidden = !self.view.bounds.intersects(self.leftController.view.frame) + self.leftController.view.isHidden = leftWasHidden && leftWillBeHidden + if let rightController = self.rightController { + rightWillBeHidden = !self.wrapperView.bounds.intersects(rightController.view.frame) + rightController.view.isHidden = rightWasHidden && rightWillBeHidden + } + } + + // Once the animation is finished update the hidden states and call the callback. + let finish = { + self.leftController.view.isHidden = leftWillBeHidden + if let rightController = self.rightController { + rightController.view.isHidden = rightWillBeHidden + } + + completion() + } + + // Check to see if we should be animating + if animated { + // Check to see if we do a coordinated animation or a standalone one. + if let coordinator = coordinator { + coordinator.animate(alongsideTransition: { _ in + animation() + }, completion: { _ in + finish() + }) + } else { + UIView.animate(withDuration: 0.367, animations: animation) { (finished) in + finish() + } + } + } else { + animation() + finish() + } + } + + // MARK: - Centralized Layout + + /// Layout the view controllers with the specified state. + /// + /// - parameter state The state to layout the controllers for. + /// - parameter forceCollapsed Whether to force the second controller to be under the first one. + /// - parameter overrideSize Override the size to use for layout. + private func layoutViewControllers(for state: State, + forceCollapsed: Bool = false, + overrideSize: CGSize? = nil) { + let collapsed = rightController == nil || forceCollapsed + // Call out the the static function. + SplitPaneViewController.layoutViewControllers(for: state, + collapsed: collapsed, + size: overrideSize ?? view.bounds.size, + leftController: leftController, + rightController: rightController, + wrapperView: wrapperView, + shadowView: shadowView) + } + + /// Layout the view controllers with the specified state. This function is static specifically so + /// that all state must be passed in as parameters and instance variables cannot accidentally + /// alter the behavior of the method. + /// + /// - parameter state The state to layout the controllers for. + /// - parameter collapsed Whether the second controller is under the first one. + /// - parameter size The size to use for layout. + /// - parameter leftController The left controller. + /// - parameter rightController The right controller. + /// - parameter wrapperView The superview of left and right controller. + private static func layoutViewControllers(for state: State, + collapsed: Bool, + size: CGSize, + leftController: UIViewController, + rightController: UIViewController?, + wrapperView: UIView, + shadowView: ShadowView) { + let fullBounds = CGRect(origin: CGPoint.zero, size: size) + + switch state { + case .fullScreen: + // If we are fullscreen, then both view controllers will have a bounds of |fullBounds|. + // In the case where we are collapsed then they will be on top of each other, otherwise + // the left controller will be offscreen to the left and the right controller will be + // fullscreen. + wrapperView.frame = fullBounds + + if collapsed { + leftController.view.frame = wrapperView.bounds + if let rightController = rightController { + rightController.view.bounds = wrapperView.bounds + rightController.view.center = offset(wrapperView.bounds.center, + by: wrapperView.bounds.size.width) + } + } else { + leftController.view.bounds = wrapperView.bounds + leftController.view.center = offset(wrapperView.bounds.center, + by: -wrapperView.bounds.size.width) + if let rightController = rightController { + rightController.view.frame = wrapperView.bounds + } + } + + case .splitScreen: + // If we are split screen, then both controllers can be shown side-by-side. If there is only + // one controller or we are collapsed make if fill the bounds, otherwise split the space + // equally. + wrapperView.frame = fullBounds + + let (leftFrame, rightFrame) = + wrapperView.bounds.divided(atDistance: wrapperView.bounds.size.width/2, from: .minXEdge) + + if collapsed { + leftController.view.frame = wrapperView.bounds + if let rightController = rightController { + let rightFrame = CGRect(x: wrapperView.bounds.maxX, y: wrapperView.bounds.origin.y, + width: rightFrame.size.width, height: rightFrame.size.height) + rightController.view.frame = rightFrame + } + } else { + leftController.view.frame = leftFrame + if let rightController = rightController { + rightController.view.frame = rightFrame + } + } + + case .centeredSplitScreen: + // If we are centered split screen it's basically the same as split screen, except for that + // when we are collapsed or there is only one controller then we display them smaller than the + // full bounds. This makes it look like the second one is always hidden behind the first as + // the size of them do not change. + let (leftFrame, rightFrame) = + fullBounds.divided(atDistance: fullBounds.size.width/2, from: .minXEdge) + + if collapsed { + wrapperView.frame = leftFrame + wrapperView.center = fullBounds.center + leftController.view.frame = wrapperView.bounds + if let rightController = rightController { + rightController.view.frame = wrapperView.bounds + } + } else { + wrapperView.frame = fullBounds + leftController.view.frame = leftFrame + if let rightController = rightController { + rightController.view.frame = rightFrame + } + } + } + + // Update shadow and corner radius state. These are only shown when we are centered. + wrapperView.clipsToBounds = state == .centeredSplitScreen + shadowView.enableShadow = state == .centeredSplitScreen + shadowView.frame = wrapperView.frame + } + + // MARK: - Utilities + + /// Offset a GGPoint along the X axis by the specified amount. + private static func offset(_ point: CGPoint, by offset: CGFloat) -> CGPoint { + return CGPoint(x: point.x + offset, y: point.y) + } + + /// Start adding a view controller. This makes it a child and sets the associated object on it + /// so that |self| can be looked up using |UIViewController.splitPaneViewController|. + private func startAdd(_ viewController: UIViewController) { + objc_setAssociatedObject(viewController, + &SplitPaneViewControllerAssociatedObjectHandle, + self, + .OBJC_ASSOCIATION_ASSIGN) + + self.addChildViewController(viewController) + } + + /// Finish up adding a view controller. + private func endAdd(_ viewController: UIViewController) { + viewController.didMove(toParentViewController: self) + } + + /// Start removing a child view controller. + private func startRemove(_ viewController: UIViewController) { + viewController.willMove(toParentViewController: self) + } + + /// Finish up removing a child view controller. Remove it as a child and reset the + /// |UIViewController.splitPaneViewController| property. + private func endRemove(_ viewController: UIViewController) { + viewController.removeFromParentViewController() + + // Check to see if it hasn't changed before nilling it out. + if viewController.splitPaneViewController == self { + objc_setAssociatedObject(viewController, + &SplitPaneViewControllerAssociatedObjectHandle, + nil, + .OBJC_ASSOCIATION_ASSIGN) + } + } +} + +// MARK: - UIViewController Extensions + +internal var SplitPaneViewControllerAssociatedObjectHandle: UInt8 = 0 + +extension UIViewController { + /// Retrieve the parent |SplitPaneViewController| of |self| if one is present. + var splitPaneViewController: SplitPaneViewController? { + get { + // Walk up the view controller hierarchy until we find one with the associated object set. + var check = self + repeat { + if let pane = + objc_getAssociatedObject(check, &SplitPaneViewControllerAssociatedObjectHandle) as? + SplitPaneViewController { + return pane + } + guard let parent = check.parent else { + return nil + } + check = parent + } while true + } + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.swift new file mode 100755 index 0000000..001ad17 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.swift @@ -0,0 +1,91 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit +import GooglePlacePicker + +/// A view controller which displays a UI for opening the Place Picker. Once a place is selected +/// it navigates to the place details screen for the selected location. +class PickAPlaceViewController: UIViewController { + @IBOutlet private weak var pickAPlaceButton: UIButton! + @IBOutlet weak var buildNumberLabel: UILabel! + var mapViewController: BackgroundMapViewController? + + init() { + super.init(nibName: String(describing: type(of: self)), bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + override func viewDidLoad() { + super.viewDidLoad() + + // This is the size we would prefer to be. + self.preferredContentSize = CGSize(width: 330, height: 600) + + // Configure our view. + view.backgroundColor = Colors.blue1 + view.clipsToBounds = true + + // Set the build number. + buildNumberLabel.text = "Places API Build: \(GMSPlacesClient.sdkVersion())" + } + + @IBAction func buttonTapped() { + // Create a place picker. Attempt to display it as a popover if we are on a device which + // supports popovers. + let config = GMSPlacePickerConfig(viewport: nil) + let placePicker = GMSPlacePickerViewController(config: config) + placePicker.delegate = self + placePicker.modalPresentationStyle = .popover + placePicker.popoverPresentationController?.sourceView = pickAPlaceButton + placePicker.popoverPresentationController?.sourceRect = pickAPlaceButton.bounds + + // Display the place picker. This will call the delegate methods defined below when the user + // has made a selection. + self.present(placePicker, animated: true, completion: nil) + } + + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } +} + +extension PickAPlaceViewController : GMSPlacePickerViewControllerDelegate { + func placePicker(_ viewController: GMSPlacePickerViewController, didPick place: GMSPlace) { + // Create the next view controller we are going to display and present it. + let nextScreen = PlaceDetailViewController(place: place) + self.splitPaneViewController?.push(viewController: nextScreen, animated: false) + self.mapViewController?.coordinate = place.coordinate + + // Dismiss the place picker. + viewController.dismiss(animated: true, completion: nil) + } + + func placePicker(_ viewController: GMSPlacePickerViewController, didFailWithError error: Error) { + // In your own app you should handle this better, but for the demo we are just going to log + // a message. + NSLog("An error occurred while picking a place: \(error)") + } + + func placePickerDidCancel(_ viewController: GMSPlacePickerViewController) { + NSLog("The place picker was canceled by the user") + + // Dismiss the place picker. + viewController.dismiss(animated: true, completion: nil) + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.xib b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.xib new file mode 100755 index 0000000..0aee951 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PickAPlace/PickAPlaceViewController.xib @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.swift new file mode 100755 index 0000000..eddffe8 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.swift @@ -0,0 +1,25 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// A cell which displays the name and value of an attribute on |GMSPlace|. +class PlaceAttributeCell: UITableViewCell { + static let nib = { UINib(nibName: "PlaceAttributeCell", bundle: nil) }() + static let reuseIdentifier = "PlaceAttributeCell" + @IBOutlet weak var propertyName: UILabel! + @IBOutlet weak var propertyValue: UILabel! + @IBOutlet weak var propertyIcon: UIImageView! +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.xib b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.xib new file mode 100755 index 0000000..775f5d9 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceAttributeCell.xib @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailTableViewDataSource.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailTableViewDataSource.swift new file mode 100755 index 0000000..6d73e7e --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailTableViewDataSource.swift @@ -0,0 +1,321 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit +import GooglePlaces + +enum PlaceProperty: Int { + case placeID + case coordinate + case openNowStatus + case phoneNumber + case website + case formattedAddress + case rating + case priceLevel + case types + case attribution + + static func numberOfProperties() -> Int { + return 10 + } +} + +/// The data source and delegate for the Place Detail |UITableView|. Beyond just displaying the +/// details of the place, this class also manages the floating section title containing the place +/// name and takes into account the presence of the back button if it's visible. +class PlaceDetailTableViewDataSource: NSObject, UITableViewDataSource, UITableViewDelegate { + // MARK: - Properties + private let place: GMSPlace + private let blueCellIdentifier = "BlueCellIdentifier" + private let extensionConstraint: NSLayoutConstraint + private let noneText = NSLocalizedString("PlaceDetails.MissingValue", + comment: "The value of a property which is missing") + private let tableView: UITableView + + var compactHeader = false { + didSet { + if #available(iOS 9.0, *) { + tableView.beginUpdates() + updateNavigationBar() + tableView.endUpdates() + } else { + // We'd really rather not call reloadData(), but on iOS 8.x begin/endUpdates tend to crash + // for this particular tableView. + tableView.reloadData() + } + } + } + + var offsetNavigationTitle = false + + // MARK: Init/Deinit + + /// Create a |PlaceDetailTableViewDataSource| with the specified |GMSPlace| and constraint. + /// + /// - parameter place The |GMSPlace| to show details for. + /// - parameter extensionConstraint The |NSLayoutConstraint| to update when scrolling so that + /// the header view shrinks/grows to fill the gap between the map/photo and the details. + /// - parameter tableView The UITableView for this data. + init(place: GMSPlace, extensionConstraint: NSLayoutConstraint, tableView: UITableView) { + self.place = place + self.extensionConstraint = extensionConstraint + self.tableView = tableView + + // Register the |UITableViewCell|s. + tableView.register(PlaceAttributeCell.nib, + forCellReuseIdentifier: PlaceAttributeCell.reuseIdentifier) + tableView.register(PlaceNameHeader.nib, + forHeaderFooterViewReuseIdentifier: PlaceNameHeader.reuseIdentifier) + tableView.register(UITableViewCell.self, + forCellReuseIdentifier: blueCellIdentifier) + + // Configure some other properties. + tableView.estimatedRowHeight = 44 + tableView.estimatedSectionHeaderHeight = 44 + tableView.sectionHeaderHeight = UITableViewAutomaticDimension + } + + // MARK: - Public Methods + + func updateNavigationTextOffset() { + updateNavigationBar() + } + + // MARK: - UITableView DataSource/Delegate + + func numberOfSections(in tableView: UITableView) -> Int { + return 1 + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return PlaceProperty.numberOfProperties() + 1 + } + + func tableView(_ tableView: UITableView, + cellForRowAt indexPath: IndexPath) -> UITableViewCell { + // The first cell is special, this is a small blue spacer we use to pad out the place name + // header. + if indexPath.item == 0 { + let cell = tableView.dequeueReusableCell(withIdentifier: blueCellIdentifier, + for: indexPath) + cell.backgroundColor = Colors.blue2 + cell.selectionStyle = .none + return cell + } + + // For all the other cells use the same class. + + let untyped = tableView.dequeueReusableCell(withIdentifier: PlaceAttributeCell.reuseIdentifier, + for: indexPath) + let cell = untyped as! PlaceAttributeCell + + // Disable selection. + cell.selectionStyle = .none + + // Set the relevant values. + if let propertyType = PlaceProperty(rawValue: indexPath.item - 1) { + cell.propertyName.text = propertyType.localizedDescription() + cell.propertyIcon.image = propertyType.icon() + + switch propertyType { + case .placeID: + cell.propertyValue.text = place.placeID + case .coordinate: + let format = NSLocalizedString("Places.Property.Coordinate.Format", + comment: "The format string for latitude, longitude") + cell.propertyValue.text = String(format: format, place.coordinate.latitude, + place.coordinate.longitude) + case .openNowStatus: + cell.propertyValue.text = text(for: place.openNowStatus) + case .phoneNumber: + cell.propertyValue.text = place.phoneNumber ?? noneText + case .website: + cell.propertyValue.text = place.website?.absoluteString ?? noneText + case .formattedAddress: + cell.propertyValue.text = place.formattedAddress ?? noneText + case .rating: + let rating = place.rating + // As specified in the documentation for |GMSPlace|, a rating of 0.0 signifies that there + // have not yet been any ratings for this location. + if rating > 0 { + cell.propertyValue.text = "\(rating)" + } else { + cell.propertyValue.text = noneText + } + case .priceLevel: + cell.propertyValue.text = text(for: place.priceLevel) + case .types: + cell.propertyValue.text = place.types.joined(separator: ", ") + case .attribution: + if let attributions = place.attributions { + cell.propertyValue.attributedText = attributions + } else { + cell.propertyValue.text = noneText + } + } + } else { + fatalError("Unexpected row index") + } + + return cell + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return place.name + } + + func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { + let view = + tableView.dequeueReusableHeaderFooterView(withIdentifier: PlaceNameHeader.reuseIdentifier) + let header = view as! PlaceNameHeader + updateNavigationBar(header) + return header + } + + func tableView(_ tableView: UITableView, + heightForRowAt indexPath: IndexPath) -> CGFloat { + // Our first cell has a fixed height, all the rest are automatic. + if indexPath.item == 0 { + return compactHeader ? 0 : 20 + } + else { + return UITableViewAutomaticDimension + } + } + + func scrollViewDidScroll(_ scrollView: UIScrollView) { + // Update the extensionConstraint and the navigation title offset when the tableView scrolls. + extensionConstraint.constant = max(0, -scrollView.contentOffset.y) + + updateNavigationTextOffset() + } + + // MARK: - Utilities + + /// Return the appropriate text string for the specified |GMSPlacesOpenNowStatus|. + private func text(for status: GMSPlacesOpenNowStatus) -> String { + switch status { + case .no: return NSLocalizedString("Places.OpenNow.No", + comment: "Closed/Open state for a closed location") + case .yes: return NSLocalizedString("Places.OpenNow.Yes", + comment: "Closed/Open state for an open location") + case .unknown: return NSLocalizedString("Places.OpenNow.Unknown", + comment: "Closed/Open state for when it is unknown") + } + } + + /// Return the appropriate text string for the specified |GMSPlacesPriceLevel|. + private func text(for priceLevel: GMSPlacesPriceLevel) -> String { + switch priceLevel { + case .free: return NSLocalizedString("Places.PriceLevel.Free", + comment: "Relative cost for a free location") + case .cheap: return NSLocalizedString("Places.PriceLevel.Cheap", + comment: "Relative cost for a cheap location") + case .medium: return NSLocalizedString("Places.PriceLevel.Medium", + comment: "Relative cost for a medium cost location") + case .high: return NSLocalizedString("Places.PriceLevel.High", + comment: "Relative cost for a high cost location") + case .expensive: return NSLocalizedString("Places.PriceLevel.Expensive", + comment: "Relative cost for an expensive location") + case .unknown: return NSLocalizedString("Places.PriceLevel.Unknown", + comment: "Relative cost for when it is unknown") + } + } + + private func updateNavigationBar() { + // Grab the header. + if let header = tableView.headerView(forSection: 0) as? PlaceNameHeader { + updateNavigationBar(header) + } + } + + private func updateNavigationBar(_ header: PlaceNameHeader) { + // Check to see if we should be offsetting the navigation title. + if offsetNavigationTitle { + // If so offset it by at most 36 pixels, relative to how much we've scrolled past 160px. + let offset = max(0, min(36, tableView.contentOffset.y - 160)) + header.leadingConstraint.constant = offset + } else { + // Otherwise don't offset. + header.leadingConstraint.constant = 0 + } + + // Update the compact status. + header.compact = compactHeader + } +} + +extension PlaceProperty { + func localizedDescription() -> String { + switch self { + case .placeID: + return NSLocalizedString("Places.Property.PlaceID", + comment: "Name for the Place ID property") + case .coordinate: + return NSLocalizedString("Places.Property.Coordinate", + comment: "Name for the Coordinate property") + case .openNowStatus: + return NSLocalizedString("Places.Property.OpenNowStatus", + comment: "Name for the Open now status property") + case .phoneNumber: + return NSLocalizedString("Places.Property.PhoneNumber", + comment: "Name for the Phone number property") + case .website: + return NSLocalizedString("Places.Property.Website", + comment: "Name for the Website property") + case .formattedAddress: + return NSLocalizedString("Places.Property.FormattedAddress", + comment: "Name for the Formatted address property") + case .rating: + return NSLocalizedString("Places.Property.Rating", + comment: "Name for the Rating property") + case .priceLevel: + return NSLocalizedString("Places.Property.PriceLevel", + comment: "Name for the Price level property") + case .types: + return NSLocalizedString("Places.Property.Types", + comment: "Name for the Types property") + case .attribution: + return NSLocalizedString("Places.Property.Attributions", + comment: "Name for the Attributions property") + } + } + + func icon() -> UIImage? { + switch self { + case .placeID: + return UIImage(named: "place_id") + case .coordinate: + return UIImage(named: "coordinate") + case .openNowStatus: + return UIImage(named: "open_now") + case .phoneNumber: + return UIImage(named: "phone_number") + case .website: + return UIImage(named: "website") + case .formattedAddress: + return UIImage(named: "address") + case .rating: + return UIImage(named: "rating") + case .priceLevel: + return UIImage(named: "price_level") + case .types: + return UIImage(named: "types") + case .attribution: + return UIImage(named: "attribution") + } + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.swift new file mode 100755 index 0000000..f8f03b6 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.swift @@ -0,0 +1,166 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit +import GoogleMaps +import GooglePlaces + +/// A view controller which displays details about a specified |GMSPlace|. +class PlaceDetailViewController: BaseContainerViewController { + private let place: GMSPlace + @IBOutlet private weak var photoView: UIImageView! + @IBOutlet private weak var mapView: GMSMapView! + @IBOutlet var tableBackgroundView: UIView! + @IBOutlet weak var tableView: UITableView! + @IBOutlet weak var statusBarShadow: ShadowLineView! + @IBOutlet weak var navigationBar: UIView! + @IBOutlet weak var headerHeightExtension: UIView! + @IBOutlet weak var headerHeightExtensionConstraint: NSLayoutConstraint! + @IBOutlet weak var photoWidthConstraint: NSLayoutConstraint! + private lazy var placesClient = { GMSPlacesClient.shared() } () + private static let photoSize = CGSize(width: 450, height: 300) + private var tableDataSource: PlaceDetailTableViewDataSource! + + init(place: GMSPlace) { + self.place = place + super.init(nibName: String(describing: type(of: self)), bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + + // Configure the table + tableDataSource = + PlaceDetailTableViewDataSource(place: place, + extensionConstraint: headerHeightExtensionConstraint, + tableView: tableView) + tableView.backgroundView = tableBackgroundView + tableView.dataSource = tableDataSource + tableView.delegate = tableDataSource + + // Configure the UI elements + lookupPhoto() + configureMap() + configureBars() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + updateNavigationBarState(actualTraitCollection) + updateStatusBarState(actualTraitCollection) + } + + override func willTransition(to newCollection: UITraitCollection, + with coordinator: UIViewControllerTransitionCoordinator) { + + super.willTransition(to: newCollection, with: coordinator) + + updateNavigationBarState(newCollection) + updateStatusBarState(newCollection) + } + + override func viewWillTransition(to size: CGSize, + with coordinator: UIViewControllerTransitionCoordinator) { + + super.viewWillTransition(to: size, with: coordinator) + + updateStatusBarState(actualTraitCollection) + } + + private func lookupPhoto() { + // Lookup the photos associated with this place. + placesClient.lookUpPhotos(forPlaceID: place.placeID) { (metadata, error) in + // Handle the result if it was successful. + if let metadata = metadata { + // Check to see if any photos were found. + if !metadata.results.isEmpty { + // If there were load the first one. + self.loadPhoto(metadata.results[0]) + } else { + NSLog("No photos were found") + } + } else if let error = error { + NSLog("An error occured while looking up the photos: \(error)") + } else { + fatalError("An unexpected error occured") + } + } + } + + private func loadPhoto(_ photo: GMSPlacePhotoMetadata) { + // Load the specified photo. + placesClient.loadPlacePhoto(photo, constrainedTo: PlaceDetailViewController.photoSize, + scale: view.window?.screen.scale ?? 1) { (image, error) in + // Handle the result if it was successful. + if let image = image { + self.photoView.image = image + self.photoWidthConstraint.isActive = false + } else if let error = error { + NSLog("An error occured while loading the first photo: \(error)") + } else { + fatalError("An unexpected error occured") + } + } + } + + private func configureMap() { + // Place a marker on the map and center it on the desired coordinates. + let marker = GMSMarker(position: place.coordinate) + marker.map = mapView + mapView.camera = GMSCameraPosition(target: place.coordinate, zoom: 15, bearing: 0, + viewingAngle: 0) + mapView.isUserInteractionEnabled = false + } + + private func configureBars() { + // Configure the drop-shadow we display under the status bar. + statusBarShadow.enableShadow = true + statusBarShadow.shadowOpacity = 1 + statusBarShadow.shadowSize = 80 + + // Add a constraint to the top of the navigation bar so that it respects the top layout guide. + NSLayoutConstraint(item: navigationBar, attribute: .top, relatedBy: .equal, + toItem: topLayoutGuide, attribute: .bottom, multiplier: 1, + constant: 0).isActive = true + + // Set the color of the hight extension view. + headerHeightExtension.backgroundColor = Colors.blue2 + } + + private func updateNavigationBarState(_ traitCollection: UITraitCollection) { + // Hide the navigation bar if we have enough space to be split-screen. + let isNavigationBarHidden = traitCollection.horizontalSizeClass == .regular + navigationBar.isHidden = isNavigationBarHidden + tableDataSource.offsetNavigationTitle = !isNavigationBarHidden + tableDataSource.updateNavigationTextOffset() + } + + private func updateStatusBarState(_ traitCollection: UITraitCollection) { + // Hide the shadow if we are not right against the status bar. + let hasMargin = insetViewController?.hasMargin ?? false + statusBarShadow.isHidden = hasMargin + + // Transition to a compact navigation bar layout if the status bar is hidden. + tableDataSource.compactHeader = traitCollection.verticalSizeClass == .compact + } + + @IBAction func backButtonTapped() { + splitPaneViewController?.popViewController() + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.xib b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.xib new file mode 100755 index 0000000..fc77688 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceDetailViewController.xib @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.swift b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.swift new file mode 100755 index 0000000..22eb4b2 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.swift @@ -0,0 +1,62 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +import UIKit + +/// The view which displays the name of a |GMSPlace|. +class PlaceNameHeader: UITableViewHeaderFooterView { + static let nib = { UINib(nibName: "PlaceNameHeader", bundle: nil) }() + static let reuseIdentifier = "PlaceNameHeader" + @IBOutlet private weak var placeNameLabel: UILabel! + @IBOutlet private weak var topConstraint: NSLayoutConstraint! + @IBOutlet weak var leadingConstraint: NSLayoutConstraint! + + // Override the textLabel property so that |UITableView| automatically knows how to set the text. + override var textLabel: UILabel? { + get { + return placeNameLabel + } + } + + var compact = false { + didSet { + topConstraint.constant = compact ? 9 : 29 + } + } + + override func awakeFromNib() { + // Create a background view for the header. + let background = UIView(frame: bounds) + + // Place a drop shadow at the top edge so that we nicely overlay the photo & map. + let shadow = ShadowLineView() + shadow.shadowOpacity = 0.6 + shadow.shadowSize = 3 + shadow.enableShadow = true + shadow.shadowColor = Colors.blue2 + shadow.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 0) + shadow.autoresizingMask = [.flexibleBottomMargin, .flexibleWidth] + background.addSubview(shadow) + + // Add the solid color we want on top of the drop shadow to hide all but the top edge of it. + let color = UIView(frame: background.bounds) + color.autoresizingMask = [.flexibleWidth, .flexibleHeight] + color.backgroundColor = Colors.blue2 + background.addSubview(color) + + // Set it as the background. + backgroundView = background + } +} diff --git a/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.xib b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.xib new file mode 100755 index 0000000..b38a95d --- /dev/null +++ b/Pods/GooglePlacePicker/Example/GooglePlacePickerDemos/ViewControllers/PlaceDetail/PlaceNameHeader.xib @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlacePicker/Example/Podfile b/Pods/GooglePlacePicker/Example/Podfile new file mode 100755 index 0000000..07d9c20 --- /dev/null +++ b/Pods/GooglePlacePicker/Example/Podfile @@ -0,0 +1,7 @@ +source 'https://github.com/CocoaPods/Specs.git' + +target 'GooglePlacePickerDemos' do + pod 'GooglePlacePicker', '= 2.4.0' + pod 'GooglePlaces', '= 2.4.0' + pod 'GoogleMaps', '= 2.4.0' +end diff --git a/Pods/GooglePlacePicker/Example/README.GooglePlacePickerDemos b/Pods/GooglePlacePicker/Example/README.GooglePlacePickerDemos new file mode 100755 index 0000000..278d15a --- /dev/null +++ b/Pods/GooglePlacePicker/Example/README.GooglePlacePickerDemos @@ -0,0 +1,18 @@ +GooglePlacePickerDemos contains a demo application showcasing the Place Picker +from the Google Places API for iOS. + +Before starting, please note that this demo is directed towards a technical +audience. You'll also need Xcode 8.0 or later, with the iOS SDK 10.0 or later. + +If you're new to the API, please read the Introduction section of the Google +Places API for iOS documentation- + https://developers.google.com/places/ios-api/ + +Once you've read the Introduction page, follow the first couple of steps on the +"Getting Started" page. Specifically; + + * Obtain an API key for the demo application, and specify the bundle ID of + this demo application as an an 'allowed iOS app'. By default, the bundle ID + is "com.example.GooglePlacePickerDemos". + + * Open the project in Xcode, and update `SDKDemoAPIKey.swift` with this key. diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/GooglePlacePicker b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/GooglePlacePicker new file mode 100755 index 0000000..5ce238e Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/GooglePlacePicker differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePicker.h b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePicker.h new file mode 100755 index 0000000..4dacb28 --- /dev/null +++ b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePicker.h @@ -0,0 +1,93 @@ +// +// GMSPlacePicker.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSPlacePickerConfig.h" + +NS_ASSUME_NONNULL_BEGIN; + + +/** + * Error domain used for Place Picker errors. + * + * @related GMSPlacePicker + */ +extern NSString *const kGMSPlacePickerErrorDomain; + +/** + * Error codes for |kGMSPlacePickerErrorDomain|. + * + * @related GMSPlacePicker + */ +typedef NS_ENUM(NSInteger, GMSPlacePickerErrorCode) { + /** + * Something unknown went wrong. + */ + kGMSPlacePickerUnknownError = -1, + /** + * An internal error occurred in the Places API library. + */ + kGMSPlacePickerInternalError = -2, + /** + * An invalid GMSPlacePickerConfig was used. + */ + kGMSPlacePickerInvalidConfig = -3, + /** + * Attempted to perform simultaneous place picking operations. + */ + kGMSPlacePickerOverlappingCalls = -4, +}; + +/** + * The Place Picker is a dialog that allows the user to pick a |GMSPlace| using an interactive map + * and other tools. Users can select the place they're at or nearby. + * + * NOTE: This class is deprecated, it is recommended that you use |GMSPlacePickerViewController| + * instead. + */ +__GMS_AVAILABLE_BUT_DEPRECATED_MSG("Use GMSPlacePickerViewController instead") +@interface GMSPlacePicker : NSObject + +/** + * The configuration of the place picker, as passed in at initialization. + */ +@property(nonatomic, readonly, copy) + GMSPlacePickerConfig *config __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "Use GMSPlacePickerViewController instead"); + +/** + * Initializes the place picker with a given configuration. This does not start the process of + * picking a place. + */ +- (instancetype)initWithConfig:(GMSPlacePickerConfig *)config + __GMS_AVAILABLE_BUT_DEPRECATED_MSG("Use GMSPlacePickerViewController instead"); + +/** + * Prompt the user to pick a place. The place picker is a full-screen window that appears on + * [UIScreen mainScreen]. The place picker takes over the screen until the user cancels the + * operation or picks a place. The supplied callback will be invoked with the chosen place, or nil + * if no place was chosen. + * + * This method should be called on the main thread. The callback will also be invoked on the main + * thread. + * + * It is not possible to have multiple place picking operations active at the same time. If this is + * attempted, the callback will be invoked with an error. + */ +- (void)pickPlaceWithCallback:(GMSPlaceResultCallback)callback + __GMS_AVAILABLE_BUT_DEPRECATED_MSG("Use GMSPlacePickerViewController instead"); + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerConfig.h b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerConfig.h new file mode 100755 index 0000000..953b8f8 --- /dev/null +++ b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerConfig.h @@ -0,0 +1,43 @@ +// +// GMSPlacePickerConfig.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#if __has_feature(modules) +@import GooglePlaces; +#else +#import +#endif + +NS_ASSUME_NONNULL_BEGIN; + + +/** + * Configuration object used to change the behavior of the place picker. + */ +@interface GMSPlacePickerConfig : NSObject + +/** + * The initial viewport that the place picker map should show. If this is nil, a sensible default + * will be chosen based on the user's location. + */ +@property(nonatomic, strong, readonly, nullable) GMSCoordinateBounds *viewport; + +/** + * Initialize the configuration. + */ +- (instancetype)initWithViewport:(nullable GMSCoordinateBounds *)viewport; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerViewController.h b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerViewController.h new file mode 100755 index 0000000..b6d6c72 --- /dev/null +++ b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GMSPlacePickerViewController.h @@ -0,0 +1,92 @@ +// +// GMSPlacePickerViewController.h +// Google Places API for iOS +// +// Copyright 2017 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if __has_feature(modules) +@import GooglePlaces; +#else +#import +#endif +#import "GMSPlacePickerConfig.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSPlacePickerViewController; + +/** + * Protocol used by |GMSPlacePickerViewController|, to communicate the user's interaction with the + * Place Picker to the application. + */ +@protocol GMSPlacePickerViewControllerDelegate + +@required + +/** + * Called when a place has been selected. + * + * Implementations of this method should dismiss the view controller as the view controller will not + * dismiss itself. + * + * @param viewController The |GMSPlacePickerViewController| that generated the event. + * @param place The |GMSPlace| that was selected. + */ +- (void)placePicker:(GMSPlacePickerViewController *)viewController didPickPlace:(GMSPlace *)place; + +@optional + +/** + * Called when an error has occurred within the Place Picker. + * + * The Place Picker displays a UI informing the user of the error, and provides the user with a way + * to retry the operation if appropriate. In most cases your app need not perform any action in + * response to the calling of this method. The purpose of this method is to provide information + * about errors. + * + * @param viewController The |GMSPlacePickerViewController| that generated the event. + * @param error The error that occurred. + */ +- (void)placePicker:(GMSPlacePickerViewController *)viewController + didFailWithError:(NSError *)error; + +/** + * Called when the place picking operation has been cancelled. + * + * @param viewController The |GMSPlacePickerViewControler| that generated the event. + */ +- (void)placePickerDidCancel:(GMSPlacePickerViewController *)viewController; + +@end + +/** + * GMSPlacePickerViewController provides an interface that displays the Place Picker. Place + * selections made by the user are returned to the app via the + * |GMSPlacePickerViewControllerDelegate| protocol. + * + * To use GMSPlacePickerViewController, set its delegate to an object in your app that + * conforms to the |GMSPlacePickerViewControllerDelegate| protocol and present the controller + * (for example using presentViewController). The |GMSPlacePickerViewControllerDelegate| delegate + * methods can be used to determine when the user has selected a place, cancelled selection, or when + * an error has occurred. + */ +@interface GMSPlacePickerViewController : UIViewController + +/** Delegate to be notified when a place is selected or picking is cancelled. */ +@property(nonatomic, weak, nullable) IBOutlet id delegate; + +/** + * Initializes the place picker with a given configuration. This does not start the process of + * picking a place. + */ +- (instancetype)initWithConfig:(GMSPlacePickerConfig *)config; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GooglePlacePicker.h b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GooglePlacePicker.h new file mode 100755 index 0000000..73484b0 --- /dev/null +++ b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Headers/GooglePlacePicker.h @@ -0,0 +1,13 @@ +// +// GooglePlacePicker.h +// Google Places API for iOS +// +// Copyright 2017 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSPlacePicker.h" +#import "GMSPlacePickerConfig.h" +#import "GMSPlacePickerViewController.h" diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Modules/module.modulemap b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Modules/module.modulemap new file mode 100755 index 0000000..1d0852a --- /dev/null +++ b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Modules/module.modulemap @@ -0,0 +1,21 @@ +framework module GooglePlacePicker { + umbrella header "GooglePlacePicker.h" + export * + module * { export *} + link "z" + link framework "Accelerate" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} \ No newline at end of file diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/Info.plist b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/Info.plist new file mode 100755 index 0000000..9cbc36a Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/Info.plist differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ar.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ar.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..4c0d1ce Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ar.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ca.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ca.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..2387f23 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ca.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/cs.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/cs.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..d12ca99 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/cs.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/da.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/da.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..2df1e5b Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/da.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/de.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/de.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..478eef5 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/de.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/el.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/el.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b07dd2d Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/el.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_AU.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_AU.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_AU.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_GB.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_GB.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_GB.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_IN.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_IN.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/en_IN.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..0b09af3 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_419.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_419.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..4173ef6 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_419.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_MX.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_MX.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..4173ef6 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/es_MX.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fi.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fi.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..30320ce Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fi.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..a47b885 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr_CA.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr_CA.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..73ba357 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/fr_CA.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/he.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/he.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..53f348f Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/he.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hi.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hi.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..7c36a2a Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hi.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hr.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hr.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..dab72b1 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hr.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hu.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hu.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..aae8b64 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/hu.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/id.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/id.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..70e9836 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/id.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/it.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/it.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..3185a71 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/it.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/iw.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/iw.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..53f348f Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/iw.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ja.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ja.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..f1b7243 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ja.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ko.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ko.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..49c5973 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ko.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lt.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lt.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lt.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lv.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lv.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b357ef2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/lv.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ms.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ms.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..37c5c3c Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ms.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nb.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nb.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..cbb6b1c Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nb.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nl.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nl.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..6bc89a4 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/nl.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/no.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/no.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..cbb6b1c Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/no.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pl.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pl.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..9d423c3 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pl.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..5ece5bc Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_BR.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_BR.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..5ece5bc Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_BR.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_PT.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_PT.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..380132d Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/pt_PT.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons.png new file mode 100755 index 0000000..d1e5ac0 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@2x.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@2x.png new file mode 100755 index 0000000..87953d8 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@2x.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@3x.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@3x.png new file mode 100755 index 0000000..ba2d3b1 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/red_icons@3x.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ro.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ro.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..421470d Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ro.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ru.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ru.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..2b831f2 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/ru.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sk.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sk.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..6220efc Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sk.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sv.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sv.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..44a3fdd Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/sv.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/th.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/th.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..3342e2d Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/th.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/tr.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/tr.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b0363cf Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/tr.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/uk.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/uk.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..154d4e3 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/uk.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/vi.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/vi.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..67c9899 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/vi.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons.png new file mode 100755 index 0000000..5e7624e Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@2x.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@2x.png new file mode 100755 index 0000000..a5a205b Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@2x.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@3x.png b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@3x.png new file mode 100755 index 0000000..9d13b59 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/white_icons@3x.png differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_CN.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_CN.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..b223c27 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_CN.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_HK.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_HK.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..0ace9e3 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_HK.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_TW.lproj/GooglePlacePicker.strings b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_TW.lproj/GooglePlacePicker.strings new file mode 100755 index 0000000..a43ca67 Binary files /dev/null and b/Pods/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle/zh_TW.lproj/GooglePlacePicker.strings differ diff --git a/Pods/GooglePlacePicker/README.md b/Pods/GooglePlacePicker/README.md new file mode 100755 index 0000000..5dad6fb --- /dev/null +++ b/Pods/GooglePlacePicker/README.md @@ -0,0 +1,93 @@ +# Google Places API for iOS - Place Picker + +This pod contains the Place Picker component of the Google Places API for iOS, +supporting both Objective C and Swift. + +The Google Places API for iOS is distributed as two Pods to allow developers to +have more control over what code is included in their apps. This helps to +create and distribute smaller apps. + +This Pod contains only the [Place Picker](https://developers.google.com/places/ios-api/placepicker) +component of the Google Places API for iOS. For all other features, see the main +Pod [Google Places API for iOS](https://cocoapods.org/pods/GooglePlaces). + +# Getting Started + +* *Guides*: Read our [Getting Started guides] + (https://developers.google.com/places/ios-api/start). +* *Demo Videos*: View [pre-recorded online demos] + (https://developers.google.com/places/ios-api/#demos). +* *Code samples*: In order to try out our demo app, run + + ``` + $ pod try GooglePlacePicker + ``` + + For demos of other features of the Google Places API for iOS run + + ``` + $ pod try GooglePlaces + ``` + + and follow the instructions on our [developer pages] + (https://developers.google.com/places/ios-api/code-samples). + +* *Support*: Find support from various channels and communities. + + * Support pages for [Google Places API for iOS] + (https://developers.google.com/places/support). + * Stack Overflow, using the [google-places-api] + (https://stackoverflow.com/questions/tagged/google-places-api) tag. + +* *Report issues*: Use our issue tracker to [file a bug] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Places%20API%20for%20iOS%20-%20Bug) + or a [feature request] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Places%20API%20for%20iOS%20-%20Feature%20Request) + +# Installation + +To integrate the Place Picker into your Xcode project using CocoaPods, specify +it in your `Podfile`: + +``` +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' +target 'YOUR_APPLICATION_TARGET_NAME_HERE' do + pod 'GooglePlacePicker' +end +``` + +Then, run the following command: + +``` +$ pod install +``` + +Before you can start using the API, you have to activate it in the [Google +Developer Console](https://console.developers.google.com/) and integrate the +respective API key in your project. For detailed installation instructions, +visit Google's Getting Started Guides for the [Google Places API for iOS] +(https://developers.google.com/places/ios-api/start). + +# Migration from version 1 + +If you are using the Google Places API for iOS as part of the Google Maps SDK +for iOS version 1 please check the [migration guide](https://developers.google.com/places/migrate-to-v2) +for more information on upgrading your project. + +# License and Terms of Service + +By using the Google Places API for iOS, you accept Google's Terms of +Service and Policies. Pay attention particularly to the following aspects: + +* Depending on your app and use case, you may be required to display + attribution. Read more about [attribution requirements] + (https://developers.google.com/places/ios-api/attributions). +* Your API usage is subject to quota limitations. Read more about [usage + limits](https://developers.google.com/places/ios-api/usage). +* The [Terms of Service](https://developers.google.com/maps/terms) are a + comprehensive description of the legal contract that you enter with Google + by using the Google Places API for iOS. You may want to pay special + attention to [section 10] + (https://developers.google.com/maps/terms#10-license-restrictions), as it + talks in detail about what you can do with the API, and what you can't. diff --git a/Pods/GooglePlaces/CHANGELOG b/Pods/GooglePlaces/CHANGELOG new file mode 100755 index 0000000..f7dfac6 --- /dev/null +++ b/Pods/GooglePlaces/CHANGELOG @@ -0,0 +1,83 @@ +Version 2.4.0 - August 2017 +=========================== +Note: + - The Add Place feature is deprecated as of June 30, 2017. This feature will + be turned down on June 30, 2018, and will no longer be available after that + date. + - The armv7s architecture in the frameworks has been removed. Devices which + previously used armv7s are still supported using the armv7 architecture. + All applications using the default architecture settings in any supported + version of Xcode should not notice any change. + - The layout of the static frameworks has changed. There is no longer a + Versions directory. The contents of Versions/A has been moved to the root + directory of the framework. Developers who manually integrate frameworks + with their project should take additional care during the upgrade. + - Support for Xcode 7.3 will be dropped with 2.5.0. + +Version 2.3.1 - June 2017 +======================== +Resolved Issues: + - Fixed an issue resulting in a crash when receiving photos for certain + places. + +Version 2.3.0 - May 2017 +======================== +Notes: + - Dropped support for iOS 7. + - The armv7s architecture in the frameworks will be removed in 2.4. Devices + which previously used armv7s can continue to be supported using the armv7 + architecture. All applications using the default architecture settings + in any supported version of Xcode shouldn't notice any change. + +Version 2.2.0 - February 2017 +============================= +Resolved Issues: + - Fixes an issue where the Autocomplete error delegate method was not called + in all conditions. + +Note: + - iOS 7 support is intended to be dropped starting with 2.3. 2.2.x will be + the last release series to support iOS 7. + +Version 2.1.1 - November 2016 +============================= +Resolved Issues: + - Reduces the timeout on calls to `currentPlace(callback:)` to match android. + +Version 2.1.0 - September 2016 +============================== + +Resolved Issues: + - Added workaround for the `userEmail` triggering false positives during + submission to the Apple app store. + - Errors returned from lookUpPlaceID(_:callback:) now have the correct error + domain and codes. + - Small fixes to RTL support in the place picker. + - Minor reliability improvements for the autocomplete widget and place picker. + +Version 2.0.1 - July 2016 +========================= + +Resolved Issues: + - Array properties are now correctly typed when accessed from Swift. + +Version 2.0.0 - July 2016 +========================= + +Improvements: + - This release splits the Places API from the Maps SDK. Previously, if you + wanted to use the Places API you had to include all of GoogleMaps. As a + result of the split, the final size of the Places API binary is 70% smaller + than the previous combined binary. If you are using only the Maps SDK you + will not be affected unless you have pinned your dependency on GoogleMaps + to a version earlier than 2.0. In this case, you should update this + restriction in your Podfile. If you are using the Places API, see the + migration guide online for more details. + +Resolved Issues: + - The Places framework is now available as a download for manual installation. + For details, see the get started guide online. + - The Places API no longer requests permission to access the user's location + on behalf of the app. This means that existing code which calls + GMSPlacesClient.currentPlaceWithCallback(_:) must be updated to ensure that + the location permission has been granted beforehand. diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos.xcodeproj/project.pbxproj b/Pods/GooglePlaces/Example/GooglePlacesDemos.xcodeproj/project.pbxproj new file mode 100755 index 0000000..710f834 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos.xcodeproj/project.pbxproj @@ -0,0 +1,428 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 15D96A2CC730B0DEF8195766 /* MainSplitViewControllerBehaviorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 818B68D04D9AD33F4EBC54D2 /* MainSplitViewControllerBehaviorManager.m */; }; + 1A484FC943BEEFA43D99A1B1 /* PagingPhotoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 21153EB819432638638C2C26 /* PagingPhotoView.m */; }; + 214143B4B35541589A702634 /* AutocompleteWithCustomColors.m in Sources */ = {isa = PBXBuildFile; fileRef = FC03FEE150596E9432F612DF /* AutocompleteWithCustomColors.m */; }; + 26BA8435B438A4BEB9C893A5 /* PhotosViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6078563FD3AF8109B2586941 /* PhotosViewController.m */; }; + 2A5A993302F4E6E15EA9BCD2 /* PlacesDemoAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85EDEFE42680FF093454D1AB /* PlacesDemoAssets.xcassets */; }; + 2EC566C0AE2182DE0FEBA86B /* DemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B81B9326DD5B37C08B8CCAA /* DemoAppDelegate.m */; }; + 3439DA691B81CBDA5BE552BD /* AutocompleteBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E6E2A1285D9A0BEBDCD503 /* AutocompleteBaseViewController.m */; }; + 42128D6A32D50325383D28DD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ADBE3D50D731A88C24F3F0 /* UIKit.framework */; }; + 5B89B9BA327B31EC08E64538 /* BaseDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A3D4BD9841268F97FD23E770 /* BaseDemoViewController.m */; }; + 60B690F521E7F65388320B08 /* AutocompletePushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BAEA89ED8C397E73E2E9730 /* AutocompletePushViewController.m */; }; + 66310EE76B375B01262F52A1 /* DemoData.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F2203BCCE0CFC3DC4F38B30 /* DemoData.m */; }; + 6E4B65E8726D60B6659FC6EE /* AutocompleteWithSearchDisplayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 243C9279E0BF845B23337398 /* AutocompleteWithSearchDisplayController.m */; }; + 91123AFDEB15F27812A8FCFF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1D344C64A66F10D55590797E /* Localizable.strings */; }; + AA96A2641C8281A831381AA2 /* AutocompleteWithSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7419DDC82CA074FF0A508C /* AutocompleteWithSearchViewController.m */; }; + C54FD416450638D80BD9A3C0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F65D01DD8887E3B1B9731DAE /* LaunchScreen.storyboard */; }; + D064B1789A04566EA32E30E1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D0589812EE1F702A7BBA34D /* main.m */; }; + E56159A1819452F650C1D995 /* DemoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C753B6637575A8CD81C699 /* DemoListViewController.m */; }; + EBEE5C2C69F0939E6BD8864A /* AutocompleteModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E1502E6F1A86B1773138153B /* AutocompleteModalViewController.m */; }; + F05B665E94D7DE65E01A76D3 /* PlacePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A69D3327086631C22DBBAD94 /* PlacePickerViewController.m */; }; + F2051AE18567239DCEE29679 /* AutocompleteWithTextFieldController.m in Sources */ = {isa = PBXBuildFile; fileRef = ADB9E4A950DB2EA454486E47 /* AutocompleteWithTextFieldController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0D33295E02D9501C1D45D615 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + 13C513E93D85CC7B765F9CDB /* AutocompleteWithCustomColors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteWithCustomColors.h; sourceTree = ""; }; + 16C539680ABA55CA7AFC3002 /* GooglePlacesDemos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GooglePlacesDemos.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1A982A54052D846FC64B7AB5 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = pt_BR.lproj/Localizable.strings; sourceTree = ""; }; + 1BAEA89ED8C397E73E2E9730 /* AutocompletePushViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompletePushViewController.m; sourceTree = ""; }; + 1D0589812EE1F702A7BBA34D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 1D767BA5698A891C36ADF830 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + 1DB6FA3886B89186F55A12E3 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Localizable.strings; sourceTree = ""; }; + 1FE971FB44A73F445279DA7F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 21153EB819432638638C2C26 /* PagingPhotoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PagingPhotoView.m; sourceTree = ""; }; + 216CA36352B45FBC79C98B8F /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + 243C9279E0BF845B23337398 /* AutocompleteWithSearchDisplayController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteWithSearchDisplayController.m; sourceTree = ""; }; + 273B1A3F7AA7EED9084B5033 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 2D52E39A30BD9D0AFC323F7F /* es_419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_419; path = es_419.lproj/Localizable.strings; sourceTree = ""; }; + 2E4275BAD2E59FA193904FFC /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/Localizable.strings; sourceTree = ""; }; + 31A6A624F6D9631C9BFECF9A /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 36AEC349198E6BC061546705 /* AutocompleteWithSearchDisplayController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteWithSearchDisplayController.h; sourceTree = ""; }; + 36C753B6637575A8CD81C699 /* DemoListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoListViewController.m; sourceTree = ""; }; + 37CA5C28547C65246AC4EAE6 /* zh_HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_HK; path = zh_HK.lproj/Localizable.strings; sourceTree = ""; }; + 3A822A5CF223FF6ADFCA9458 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Localizable.strings; sourceTree = ""; }; + 3CB3E42FBF23DD0411D5EFB5 /* PagingPhotoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PagingPhotoView.h; sourceTree = ""; }; + 4268AFE07F8787F0CA36AA3B /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + 42C8FE938EFBD5D6633C190F /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + 4F2203BCCE0CFC3DC4F38B30 /* DemoData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoData.m; sourceTree = ""; }; + 50E198C48B1A11E3B03DBE30 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + 55F92A67B1F0F18431DD759C /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = ""; }; + 6078563FD3AF8109B2586941 /* PhotosViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PhotosViewController.m; sourceTree = ""; }; + 611B5E7788AB0459C2AA1A54 /* DemoData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoData.h; sourceTree = ""; }; + 651835542B635C74A3D0F711 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + 67BD5ABA8E74D336AE54C0B0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; + 69D781288A761B789E0F63B6 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + 6EBC31158FA04B806E2549AF /* PhotosViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhotosViewController.h; sourceTree = ""; }; + 77688EB771E8262C6C224CE8 /* en_IN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_IN; path = en_IN.lproj/Localizable.strings; sourceTree = ""; }; + 818B68D04D9AD33F4EBC54D2 /* MainSplitViewControllerBehaviorManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainSplitViewControllerBehaviorManager.m; sourceTree = ""; }; + 84E89BC0ADE5F983320B9730 /* AutocompletePushViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompletePushViewController.h; sourceTree = ""; }; + 85EDEFE42680FF093454D1AB /* PlacesDemoAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = PlacesDemoAssets.xcassets; sourceTree = ""; }; + 88DC6C46CAE8787FB54161AF /* AutocompleteBaseViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteBaseViewController.h; sourceTree = ""; }; + 8F7419DDC82CA074FF0A508C /* AutocompleteWithSearchViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteWithSearchViewController.m; sourceTree = ""; }; + 91F10567E79D600B5D3A7385 /* DemoListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoListViewController.h; sourceTree = ""; }; + 97ADBE3D50D731A88C24F3F0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 9B81B9326DD5B37C08B8CCAA /* DemoAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoAppDelegate.m; sourceTree = ""; }; + A00F12FEC785E9E287E42582 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + A06B8C341933D23425E2C178 /* AutocompleteModalViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteModalViewController.h; sourceTree = ""; }; + A3D4BD9841268F97FD23E770 /* BaseDemoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseDemoViewController.m; sourceTree = ""; }; + A69D3327086631C22DBBAD94 /* PlacePickerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PlacePickerViewController.m; sourceTree = ""; }; + A8162D0DA3B592BBB6E3FA35 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + A8233D7A6FCDAD9F3E3FFEFC /* pt_PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_PT; path = pt_PT.lproj/Localizable.strings; sourceTree = ""; }; + A997870E831544227236DF00 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + AADF2995CB717FE4D341C944 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + ADB9E4A950DB2EA454486E47 /* AutocompleteWithTextFieldController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteWithTextFieldController.m; sourceTree = ""; }; + AF5862DFC2F44C360067E8C5 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + B346F058E854F6546CE4A113 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + B36F7F4AFB067A447A95D21C /* fr_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_CA; path = fr_CA.lproj/Localizable.strings; sourceTree = ""; }; + B4ABFD22EF8C141BB930DA79 /* es_MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_MX; path = es_MX.lproj/Localizable.strings; sourceTree = ""; }; + B61CFC263869B93126B2C502 /* MainSplitViewControllerBehaviorManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainSplitViewControllerBehaviorManager.h; sourceTree = ""; }; + B89AD97A10365521ED09C03F /* en_AU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_AU; path = en_AU.lproj/Localizable.strings; sourceTree = ""; }; + BB25E63BA7525B4F9C996E94 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = zh_CN.lproj/Localizable.strings; sourceTree = ""; }; + C4230A88E51B60A9F4C0CF9B /* BaseDemoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseDemoViewController.h; sourceTree = ""; }; + CBCF32F12AADFF34B1745273 /* zh_TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_TW; path = zh_TW.lproj/Localizable.strings; sourceTree = ""; }; + CE0FA365A96C1D97CE01B652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + CF1B1E3D7B5C131B7DF1C10C /* AutocompleteWithSearchViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteWithSearchViewController.h; sourceTree = ""; }; + D0E6E2A1285D9A0BEBDCD503 /* AutocompleteBaseViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteBaseViewController.m; sourceTree = ""; }; + D1C229B5A414955539EBE107 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + D386A1C846DB8FAC6C3916E6 /* PlacePickerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlacePickerViewController.h; sourceTree = ""; }; + D5401C957612DEF87E02DC2C /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + DAB6D5F45E10BD22F8FBB4BA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = ""; }; + E008571503BEEFC5C2BF5D66 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; + E0C040E0617744F5A55C8922 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + E1502E6F1A86B1773138153B /* AutocompleteModalViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteModalViewController.m; sourceTree = ""; }; + E766ACF338BF4D9D9B3C86BA /* en_GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_GB; path = en_GB.lproj/Localizable.strings; sourceTree = ""; }; + E8EBD6572BDD22DD2C8C37F0 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + F2689EA2B2A4F7DC9912D5DE /* AutocompleteWithTextFieldController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutocompleteWithTextFieldController.h; sourceTree = ""; }; + F3A846055E79359BAF267E70 /* SDKDemoAPIKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDKDemoAPIKey.h; sourceTree = ""; }; + F7EFEB4946D6A093B9475CDD /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + F8ABF15D04AF351D0A21A5CD /* DemoAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoAppDelegate.h; sourceTree = ""; }; + FA2B20801D4CBBF7439CF693 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; + FB0BACDCF9A220122AFB87B5 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/Localizable.strings; sourceTree = ""; }; + FC03FEE150596E9432F612DF /* AutocompleteWithCustomColors.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AutocompleteWithCustomColors.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A91F0EDBE05C0121150AEE46 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 42128D6A32D50325383D28DD /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0D3B41906E0C3777FFB056DE /* Samples */ = { + isa = PBXGroup; + children = ( + 581A54906DCDED616577E5AE /* Autocomplete */, + 3CB3E42FBF23DD0411D5EFB5 /* PagingPhotoView.h */, + 21153EB819432638638C2C26 /* PagingPhotoView.m */, + 6EBC31158FA04B806E2549AF /* PhotosViewController.h */, + 6078563FD3AF8109B2586941 /* PhotosViewController.m */, + D386A1C846DB8FAC6C3916E6 /* PlacePickerViewController.h */, + A69D3327086631C22DBBAD94 /* PlacePickerViewController.m */, + ); + path = Samples; + sourceTree = ""; + }; + 272C787B5065093A74F813D3 /* Source */ = { + isa = PBXGroup; + children = ( + E437630B6C8A8B3D1C7679DE /* GooglePlacesDemos */, + ); + name = Source; + sourceTree = ""; + }; + 385B9B480DD2892194F01AC1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 97ADBE3D50D731A88C24F3F0 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5451EE1805656445BDA54845 /* Resources */ = { + isa = PBXGroup; + children = ( + F65D01DD8887E3B1B9731DAE /* LaunchScreen.storyboard */, + 1D344C64A66F10D55590797E /* Localizable.strings */, + 85EDEFE42680FF093454D1AB /* PlacesDemoAssets.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; + 581A54906DCDED616577E5AE /* Autocomplete */ = { + isa = PBXGroup; + children = ( + 88DC6C46CAE8787FB54161AF /* AutocompleteBaseViewController.h */, + D0E6E2A1285D9A0BEBDCD503 /* AutocompleteBaseViewController.m */, + A06B8C341933D23425E2C178 /* AutocompleteModalViewController.h */, + E1502E6F1A86B1773138153B /* AutocompleteModalViewController.m */, + 84E89BC0ADE5F983320B9730 /* AutocompletePushViewController.h */, + 1BAEA89ED8C397E73E2E9730 /* AutocompletePushViewController.m */, + 13C513E93D85CC7B765F9CDB /* AutocompleteWithCustomColors.h */, + FC03FEE150596E9432F612DF /* AutocompleteWithCustomColors.m */, + 36AEC349198E6BC061546705 /* AutocompleteWithSearchDisplayController.h */, + 243C9279E0BF845B23337398 /* AutocompleteWithSearchDisplayController.m */, + CF1B1E3D7B5C131B7DF1C10C /* AutocompleteWithSearchViewController.h */, + 8F7419DDC82CA074FF0A508C /* AutocompleteWithSearchViewController.m */, + F2689EA2B2A4F7DC9912D5DE /* AutocompleteWithTextFieldController.h */, + ADB9E4A950DB2EA454486E47 /* AutocompleteWithTextFieldController.m */, + ); + path = Autocomplete; + sourceTree = ""; + }; + 7C4A8D45D6D1B907A8C0521E = { + isa = PBXGroup; + children = ( + 272C787B5065093A74F813D3 /* Source */, + 385B9B480DD2892194F01AC1 /* Frameworks */, + 87ED31F365F5BCA83FBDE8E8 /* Products */, + ); + sourceTree = ""; + }; + 87ED31F365F5BCA83FBDE8E8 /* Products */ = { + isa = PBXGroup; + children = ( + 16C539680ABA55CA7AFC3002 /* GooglePlacesDemos.app */, + ); + name = Products; + sourceTree = ""; + }; + 903D8B003C69F9D605250637 /* Support */ = { + isa = PBXGroup; + children = ( + C4230A88E51B60A9F4C0CF9B /* BaseDemoViewController.h */, + A3D4BD9841268F97FD23E770 /* BaseDemoViewController.m */, + B61CFC263869B93126B2C502 /* MainSplitViewControllerBehaviorManager.h */, + 818B68D04D9AD33F4EBC54D2 /* MainSplitViewControllerBehaviorManager.m */, + ); + path = Support; + sourceTree = ""; + }; + E437630B6C8A8B3D1C7679DE /* GooglePlacesDemos */ = { + isa = PBXGroup; + children = ( + 5451EE1805656445BDA54845 /* Resources */, + 0D3B41906E0C3777FFB056DE /* Samples */, + 903D8B003C69F9D605250637 /* Support */, + F8ABF15D04AF351D0A21A5CD /* DemoAppDelegate.h */, + 9B81B9326DD5B37C08B8CCAA /* DemoAppDelegate.m */, + 611B5E7788AB0459C2AA1A54 /* DemoData.h */, + 4F2203BCCE0CFC3DC4F38B30 /* DemoData.m */, + 91F10567E79D600B5D3A7385 /* DemoListViewController.h */, + 36C753B6637575A8CD81C699 /* DemoListViewController.m */, + F3A846055E79359BAF267E70 /* SDKDemoAPIKey.h */, + 1D0589812EE1F702A7BBA34D /* main.m */, + ); + path = GooglePlacesDemos; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 71EABCA8BFCB342F947AF4D2 /* GooglePlacesDemos */ = { + isa = PBXNativeTarget; + buildConfigurationList = E489F9A9DC7E458708AB572E /* Build configuration list for PBXNativeTarget "GooglePlacesDemos" */; + buildPhases = ( + 2A017491F6C5A9DBB4F6E6F6 /* Resources */, + 45EF04B6738E3486BE121AEC /* Sources */, + A91F0EDBE05C0121150AEE46 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GooglePlacesDemos; + productName = GooglePlacesDemos; + productReference = 16C539680ABA55CA7AFC3002 /* GooglePlacesDemos.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B0EA45FFFB815F6F5A3E1BDD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 0830; + }; + buildConfigurationList = 63964CA36C9733EFF27C66CD /* Build configuration list for PBXProject "GooglePlacesDemos" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + en, + ); + mainGroup = 7C4A8D45D6D1B907A8C0521E; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 71EABCA8BFCB342F947AF4D2 /* GooglePlacesDemos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2A017491F6C5A9DBB4F6E6F6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C54FD416450638D80BD9A3C0 /* LaunchScreen.storyboard in Resources */, + 91123AFDEB15F27812A8FCFF /* Localizable.strings in Resources */, + 2A5A993302F4E6E15EA9BCD2 /* PlacesDemoAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 45EF04B6738E3486BE121AEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2EC566C0AE2182DE0FEBA86B /* DemoAppDelegate.m in Sources */, + 66310EE76B375B01262F52A1 /* DemoData.m in Sources */, + E56159A1819452F650C1D995 /* DemoListViewController.m in Sources */, + D064B1789A04566EA32E30E1 /* main.m in Sources */, + 3439DA691B81CBDA5BE552BD /* AutocompleteBaseViewController.m in Sources */, + EBEE5C2C69F0939E6BD8864A /* AutocompleteModalViewController.m in Sources */, + 60B690F521E7F65388320B08 /* AutocompletePushViewController.m in Sources */, + 214143B4B35541589A702634 /* AutocompleteWithCustomColors.m in Sources */, + 6E4B65E8726D60B6659FC6EE /* AutocompleteWithSearchDisplayController.m in Sources */, + AA96A2641C8281A831381AA2 /* AutocompleteWithSearchViewController.m in Sources */, + F2051AE18567239DCEE29679 /* AutocompleteWithTextFieldController.m in Sources */, + 1A484FC943BEEFA43D99A1B1 /* PagingPhotoView.m in Sources */, + 26BA8435B438A4BEB9C893A5 /* PhotosViewController.m in Sources */, + F05B665E94D7DE65E01A76D3 /* PlacePickerViewController.m in Sources */, + 5B89B9BA327B31EC08E64538 /* BaseDemoViewController.m in Sources */, + 15D96A2CC730B0DEF8195766 /* MainSplitViewControllerBehaviorManager.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 1D344C64A66F10D55590797E /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + E0C040E0617744F5A55C8922 /* ar */, + FA2B20801D4CBBF7439CF693 /* ca */, + 31A6A624F6D9631C9BFECF9A /* cs */, + 69D781288A761B789E0F63B6 /* da */, + A8162D0DA3B592BBB6E3FA35 /* de */, + 273B1A3F7AA7EED9084B5033 /* el */, + 1FE971FB44A73F445279DA7F /* en */, + B89AD97A10365521ED09C03F /* en_AU */, + E766ACF338BF4D9D9B3C86BA /* en_GB */, + 77688EB771E8262C6C224CE8 /* en_IN */, + A997870E831544227236DF00 /* es */, + 2D52E39A30BD9D0AFC323F7F /* es_419 */, + B4ABFD22EF8C141BB930DA79 /* es_MX */, + D5401C957612DEF87E02DC2C /* fi */, + D1C229B5A414955539EBE107 /* fr */, + B36F7F4AFB067A447A95D21C /* fr_CA */, + 50E198C48B1A11E3B03DBE30 /* he */, + 42C8FE938EFBD5D6633C190F /* hi */, + FB0BACDCF9A220122AFB87B5 /* hr */, + DAB6D5F45E10BD22F8FBB4BA /* hu */, + 55F92A67B1F0F18431DD759C /* id */, + B346F058E854F6546CE4A113 /* it */, + 4268AFE07F8787F0CA36AA3B /* ja */, + E008571503BEEFC5C2BF5D66 /* ko */, + 1DB6FA3886B89186F55A12E3 /* ms */, + AADF2995CB717FE4D341C944 /* nb */, + 0D33295E02D9501C1D45D615 /* nl */, + AF5862DFC2F44C360067E8C5 /* pl */, + 2E4275BAD2E59FA193904FFC /* pt */, + 1A982A54052D846FC64B7AB5 /* pt_BR */, + A8233D7A6FCDAD9F3E3FFEFC /* pt_PT */, + E8EBD6572BDD22DD2C8C37F0 /* ro */, + 216CA36352B45FBC79C98B8F /* ru */, + CE0FA365A96C1D97CE01B652 /* sk */, + 1D767BA5698A891C36ADF830 /* sv */, + 3A822A5CF223FF6ADFCA9458 /* th */, + F7EFEB4946D6A093B9475CDD /* tr */, + 67BD5ABA8E74D336AE54C0B0 /* uk */, + 651835542B635C74A3D0F711 /* vi */, + BB25E63BA7525B4F9C996E94 /* zh_CN */, + 37CA5C28547C65246AC4EAE6 /* zh_HK */, + CBCF32F12AADFF34B1745273 /* zh_TW */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + F65D01DD8887E3B1B9731DAE /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A00F12FEC785E9E287E42582 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1BA056F14489621B09D65C69 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SDKROOT = iphoneos; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Default; + }; + C88A918BB441623AA489A34D /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = ./GooglePlacesDemos/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SDKROOT)/System/Library/Frameworks", + ); + PRODUCT_NAME = GooglePlacesDemos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)"; + USE_HEADERMAP = NO; + WRAPPER_PREFIX = ""; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 63964CA36C9733EFF27C66CD /* Build configuration list for PBXProject "GooglePlacesDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1BA056F14489621B09D65C69 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; + E489F9A9DC7E458708AB572E /* Build configuration list for PBXNativeTarget "GooglePlacesDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C88A918BB441623AA489A34D /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = B0EA45FFFB815F6F5A3E1BDD /* Project object */; +} diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.h new file mode 100755 index 0000000..37b7d28 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +@interface DemoAppDelegate : UIResponder + +@property(strong, nonatomic) UIWindow *window; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.m new file mode 100755 index 0000000..3e69903 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoAppDelegate.m @@ -0,0 +1,88 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/DemoAppDelegate.h" + +#import +#import + +#import "GooglePlacesDemos/DemoData.h" +#import "GooglePlacesDemos/DemoListViewController.h" +#import "GooglePlacesDemos/SDKDemoAPIKey.h" +#import "GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.h" + +@implementation DemoAppDelegate { + MainSplitViewControllerBehaviorManager *_splitViewManager; +} + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + NSLog(@"Build version: %d", __apple_build_version__); + + // Do a quick check to see if you've provided an API key, in a real app you wouldn't need this but + // for the demo it means we can provide a better error message. + if (!kAPIKey.length) { + // Blow up if APIKeys have not yet been set. + NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier]; + NSString *format = @"Configure APIKeys inside SDKDemoAPIKey.h for your bundle `%@`, see " + @"README.GooglePlacesDemos for more information"; + @throw [NSException exceptionWithName:@"DemoAppDelegate" + reason:[NSString stringWithFormat:format, bundleId] + userInfo:nil]; + } + + // Provide the Places API with your API key. + [GMSPlacesClient provideAPIKey:kAPIKey]; + // Provide the Maps API with your API key. You may not need this in your app, however we do need + // this for the demo app as it uses Maps. + [GMSServices provideAPIKey:kAPIKey]; + + // Log the required open source licenses! Yes, just NSLog-ing them is not enough but is good for + // a demo. + NSLog(@"Google Maps open source licenses:\n%@", [GMSServices openSourceLicenseInfo]); + NSLog(@"Google Places open source licenses:\n%@", [GMSPlacesClient openSourceLicenseInfo]); + + + // Manually create a window. If you are using a storyboard in your own app you can ignore the rest + // of this method. + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + + // Create our view controller with the list of demos. + DemoData *demoData = [[DemoData alloc] init]; + DemoListViewController *masterViewController = + [[DemoListViewController alloc] initWithDemoData:demoData]; + UINavigationController *masterNavigationController = + [[UINavigationController alloc] initWithRootViewController:masterViewController]; + + _splitViewManager = [[MainSplitViewControllerBehaviorManager alloc] init]; + + // Setup the split view controller. + UISplitViewController *splitViewController = [[UISplitViewController alloc] init]; + UIViewController *detailViewController = + [demoData.firstDemo createViewControllerForSplitView:splitViewController]; + splitViewController.delegate = _splitViewManager; + splitViewController.viewControllers = @[ masterNavigationController, detailViewController ]; + self.window.rootViewController = splitViewController; + + [self.window makeKeyAndVisible]; + + return YES; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.h new file mode 100755 index 0000000..fc49675 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.h @@ -0,0 +1,93 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +/* + * This file contains a set of data objects which represent the list of demos which are provided by + * this sample app. + */ + +/** + * Represents a specific demo sample, stores the title and the name of the view controller which + * contains the demo code. + */ +@interface Demo : NSObject + +/** + * The title of the demo. This is displayed in the list of demos. + */ +@property(nonatomic, readonly) NSString *title; + +/** + * Construct a |Demo| object with the specified view controller which contains the demo code. + * + * @param viewControllerClass The class of the view controller to display when the demo is selected + * from the list. + */ +- (instancetype)initWithViewControllerClass:(Class)viewControllerClass; + +/** + * Construct and return a new UIViewController instance which contains the view to present when the + * demo is selected from the list. + * + * @param splitViewController The |UISplitViewController| in which the demo will be presented. NOTE: + * This may be nil. + */ +- (UIViewController *)createViewControllerForSplitView:(UISplitViewController *)splitViewController; + +@end + +/** + * A group of demos which comprise a section in the list of demos. + */ +@interface DemoSection : NSObject + +/** + * The title of the section. + */ +@property(nonatomic, readonly) NSString *title; + +/** + * The list of demos which are contained in the section. + */ +@property(nonatomic, readonly) NSArray *demos; + +/** + * Initialise a |DemoSection| with the specified title and list of demos. + * + * @param title The title of the section. + * @param demos The demos contained in the section. + */ +- (instancetype)initWithTitle:(NSString *)title demos:(NSArray *)demos; + +@end + +/** + * A class which encapsulates the data required to create and display demos. + */ +@interface DemoData : NSObject + +/** + * A list of sections to display. + */ +@property(nonatomic, readonly) NSArray *sections; + +/** + * The first demo to display when launched in side-by-side mode. + */ +@property(nonatomic, readonly) Demo *firstDemo; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.m new file mode 100755 index 0000000..1426048 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoData.m @@ -0,0 +1,112 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/DemoData.h" + +#import "GooglePlacesDemos/Support/BaseDemoViewController.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.h" +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.h" +#import "GooglePlacesDemos/Samples/PhotosViewController.h" +#import "GooglePlacesDemos/Samples/PlacePickerViewController.h" + +@implementation Demo { + Class _viewControllerClass; +} + +- (instancetype)initWithViewControllerClass:(Class)viewControllerClass { + if ((self = [self init])) { + _title = [viewControllerClass demoTitle]; + _viewControllerClass = viewControllerClass; + } + return self; +} + +- (UIViewController *)createViewControllerForSplitView: + (UISplitViewController *)splitViewController { + // Construct the demo view controller. + UIViewController *demoViewController = [[_viewControllerClass alloc] init]; + + // Configure its left bar button item to display the displayModeButtonItem provided by the + // splitViewController. + demoViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem; + demoViewController.navigationItem.leftItemsSupplementBackButton = YES; + + // Wrap the demo in a navigation controller. + UINavigationController *navigationController = + [[UINavigationController alloc] initWithRootViewController:demoViewController]; + + return navigationController; +} + +@end + +@implementation DemoSection + +- (instancetype)initWithTitle:(NSString *)title demos:(NSArray *)demos { + if ((self = [self init])) { + _title = [title copy]; + _demos = [demos copy]; + } + return self; +} + +@end + +@implementation DemoData + +- (instancetype)init { + if ((self = [super init])) { + NSArray *autocompleteDemos = @[ + [[Demo alloc] initWithViewControllerClass:[AutocompleteWithCustomColors class]], + [[Demo alloc] initWithViewControllerClass:[AutocompleteModalViewController class]], + [[Demo alloc] initWithViewControllerClass:[AutocompletePushViewController class]], + [[Demo alloc] initWithViewControllerClass:[AutocompleteWithSearchDisplayController class]], + [[Demo alloc] initWithViewControllerClass:[AutocompleteWithSearchViewController class]], + [[Demo alloc] initWithViewControllerClass:[AutocompleteWithTextFieldController class]], + ]; + + NSArray *otherDemos = @[ + [[Demo alloc] initWithViewControllerClass:[PhotosViewController class]], + [[Demo alloc] initWithViewControllerClass:[PlacePickerViewController class]] + ]; + + + _sections = @[ + [[DemoSection alloc] + initWithTitle:NSLocalizedString(@"Demo.Section.Title.Autocomplete", + @"Title of the autocomplete demo section") + demos:autocompleteDemos], + [[DemoSection alloc] + initWithTitle:NSLocalizedString(@"Demo.Section.Title.Programmatic", + @"Title of the 'Programmatic' demo section") + demos:otherDemos], + ]; + } + return self; +} + +- (Demo *)firstDemo { + return _sections[0].demos[0]; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.h new file mode 100755 index 0000000..6c1d776 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.h @@ -0,0 +1,32 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +#import "GooglePlacesDemos/DemoData.h" + +/** + * The class which displays the list of demos. + */ +@interface DemoListViewController : UITableViewController + +/** + * Construct a new list controller using the provided demo data. + * + * @param demoData The demo data to display in the list. + */ +- (instancetype)initWithDemoData:(DemoData *)demoData; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.m new file mode 100755 index 0000000..fe9ca49 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/DemoListViewController.m @@ -0,0 +1,100 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/DemoListViewController.h" + +#import + +// The cell reuse identifier we are going to use. +static NSString *const kCellIdentifier = @"DemoCellIdentifier"; + +@implementation DemoListViewController { + DemoData *_demoData; +} + +- (instancetype)initWithDemoData:(DemoData *)demoData { + if ((self = [self init])) { + _demoData = demoData; + NSString *titleFormat = + NSLocalizedString(@"App.NameAndVersion", + @"The name of the app to display in a navigation bar along with a " + @"placeholder for the SDK version number"); + self.title = [NSString stringWithFormat:titleFormat, [GMSPlacesClient SDKVersion]]; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Register a plain old UITableViewCell as this will be sufficient for our list. + [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kCellIdentifier]; +} + +/** + * Private method which is called when a demo is selected. Constructs the demo view controller and + * displays it. + * + * @param demo The demo to show. + */ +- (void)showDemo:(Demo *)demo { + // Ask the demo to give us the view controller which contains the demo. + UIViewController *viewController = + [demo createViewControllerForSplitView:self.splitViewController]; + + [self showDetailViewController:viewController sender:self]; +} + +#pragma mark - UITableViewDataSource/Delegate + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return _demoData.sections.count; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return _demoData.sections[section].demos.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView + cellForRowAtIndexPath:(NSIndexPath *)indexPath { + // Dequeue a table view cell to use. + UITableViewCell *cell = + [tableView dequeueReusableCellWithIdentifier:kCellIdentifier forIndexPath:indexPath]; + + // Grab the demo object. + Demo *demo = _demoData.sections[indexPath.section].demos[indexPath.row]; + + // Configure the demo title on the cell. + cell.textLabel.text = demo.title; + + return cell; +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { + return _demoData.sections[section].title; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + // Get the demo which was selected. + Demo *demo = _demoData.sections[indexPath.section].demos[indexPath.row]; + + [self showDemo:demo]; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Info.plist b/Pods/GooglePlaces/Example/GooglePlacesDemos/Info.plist new file mode 100755 index 0000000..5bb4912 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Info.plist @@ -0,0 +1,53 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleIcons~ipad + + CFBundleIdentifier + com.example.GooglePlacesDemos + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSApplicationCategoryType + + LSRequiresIPhoneOS + + NSLocationWhenInUseUsageDescription + Show your location on a map + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationLandscapeLeft + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/Base.lproj/LaunchScreen.storyboard b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/Base.lproj/LaunchScreen.storyboard new file mode 100755 index 0000000..1eb368c --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Contents.json b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..2cadbf3 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Places-API-Demo-App_120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Places-API-Demo-App_180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Places-API-Demo-App_76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Places-API-Demo-App_152.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Places-API-Demo-App_167.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_120.png b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_120.png new file mode 100755 index 0000000..79d7dc9 Binary files /dev/null and b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_120.png differ diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_152.png b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_152.png new file mode 100755 index 0000000..0151e0d Binary files /dev/null and b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_152.png differ diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_167.png b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_167.png new file mode 100755 index 0000000..cee6f35 Binary files /dev/null and b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_167.png differ diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_180.png b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_180.png new file mode 100755 index 0000000..969960e Binary files /dev/null and b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_180.png differ diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_76.png b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_76.png new file mode 100755 index 0000000..94600cd Binary files /dev/null and b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/AppIcon.appiconset/Places-API-Demo-App_76.png differ diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/Contents.json b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/PlacesDemoAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ar.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ar.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ca.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ca.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ca.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/cs.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/cs.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/da.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/da.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/da.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/de.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/de.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/de.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/el.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/el.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/el.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_AU.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_AU.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_AU.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_GB.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_GB.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_GB.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_IN.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_IN.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/en_IN.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_419.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_419.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_419.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_MX.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_MX.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/es_MX.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fi.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fi.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr_CA.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr_CA.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/fr_CA.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/he.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/he.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/he.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hi.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hi.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hr.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hr.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hr.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hu.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hu.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/hu.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/id.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/id.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/id.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/it.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/it.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/it.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ja.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ja.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ko.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ko.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ko.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ms.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ms.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ms.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nb.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nb.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nl.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nl.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pl.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pl.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_BR.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_BR.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_BR.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_PT.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_PT.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/pt_PT.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ro.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ro.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ru.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ru.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sk.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sk.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sv.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sv.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/th.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/th.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/th.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/tr.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/tr.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/uk.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/uk.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/uk.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/vi.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/vi.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_CN.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_CN.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_CN.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_HK.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_HK.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_HK.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_TW.lproj/Localizable.strings b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_TW.lproj/Localizable.strings new file mode 100755 index 0000000..97d1454 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Resources/zh_TW.lproj/Localizable.strings @@ -0,0 +1,55 @@ +// NOTE: This is the english localization and has been copied to all languages. The reason for doing +// this is it signals to iOS that the app "supports" all of these languages. This is helpful for a +// demo as it allows you to try out the localization features of the Places API. In a shipping app +// you should never do this, it is for demonstration purposes only. + + +// The name of the app to display in a navigation bar along with a placeholder for the SDK version number. +"App.NameAndVersion"="Places Demos: %1$@"; + +// Title of the full-screen autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.FullScreen"="Full-Screen Autocomplete"; +// Title of the pushed autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Push"="Push Autocomplete"; +// Title of the UISearchController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchController"="UISearchController"; +// Title of the UISearchDisplayController autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UISearchDisplayController"="UISearchDisplayController"; +// Title of the UITextField autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.UITextField"="UITextField"; +// Title of the Styling autocomplete demo for display in a list or nav header +"Demo.Title.Autocomplete.Styling"="Custom Autocomplete Styling"; +// Title of the photos demo for display in a list or nav header +"Demo.Title.Photos"="Photos"; +// Title of the 'select place' button within the photos demo +"Demo.Title.Photos.SelectPlace"="Select Place"; +// Title of the Place Picker demo for displaying the picker in a popover, navigation controller, or modally. +"Demo.Title.PlacePicker.ViewController"="Place Picker View Controller"; +// Title of the autocomplete demo section +"Demo.Section.Title.Autocomplete"="Autocomplete"; +// Title of the 'Programmatic' demo section +"Demo.Section.Title.Programmatic"="Programmatic APIs"; + +// Button title for 'show autocomplete widget' +"Demo.Content.Autocomplete.ShowWidgetButton"="Show Autocomplete Widget"; +// Prompt to enter text for autocomplete demo +"Demo.Content.Autocomplete.EnterTextPrompt"="Enter Autocomplete Text Here"; +// Format string for 'autocomplete failed with error' message +"Demo.Content.Autocomplete.FailedErrorMessage"="Autocomplete failed with error: %1$@"; +// String for 'autocomplete canceled message' +"Demo.Content.Autocomplete.WasCanceledMessage"="Autocomplete was canceled"; +// Button title for the 'Yellow and Brown' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown"="Yellow and Brown"; +// Button title for the 'White on Black' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack"="White on Black"; +// Button title for the 'Blue Colors' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.BlueColors"="Blue Colors"; +// Button title for the 'Hot Dog Stand' styled autocomplete widget. +"Demo.Content.Autocomplete.Styling.Colors.HotDogStand"="Hot Dog Stand"; +// Button title for the 'Popover' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Popover"="Popover"; +// Button title for the 'Navigation' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Navigation"="Navigation"; +// Button title for the 'Modal' view of the place picker. +"Demo.Content.PlacePicker.ViewController.Modal"="Modal"; + diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/SDKDemoAPIKey.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/SDKDemoAPIKey.h new file mode 100755 index 0000000..bd8f211 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/SDKDemoAPIKey.h @@ -0,0 +1,25 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +/** + * To use GooglePlacesDemos, please register an API Key for your application and set it here. Your + * API Key should be kept private. + * + * See documentation on getting an API Key for your API Project here: + * https://developers.google.com/places/ios-api/start#get-key + */ + +#error Register your API key and insert here, then delete this line. +static NSString *const kAPIKey = @""; diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h new file mode 100755 index 0000000..bbf43eb --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h @@ -0,0 +1,51 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Support/BaseDemoViewController.h" + +#import + +/** + * All other autocomplete demo classes inherit from this class. This class optionally adds a button + * to present the autocomplete widget, and displays the results when these are selected. + */ +@interface AutocompleteBaseViewController : BaseDemoViewController + +/** + * Build a UIButton to display the autocomplete widget and add it to the UI. This should be called + * only if the demo requires such a button, e.g. demos for modal presentation of widgets would use + * this, while a UITextField demo would not. + * + * @param selector The selector to send to self when the button is tapped. + * + * @return The UIButton which was added to the UI. + */ +- (UIButton *)createShowAutocompleteButton:(SEL)selector; + +/** + * Add the result display view below the specified view. This should be called after the rest of the + * UI has been configured. + * + * @param view The view to add the results below, this may be nil to indicate that the result view + * should fill the parent. + */ +- (void)addResultViewBelow:(UIView *)view; + +- (void)autocompleteDidSelectPlace:(GMSPlace *)place; +- (void)autocompleteDidFail:(NSError *)error; +- (void)autocompleteDidCancel; +- (void)showCustomMessageInResultPane:(NSString *)message; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.m new file mode 100755 index 0000000..55928f5 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.m @@ -0,0 +1,122 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +@implementation AutocompleteBaseViewController { + UITextView *_textView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Configure a background color. + self.view.backgroundColor = [UIColor whiteColor]; + + // Create a text view. + _textView = [[UITextView alloc] init]; + _textView.editable = NO; + _textView.translatesAutoresizingMaskIntoConstraints = NO; +} + +- (UIButton *)createShowAutocompleteButton:(SEL)selector { + // Create a button to show the autocomplete widget. + UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; + [button setTitle:NSLocalizedString(@"Demo.Content.Autocomplete.ShowWidgetButton", + @"Button title for 'show autocomplete widget'") + forState:UIControlStateNormal]; + [button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside]; + button.translatesAutoresizingMaskIntoConstraints = NO; + [self.view addSubview:button]; + // Position the button from the top of the view. + [NSLayoutConstraint constraintWithItem:button + attribute:NSLayoutAttributeTop + relatedBy:NSLayoutRelationEqual + toItem:self.topLayoutGuide + attribute:NSLayoutAttributeBottom + multiplier:1 + constant:8].active = YES; + // Centre it horizontally. + [NSLayoutConstraint constraintWithItem:button + attribute:NSLayoutAttributeCenterX + relatedBy:NSLayoutRelationEqual + toItem:self.view + attribute:NSLayoutAttributeCenterX + multiplier:1 + constant:0].active = YES; + + return button; +} + +- (void)addResultViewBelow:(UIView *)view { + NSAssert(_textView.superview == nil, @"%s should not be called twice", sel_getName(_cmd)); + [self.view addSubview:_textView]; + // Position it horizontally so it fills the parent. + [self.view + addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"H:|-(0)-[_textView]-(0)-|" + options:0 + metrics:nil + views:NSDictionaryOfVariableBindings(_textView)]]; + // If we have a view place it below that. + if (view) { + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:[view]-[_textView]-(0)-|" + options:0 + metrics:nil + views:NSDictionaryOfVariableBindings( + view, _textView)]]; + } else { + // Otherwise make it fill the parent vertically. + [self.view + addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:|-(0)-[_textView]-(0)-|" + options:0 + metrics:nil + views:NSDictionaryOfVariableBindings(_textView)]]; + } +} + +- (void)autocompleteDidSelectPlace:(GMSPlace *)place { + NSMutableAttributedString *text = + [[NSMutableAttributedString alloc] initWithString:[place description]]; + if (place.attributions) { + [text appendAttributedString:[[NSAttributedString alloc] initWithString:@"\n\n"]]; + [text appendAttributedString:place.attributions]; + } + _textView.attributedText = text; +} + +- (void)autocompleteDidFail:(NSError *)error { + NSString *formatString = + NSLocalizedString(@"Demo.Content.Autocomplete.FailedErrorMessage", + @"Format string for 'autocomplete failed with error' message"); + _textView.text = [NSString stringWithFormat:formatString, error]; +} + +- (void)autocompleteDidCancel { + _textView.text = NSLocalizedString(@"Demo.Content.Autocomplete.WasCanceledMessage", + @"String for 'autocomplete canceled message'"); +} + +- (void)showCustomMessageInResultPane:(NSString *)message { + _textView.text = message; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.h new file mode 100755 index 0000000..dceb663 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/** + * Demo showing a modally presented Autocomplete view controller. + */ +@interface AutocompleteModalViewController : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.m new file mode 100755 index 0000000..a4de609 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.m @@ -0,0 +1,86 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteModalViewController.h" + +#import + +@interface AutocompleteModalViewController () +@end + +@implementation AutocompleteModalViewController + ++ (NSString *)demoTitle { + return NSLocalizedString( + @"Demo.Title.Autocomplete.FullScreen", + @"Title of the full-screen autocomplete demo for display in a list or nav header"); +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Configure the UI. Tell our superclass we want a button and a result view below that. + UIButton *button = + [self createShowAutocompleteButton:@selector(showAutocompleteWidgetButtonTapped)]; + [self addResultViewBelow:button]; +} + +#pragma mark - Actions + +- (IBAction)showAutocompleteWidgetButtonTapped { + // When the button is pressed modally present the autocomplete view controller. + GMSAutocompleteViewController *autocompleteViewController = + [[GMSAutocompleteViewController alloc] init]; + autocompleteViewController.delegate = self; + [self presentViewController:autocompleteViewController animated:YES completion:nil]; +} + +#pragma mark - GMSAutocompleteViewControllerDelegate + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didAutocompleteWithPlace:(GMSPlace *)place { + // Dismiss the view controller and tell our superclass to populate the result view. + [viewController dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidSelectPlace:place]; +} + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didFailAutocompleteWithError:(NSError *)error { + // Dismiss the view controller and notify our superclass of the failure. + [viewController dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidFail:error]; +} + +- (void)wasCancelled:(GMSAutocompleteViewController *)viewController { + // Dismiss the controller and show a message that it was canceled. + [viewController dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidCancel]; +} + +- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; +} + +- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h new file mode 100755 index 0000000..64d87e1 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/** + * Demo showing a Autocomplete view controller pushed on the navigation stack. + */ +@interface AutocompletePushViewController : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.m new file mode 100755 index 0000000..ad0e156 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.m @@ -0,0 +1,94 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h" + +#import + +@interface AutocompletePushViewController () +@property(nonatomic, strong) GMSAutocompleteViewController *autocompleteViewController; +@end + +@implementation AutocompletePushViewController + ++ (NSString *)demoTitle { + return NSLocalizedString( + @"Demo.Title.Autocomplete.Push", + @"Title of the pushed autocomplete demo for display in a list or nav header"); +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Configure the UI. Tell our superclass we want a button and a result view below that. + UIButton *button = + [self createShowAutocompleteButton:@selector(showAutocompleteWidgetButtonTapped)]; + [self addResultViewBelow:button]; +} + +#pragma mark - Getters/Setters + +- (GMSAutocompleteViewController *)autocompleteViewController { + if (_autocompleteViewController == nil) { + _autocompleteViewController = [[GMSAutocompleteViewController alloc] init]; + _autocompleteViewController.delegate = self; + } + return _autocompleteViewController; +} + +#pragma mark - Actions + +- (IBAction)showAutocompleteWidgetButtonTapped { + // When the button is tapped just push the autocomplete view controller onto the stack. + [self.navigationController pushViewController:self.autocompleteViewController animated:YES]; +} + +#pragma mark - GMSAutocompleteViewControllerDelegate + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didAutocompleteWithPlace:(GMSPlace *)place { + // Dismiss the view controller and tell our superclass to populate the result view. + [self.navigationController popToViewController:self animated:YES]; + [self autocompleteDidSelectPlace:place]; +} + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didFailAutocompleteWithError:(NSError *)error { + // Dismiss the view controller and notify our superclass of the failure. + [self.navigationController popToViewController:self animated:YES]; + [self autocompleteDidFail:error]; +} + +- (void)wasCancelled:(GMSAutocompleteViewController *)viewController { + // Dismiss the controller and show a message that it was canceled. + [self.navigationController popToViewController:self animated:YES]; + [self autocompleteDidCancel]; +} + +- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; +} + +- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.h new file mode 100755 index 0000000..4f13d5f --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/* + * SDK Demo showing how to customise colors in the full-screen Autocomplete Widget. + */ +@interface AutocompleteWithCustomColors : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.m new file mode 100755 index 0000000..2520a9c --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.m @@ -0,0 +1,298 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithCustomColors.h" + +#import + +/** Height of buttons in this controller's UI */ +static const CGFloat kButtonHeight = 44.0f; + +/** + * Simple subclass of GMSAutocompleteViewController solely for the purpose of localising appearance + * proxy changes to this part of the demo app. + */ +@interface GMSStyledAutocompleteViewController : GMSAutocompleteViewController +@end + +@implementation GMSStyledAutocompleteViewController +@end + +@interface AutocompleteWithCustomColors () +@end + +@implementation AutocompleteWithCustomColors { + UIButton *_brownThemeButton; + UIButton *_blackThemeButton; + UIButton *_blueThemeButton; + UIButton *_hotDogThemeButton; + + UIColor *_backgroundColor; + UIColor *_darkBackgroundColor; + UIColor *_primaryTextColor; + UIColor *_highlightColor; + UIColor *_secondaryColor; + UIColor *_separatorColor; + UIColor *_tintColor; + UIColor *_searchBarTintColor; + UIColor *_selectedTableCellBackgroundColor; +} + ++ (NSString *)demoTitle { + return NSLocalizedString( + @"Demo.Title.Autocomplete.Styling", + @"Title of the Styling autocomplete demo for display in a list or nav header"); +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.view.backgroundColor = [UIColor whiteColor]; + + NSString *titleYellowAndBrown = + NSLocalizedString(@"Demo.Content.Autocomplete.Styling.Colors.YellowAndBrown", + @"Button title for the 'Yellow and Brown' styled autocomplete widget."); + NSString *titleWhiteOnBlack = + NSLocalizedString(@"Demo.Content.Autocomplete.Styling.Colors.WhiteOnBlack", + @"Button title for the 'WhiteOnBlack' styled autocomplete widget."); + NSString *titleBlueColors = + NSLocalizedString(@"Demo.Content.Autocomplete.Styling.Colors.BlueColors", + @"Button title for the 'BlueColors' styled autocomplete widget."); + NSString *titleHotDogStand = + NSLocalizedString(@"Demo.Content.Autocomplete.Styling.Colors.HotDogStand", + @"Button title for the 'Hot Dog Stand' styled autocomplete widget."); + + CGFloat nextControlY = 70.0f; + _brownThemeButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [_brownThemeButton setTitle:titleYellowAndBrown forState:UIControlStateNormal]; + _brownThemeButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + _brownThemeButton.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [_brownThemeButton addTarget:self + action:@selector(didTapButton:) + forControlEvents:UIControlEventTouchUpInside]; + nextControlY += kButtonHeight; + + _blackThemeButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [_blackThemeButton setTitle:titleWhiteOnBlack forState:UIControlStateNormal]; + _blackThemeButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + _blackThemeButton.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [_blackThemeButton addTarget:self + action:@selector(didTapButton:) + forControlEvents:UIControlEventTouchUpInside]; + nextControlY += kButtonHeight; + + _blueThemeButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [_blueThemeButton setTitle:titleBlueColors forState:UIControlStateNormal]; + _blueThemeButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + _blueThemeButton.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [_blueThemeButton addTarget:self + action:@selector(didTapButton:) + forControlEvents:UIControlEventTouchUpInside]; + nextControlY += kButtonHeight; + + _hotDogThemeButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [_hotDogThemeButton setTitle:titleHotDogStand forState:UIControlStateNormal]; + _hotDogThemeButton.frame = + CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + _hotDogThemeButton.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [_hotDogThemeButton addTarget:self + action:@selector(didTapButton:) + forControlEvents:UIControlEventTouchUpInside]; + + [self.view addSubview:_brownThemeButton]; + [self.view addSubview:_blackThemeButton]; + [self.view addSubview:_blueThemeButton]; + [self.view addSubview:_hotDogThemeButton]; + + [self addResultViewBelow:_hotDogThemeButton]; + + self.definesPresentationContext = YES; +} + +- (void)didTapButton:(UIButton *)button { + if (button == _brownThemeButton) { + _backgroundColor = [UIColor colorWithRed:215.0f / 255.0f + green:204.0f / 255.0f + blue:200.0f / 255.0f + alpha:1.0f]; + _selectedTableCellBackgroundColor = [UIColor colorWithRed:236.0f / 255.0f + green:225.0f / 255.0f + blue:220.0f / 255.0f + alpha:1.0f]; + _darkBackgroundColor = + [UIColor colorWithRed:93.0f / 255.0f green:64.0f / 255.0f blue:55.0f / 255.0f alpha:1.0f]; + _primaryTextColor = [UIColor colorWithWhite:0.33f alpha:1.0f]; + + _highlightColor = + [UIColor colorWithRed:255.0f / 255.0f green:235.0f / 255.0f blue:0.0f / 255.0f alpha:1.0f]; + _secondaryColor = [UIColor colorWithWhite:114.0f / 255.0f alpha:1.0f]; + _tintColor = [UIColor colorWithRed:219 / 255.0f green:207 / 255.0f blue:28 / 255.0f alpha:1.0f]; + _searchBarTintColor = [UIColor yellowColor]; + _separatorColor = [UIColor colorWithWhite:182.0f / 255.0f alpha:1.0f]; + } else if (button == _blueThemeButton) { + _backgroundColor = [UIColor colorWithRed:225.0f / 255.0f + green:241.0f / 255.0f + blue:252.0f / 255.0f + alpha:1.0f]; + _selectedTableCellBackgroundColor = [UIColor colorWithRed:213.0f / 255.0f + green:219.0f / 255.0f + blue:230.0f / 255.0f + alpha:1.0f]; + _darkBackgroundColor = [UIColor colorWithRed:187.0f / 255.0f + green:222.0f / 255.0f + blue:248.0f / 255.0f + alpha:1.0f]; + _primaryTextColor = [UIColor colorWithWhite:0.5f alpha:1.0f]; + _highlightColor = + [UIColor colorWithRed:76.0f / 255.0f green:175.0f / 255.0f blue:248.0f / 255.0f alpha:1.0f]; + _secondaryColor = [UIColor colorWithWhite:0.5f alpha:0.65f]; + _tintColor = + [UIColor colorWithRed:0 / 255.0f green:142 / 255.0f blue:248.0f / 255.0f alpha:1.0f]; + _searchBarTintColor = _tintColor; + _separatorColor = [UIColor colorWithWhite:0.5f alpha:0.65f]; + } else if (button == _blackThemeButton) { + _backgroundColor = [UIColor colorWithWhite:0.25f alpha:1.0f]; + _selectedTableCellBackgroundColor = [UIColor colorWithWhite:0.35f alpha:1.0f]; + _darkBackgroundColor = [UIColor colorWithWhite:0.2f alpha:1.0f]; + _primaryTextColor = [UIColor whiteColor]; + _highlightColor = [UIColor colorWithRed:0.75f green:1.0f blue:0.75f alpha:1.0f]; + _secondaryColor = [UIColor colorWithWhite:1.0f alpha:0.5f]; + _tintColor = [UIColor whiteColor]; + _searchBarTintColor = _tintColor; + _separatorColor = [UIColor colorWithRed:0.5f green:0.75f blue:0.5f alpha:0.30f]; + } else if (button == _hotDogThemeButton) { + _backgroundColor = [UIColor yellowColor]; + _selectedTableCellBackgroundColor = [UIColor whiteColor]; + _darkBackgroundColor = [UIColor redColor]; + _primaryTextColor = [UIColor blackColor]; + _highlightColor = [UIColor redColor]; + _secondaryColor = [UIColor colorWithWhite:0.0f alpha:0.6f]; + _tintColor = [UIColor redColor]; + _searchBarTintColor = [UIColor whiteColor]; + _separatorColor = [UIColor redColor]; + } + [self presentAutocompleteController]; +} + +- (void)presentAutocompleteController { + // Use UIAppearance proxies to change the appearance of UI controls in + // GMSAutocompleteViewController. Here we use appearanceWhenContainedIn to localise changes to + // just this part of the Demo app. This will generally not be necessary in a real application as + // you will probably want the same theme to apply to all elements in your app. + UIActivityIndicatorView *appearence = [UIActivityIndicatorView + appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil]; + [appearence setColor:_primaryTextColor]; + + [[UINavigationBar appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil] + setBarTintColor:_darkBackgroundColor]; + [[UINavigationBar appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil] + setTintColor:_searchBarTintColor]; + + // Color of typed text in search bar. + NSDictionary *searchBarTextAttributes = @{ + NSForegroundColorAttributeName : _searchBarTintColor, + NSFontAttributeName : [UIFont systemFontOfSize:[UIFont systemFontSize]] + }; + [[UITextField appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil] + setDefaultTextAttributes:searchBarTextAttributes]; + + // Color of the "Search" placeholder text in search bar. For this example, we'll make it the same + // as the bar tint color but with added transparency. + CGFloat increasedAlpha = CGColorGetAlpha(_searchBarTintColor.CGColor) * 0.75f; + UIColor *placeHolderColor = [_searchBarTintColor colorWithAlphaComponent:increasedAlpha]; + + NSDictionary *placeholderAttributes = @{ + NSForegroundColorAttributeName : placeHolderColor, + NSFontAttributeName : [UIFont systemFontOfSize:[UIFont systemFontSize]] + }; + NSAttributedString *attributedPlaceholder = + [[NSAttributedString alloc] initWithString:@"Search" attributes:placeholderAttributes]; + + [[UITextField appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil] + setAttributedPlaceholder:attributedPlaceholder]; + + // Change the background color of selected table cells. + UIView *selectedBackgroundView = [[UIView alloc] init]; + selectedBackgroundView.backgroundColor = _selectedTableCellBackgroundColor; + id tableCellAppearance = + [UITableViewCell appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil]; + [tableCellAppearance setSelectedBackgroundView:selectedBackgroundView]; + + // Depending on the navigation bar background color, it might also be necessary to customise the + // icons displayed in the search bar to something other than the default. The + // setupSearchBarCustomIcons method contains example code to do this. + + GMSAutocompleteViewController *acController = [[GMSStyledAutocompleteViewController alloc] init]; + acController.delegate = self; + acController.tableCellBackgroundColor = _backgroundColor; + acController.tableCellSeparatorColor = _separatorColor; + acController.primaryTextColor = _primaryTextColor; + acController.primaryTextHighlightColor = _highlightColor; + acController.secondaryTextColor = _secondaryColor; + acController.tintColor = _tintColor; + + [self presentViewController:acController animated:YES completion:nil]; +} + +/* + * This method shows how to replace the "search" and "clear text" icons in the search bar with + * custom icons in the case where the default gray icons don't match a custom background. + */ +- (void)setupSearchBarCustomIcons { + id searchBarAppearanceProxy = + [UISearchBar appearanceWhenContainedIn:[GMSStyledAutocompleteViewController class], nil]; + [searchBarAppearanceProxy setImage:[UIImage imageNamed:@"custom_clear_x_high"] + forSearchBarIcon:UISearchBarIconClear + state:UIControlStateHighlighted]; + [searchBarAppearanceProxy setImage:[UIImage imageNamed:@"custom_clear_x"] + forSearchBarIcon:UISearchBarIconClear + state:UIControlStateNormal]; + [searchBarAppearanceProxy setImage:[UIImage imageNamed:@"custom_search"] + forSearchBarIcon:UISearchBarIconSearch + state:UIControlStateNormal]; +} + +#pragma mark - GMSAutocompleteViewControllerDelegate + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didAutocompleteWithPlace:(GMSPlace *)place { + [self dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidSelectPlace:place]; +} + +- (void)viewController:(GMSAutocompleteViewController *)viewController + didFailAutocompleteWithError:(NSError *)error { + [self dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidFail:error]; +} + +- (void)wasCancelled:(GMSAutocompleteViewController *)viewController { + [self dismissViewControllerAnimated:YES completion:nil]; + [self autocompleteDidCancel]; +} + +- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; +} + +- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.h new file mode 100755 index 0000000..335ed41 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/* + * A demo showing how to use GMSAutocompleteViewController with a UISearchDisplayController. + */ +@interface AutocompleteWithSearchDisplayController : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.m new file mode 100755 index 0000000..7156d50 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.m @@ -0,0 +1,116 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchDisplayController.h" + +#import + +/* The default height of a UISearchBar. */ +static CGFloat kSearchBarHeight = 44.0f; + +@interface AutocompleteWithSearchDisplayController () +@end + +@implementation AutocompleteWithSearchDisplayController { + UISearchDisplayController *_searchDisplayController; + GMSAutocompleteTableDataSource *_tableDataSource; +} + ++ (NSString *)demoTitle { + return NSLocalizedString(@"Demo.Title.Autocomplete.UISearchDisplayController", + @"Title of the UISearchDisplayController autocomplete demo for display " + @"in a list or nav header"); +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Don't overlay the status bar with the search bar when active. + self.edgesForExtendedLayout = UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight; + + // Create and setup the search bar. + UISearchBar *searchBar = [[UISearchBar alloc] + initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, kSearchBarHeight)]; + searchBar.autoresizingMask = + UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; + + // Construct the autocomplete table datasource. + _tableDataSource = [[GMSAutocompleteTableDataSource alloc] init]; + _tableDataSource.delegate = self; + + // Configure a UISearchDisplayController. + _searchDisplayController = + [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]; + _searchDisplayController.searchResultsDataSource = _tableDataSource; + _searchDisplayController.searchResultsDelegate = _tableDataSource; + _searchDisplayController.delegate = self; + _searchDisplayController.displaysSearchBarInNavigationBar = NO; + + // Add the search bar and tell our superclass to add the result panel below it. + [self.view addSubview:searchBar]; + [self addResultViewBelow:searchBar]; +} + +#pragma mark - UISearchDisplayDelegate + +- (BOOL)searchDisplayController:(UISearchDisplayController *)controller + shouldReloadTableForSearchString:(NSString *)searchString { + // Notify the autocomplete table data source of the change in text. + [_tableDataSource sourceTextHasChanged:searchString]; + return NO; +} + +- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller { + [_tableDataSource sourceTextHasChanged:@""]; +} + +#pragma mark - GMSAutocompleteTableDataSourceDelegate + +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didAutocompleteWithPlace:(GMSPlace *)place { + // Tell our superclass to show the results, and dismiss the search controller. + [self autocompleteDidSelectPlace:place]; + [_searchDisplayController setActive:NO animated:YES]; +} + +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didFailAutocompleteWithError:(NSError *)error { + // Tell our superclass to show the error, and dismiss the search controller. + [self autocompleteDidFail:error]; + [_searchDisplayController setActive:NO animated:YES]; +} + +- (void)didRequestAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource { + // Start the network activity indicator and reload the table of results. + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; + [_searchDisplayController.searchResultsTableView reloadData]; +} + +- (void)didUpdateAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource { + // Stop the network activity indicator and reload the table of results. + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; + [_searchDisplayController.searchResultsTableView reloadData]; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.h new file mode 100755 index 0000000..5b0a4ca --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/** + * Demo showing the use of GMSAutocompleteViewController with a UISearchController. + */ +@interface AutocompleteWithSearchViewController : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.m new file mode 100755 index 0000000..a39ac3c --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.m @@ -0,0 +1,101 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithSearchViewController.h" + +#import + +@interface AutocompleteWithSearchViewController () +@end + +@implementation AutocompleteWithSearchViewController { + UISearchController *_searchController; + GMSAutocompleteResultsViewController *_acViewController; +} + ++ (NSString *)demoTitle { + return NSLocalizedString( + @"Demo.Title.Autocomplete.UISearchController", + @"Title of the UISearchController autocomplete demo for display in a list or nav header"); +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + _acViewController = [[GMSAutocompleteResultsViewController alloc] init]; + _acViewController.delegate = self; + + _searchController = + [[UISearchController alloc] initWithSearchResultsController:_acViewController]; + _searchController.hidesNavigationBarDuringPresentation = NO; + _searchController.dimsBackgroundDuringPresentation = YES; + + _searchController.searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; + _searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal; + + [_searchController.searchBar sizeToFit]; + self.navigationItem.titleView = _searchController.searchBar; + self.definesPresentationContext = YES; + + // Work around a UISearchController bug that doesn't reposition the table view correctly when + // rotating to landscape. + self.edgesForExtendedLayout = UIRectEdgeAll; + self.extendedLayoutIncludesOpaqueBars = YES; + + _searchController.searchResultsUpdater = _acViewController; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + _searchController.modalPresentationStyle = UIModalPresentationPopover; + } else { + _searchController.modalPresentationStyle = UIModalPresentationFullScreen; + } + + [self addResultViewBelow:nil]; +} + +#pragma mark - GMSAutocompleteResultsViewControllerDelegate + +- (void)resultsController:(GMSAutocompleteResultsViewController *)resultsController + didAutocompleteWithPlace:(GMSPlace *)place { + // Display the results and dismiss the search controller. + [_searchController setActive:NO]; + [self autocompleteDidSelectPlace:place]; +} + +- (void)resultsController:(GMSAutocompleteResultsViewController *)resultsController + didFailAutocompleteWithError:(NSError *)error { + // Display the error and dismiss the search controller. + [_searchController setActive:NO]; + [self autocompleteDidFail:error]; +} + +// Show and hide the network activity indicator when we start/stop loading results. + +- (void)didRequestAutocompletePredictionsForResultsController: + (GMSAutocompleteResultsViewController *)resultsController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; +} + +- (void)didUpdateAutocompletePredictionsForResultsController: + (GMSAutocompleteResultsViewController *)resultsController { + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.h new file mode 100755 index 0000000..057fca2 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.h @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteBaseViewController.h" + +/* + * This demo shows how to manually present a UITableViewController and supply it with autocomplete + * text from an arbitrary source, in this case a UITextField. + */ +@interface AutocompleteWithTextFieldController : AutocompleteBaseViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.m new file mode 100755 index 0000000..d4c25ae --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.m @@ -0,0 +1,192 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/Autocomplete/AutocompleteWithTextFieldController.h" + +#import + +@interface AutocompleteWithTextFieldController () +@end + +@implementation AutocompleteWithTextFieldController { + UITextField *_searchField; + UITableViewController *_resultsController; + GMSAutocompleteTableDataSource *_tableDataSource; +} + ++ (NSString *)demoTitle { + return NSLocalizedString( + @"Demo.Title.Autocomplete.UITextField", + @"Title of the UITextField autocomplete demo for display in a list or nav header"); +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + + // Configure the text field to our linking. + _searchField = [[UITextField alloc] initWithFrame:CGRectZero]; + _searchField.translatesAutoresizingMaskIntoConstraints = NO; + _searchField.borderStyle = UITextBorderStyleNone; + _searchField.backgroundColor = [UIColor whiteColor]; + _searchField.placeholder = NSLocalizedString(@"Demo.Content.Autocomplete.EnterTextPrompt", + @"Prompt to enter text for autocomplete demo"); + _searchField.autocorrectionType = UITextAutocorrectionTypeNo; + _searchField.keyboardType = UIKeyboardTypeDefault; + _searchField.returnKeyType = UIReturnKeyDone; + _searchField.clearButtonMode = UITextFieldViewModeWhileEditing; + _searchField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; + + [_searchField addTarget:self + action:@selector(textFieldDidChange:) + forControlEvents:UIControlEventEditingChanged]; + _searchField.delegate = self; + + // Setup the results view controller. + _tableDataSource = [[GMSAutocompleteTableDataSource alloc] init]; + _tableDataSource.delegate = self; + _resultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; + _resultsController.tableView.delegate = _tableDataSource; + _resultsController.tableView.dataSource = _tableDataSource; + + [self.view addSubview:_searchField]; + // Use auto layout to place the text field, as we need to take the top layout guide into + // consideration. + [self.view + addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"H:|-[_searchField]-|" + options:0 + metrics:nil + views:NSDictionaryOfVariableBindings(_searchField)]]; + [NSLayoutConstraint constraintWithItem:_searchField + attribute:NSLayoutAttributeTop + relatedBy:NSLayoutRelationEqual + toItem:self.topLayoutGuide + attribute:NSLayoutAttributeBottom + multiplier:1 + constant:8].active = YES; + + [self addResultViewBelow:_searchField]; +} + +#pragma mark - GMSAutocompleteTableDataSourceDelegate + +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didAutocompleteWithPlace:(GMSPlace *)place { + [_searchField resignFirstResponder]; + [self autocompleteDidSelectPlace:place]; + _searchField.text = place.name; +} + +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didFailAutocompleteWithError:(NSError *)error { + [_searchField resignFirstResponder]; + [self autocompleteDidFail:error]; + _searchField.text = @""; +} + +- (void)didRequestAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; + [_resultsController.tableView reloadData]; +} + +- (void)didUpdateAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource { + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; + [_resultsController.tableView reloadData]; +} + +#pragma mark - UITextFieldDelegate + +- (void)textFieldDidBeginEditing:(UITextField *)textField { + [self addChildViewController:_resultsController]; + + // Add the results controller. + _resultsController.view.translatesAutoresizingMaskIntoConstraints = NO; + _resultsController.view.alpha = 0.0f; + [self.view addSubview:_resultsController.view]; + + // Layout it out below the text field using auto layout. + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:[_searchField]-[resultView]-(0)-|" + options:0 + metrics:nil + views:@{ + @"_searchField" : _searchField, + @"resultView" : _resultsController.view + }]]; + [self.view addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"H:|-(0)-[resultView]-(0)-|" + options:0 + metrics:nil + views:@{ + @"resultView" : _resultsController.view + }]]; + + // Force a layout pass otherwise the table will animate in weirdly. + [self.view layoutIfNeeded]; + + // Reload the data. + [_resultsController.tableView reloadData]; + + // Animate in the results. + [UIView animateWithDuration:0.5 + animations:^{ + _resultsController.view.alpha = 1.0f; + } + completion:^(BOOL finished) { + [_resultsController didMoveToParentViewController:self]; + }]; +} + +- (void)textFieldDidEndEditing:(UITextField *)textField { + // Dismiss the results. + [_resultsController willMoveToParentViewController:nil]; + [UIView animateWithDuration:0.5 + animations:^{ + _resultsController.view.alpha = 0.0f; + } + completion:^(BOOL finished) { + [_resultsController.view removeFromSuperview]; + [_resultsController removeFromParentViewController]; + }]; +} + +- (BOOL)textFieldShouldReturn:(UITextField *)textField { + [textField resignFirstResponder]; + return NO; +} + +- (BOOL)textFieldShouldClear:(UITextField *)textField { + [textField resignFirstResponder]; + textField.text = @""; + return NO; +} + +#pragma mark - Private Methods + +- (void)textFieldDidChange:(UITextField *)textField { + [_tableDataSource sourceTextHasChanged:textField.text]; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.h new file mode 100755 index 0000000..0a52ba7 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.h @@ -0,0 +1,40 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +/** + * Represents a place photo, along with the attributions which are required to be displayed along + * with it. + */ +@interface AttributedPhoto : NSObject + +@property(nonatomic, strong) UIImage *image; + +@property(nonatomic, strong) NSAttributedString *attributions; + +@end + +/* + * A horizontally-paging scroll view that displays a list of photo images and their attributions. + */ +@interface PagingPhotoView : UIScrollView + +/** + * An array of |AttributedPhoto| objects representing the photos to display. + */ +@property(nonatomic, copy) NSArray *photoList; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.m new file mode 100755 index 0000000..59d9a9d --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PagingPhotoView.m @@ -0,0 +1,165 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/PagingPhotoView.h" + +/** + * Class to store the image and text views that display the image and attributions. + */ +@interface ImageViewAndAttribution : NSObject + +@property(nonatomic, strong) UIImageView *imageView; + +@property(nonatomic, strong) UITextView *attributionView; + +@end + +@implementation ImageViewAndAttribution +@end + +@implementation AttributedPhoto +@end + +@interface PagingPhotoView () +@end + +@implementation PagingPhotoView { + // An array of |ImageViewAndAttribution| objects representing the actual views that are + // being displayed. + NSMutableArray *_photoImageViews; + // Whether we should update the image and attribution view frames on the next |layoutSubviews| + // call. This should be set to YES whenever the frame is updated or the photos change. + BOOL _imageLayoutUpdateNeeded; +} + +- (instancetype)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + _photoImageViews = [NSMutableArray array]; + self.pagingEnabled = YES; + } + return self; +} + +- (void)setPhotoList:(NSArray *)photoList { + // First, remove all of the existing image and attribution subviews. + for (ImageViewAndAttribution *photoView in _photoImageViews) { + [photoView.imageView removeFromSuperview]; + [photoView.attributionView removeFromSuperview]; + } + [_photoImageViews removeAllObjects]; + + // Add the new images and attributions as subviews. + _photoList = [photoList copy]; + for (AttributedPhoto *photo in photoList) { + UITextView *textView = [[UITextView alloc] initWithFrame:CGRectZero]; + textView.delegate = self; + textView.editable = NO; + textView.attributedText = photo.attributions; + [self addSubview:textView]; + + UIImageView *imageView = [[UIImageView alloc] initWithImage:photo.image]; + imageView.contentMode = UIViewContentModeScaleAspectFit; + imageView.clipsToBounds = YES; + [self addSubview:imageView]; + + ImageViewAndAttribution *attributedView = [[ImageViewAndAttribution alloc] init]; + attributedView.imageView = imageView; + attributedView.attributionView = textView; + [_photoImageViews addObject:attributedView]; + } + [self updateContentSize]; + _imageLayoutUpdateNeeded = YES; +} + +- (void)setFrame:(CGRect)frame { + _imageLayoutUpdateNeeded = YES; + + // We want to make sure that we are still scrolled to the same photo when the frame changes. + // Measure the current content offset and scroll to the same fraction along the content after the + // frame change. + CGFloat scrollOffsetFraction = 0; + if (self.contentSize.width != 0) { + scrollOffsetFraction = self.contentOffset.x / self.contentSize.width; + } + [super setFrame:frame]; + [UIView performWithoutAnimation:^{ + [self updateContentSize]; + self.contentOffset = + CGPointMake(scrollOffsetFraction * self.contentSize.width, -self.contentInset.top); + }]; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + if (_imageLayoutUpdateNeeded) { + [self layoutImages]; + _imageLayoutUpdateNeeded = NO; + } +} + +#pragma mark - UITextViewDelegate + +- (BOOL)textView:(UITextView *)textView + shouldInteractWithURL:(NSURL *)url + inRange:(NSRange)characterRange { + // Make links clickable. + return YES; +} + +#pragma mark - Helper methods + +/** + * Update the content size of the scroll view based on the number of photos and the view's width. + * This should be called whenever the frame changes or the number of photos has changed. + */ +- (void)updateContentSize { + CGRect insetBounds = UIEdgeInsetsInsetRect(self.bounds, self.contentInset); + CGFloat usableScrollViewHeight = insetBounds.size.height; + + self.contentSize = + CGSizeMake(_photoImageViews.count * self.frame.size.width, usableScrollViewHeight); +} + +/** + * Updates the frames of the images and attributions. + */ +- (void)layoutImages { + CGFloat contentWidth = 0; + CGFloat scrollViewWidth = self.bounds.size.width; + CGRect insetBounds = UIEdgeInsetsInsetRect(self.bounds, self.contentInset); + CGFloat usableScrollViewHeight = insetBounds.size.height; + + // Lay out the images one after the other horizontally. + for (ImageViewAndAttribution *attributedImageView in _photoImageViews) { + UITextView *attributionView = attributedImageView.attributionView; + UIImageView *imageView = attributedImageView.imageView; + [attributionView sizeToFit]; + CGFloat attributionHeight = attributionView.frame.size.height; + CGFloat imageHeight = usableScrollViewHeight - attributionHeight; + + // Put the attribution view aligned to the same left edge as the photo, in the bottom left + // corner of the screen. + attributionView.frame = + CGRectMake(contentWidth, imageHeight, scrollViewWidth, attributionHeight); + imageView.frame = CGRectMake(contentWidth, 0, scrollViewWidth, imageHeight); + contentWidth += imageView.frame.size.width; + } +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.h new file mode 100755 index 0000000..99c7a40 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.h @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Support/BaseDemoViewController.h" + +/** + * The photo demo view controller. Presents a place picker and then displays photos in a carrousel + * for the selected place. + */ +@interface PhotosViewController : BaseDemoViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.m new file mode 100755 index 0000000..5ea0d46 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PhotosViewController.m @@ -0,0 +1,174 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/PhotosViewController.h" + +#import +#import + +#import "GooglePlacesDemos/Samples/PagingPhotoView.h" + +@interface PhotosViewController () +@end + +@implementation PhotosViewController { + GMSPlacePickerViewController *_placePicker; + GMSPlacesClient *_placesClient; + PagingPhotoView *_photoView; + UIActivityIndicatorView *_indicatorView; + NSMapTable *_imagesByPhoto; +} + ++ (NSString *)demoTitle { + return NSLocalizedString(@"Demo.Title.Photos", + @"Title of the photos demo for display in a list or nav header"); +} + +- (instancetype)init { + if ((self = [super init])) { + GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil]; + _placePicker = [[GMSPlacePickerViewController alloc] initWithConfig:config]; + _placePicker.delegate = self; + _placesClient = [GMSPlacesClient sharedClient]; + _imagesByPhoto = [NSMapTable strongToStrongObjectsMapTable]; + + // Add a button in the navigation bar which opens the Place Picker. + NSString *selectPlaceTitle = + NSLocalizedString(@"Demo.Title.Photos.SelectPlace", + @"Title of the 'select place' button within the photos demo"); + self.navigationItem.rightBarButtonItem = + [[UIBarButtonItem alloc] initWithTitle:selectPlaceTitle + style:UIBarButtonItemStylePlain + target:self + action:@selector(showPlacePicker)]; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.view.backgroundColor = [UIColor whiteColor]; + + // Configure the photo view where we are going to display the loaded photos. + _photoView = [[PagingPhotoView alloc] initWithFrame:self.view.bounds]; + _photoView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + [self.view addSubview:_photoView]; + + // Setup the loading indicator. + _indicatorView = [[UIActivityIndicatorView alloc] + initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; + _indicatorView.autoresizingMask = + UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | + UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin; + _indicatorView.center = _photoView.center; + [self.view addSubview:_indicatorView]; + + [self startActivityIndicator]; + + // Show Place Picker as soon as the demo is opened. + [self showPlacePicker]; +} + +#pragma mark - GMSPlacePickerViewControllerDelegate + +- (void)placePicker:(GMSPlacePickerViewController *)viewController didPickPlace:(GMSPlace *)place { + [self dismissViewControllerAnimated:YES completion:nil]; + + [self startActivityIndicator]; + + // Start loading the photos for the selected place. + [_placesClient + lookUpPhotosForPlaceID:place.placeID + callback:^(GMSPlacePhotoMetadataList *photos, NSError *__nullable photoError) { + if (photos != nil) { + [self displayPhotoList:photos]; + } else { + NSLog(@"Photo metadata lookup failed: %@", photoError); + } + }]; +} + +- (void)placePickerDidCancel:(GMSPlacePickerViewController *)viewController { + [self dismissViewControllerAnimated:YES completion:nil]; + NSLog(@"Place picking cancelled."); +} + +- (void)placePicker:(GMSPlacePickerViewController *)viewController + didFailWithError:(NSError *)error { + NSLog(@"Place picking failed with error: %@", error); +} + +#pragma mark - Private methods + +- (void)startActivityIndicator { + _photoView.photoList = @[]; + [_indicatorView startAnimating]; +} + +- (void)stopActivityIndicator { + [_indicatorView stopAnimating]; +} + +- (void)showPlacePicker { + // Present the Place Picker view controller to select a place to load photos for. + _placePicker.modalPresentationStyle = UIModalPresentationPopover; + _placePicker.popoverPresentationController.barButtonItem = self.navigationItem.rightBarButtonItem; + [self presentViewController:_placePicker animated:YES completion:nil]; +} + +// Displays a list of photos. +- (void)displayPhotoList:(GMSPlacePhotoMetadataList *)photos { + // Create a dispatch group for photo requests. We will enter this group immediately before making + // each photo request, and leave when the request completes. This provides a mechanism for waiting + // for all of the photo requests to complete. + dispatch_group_t photoRequestGroup = dispatch_group_create(); + for (GMSPlacePhotoMetadata *photo in photos.results) { + dispatch_group_enter(photoRequestGroup); + [_placesClient loadPlacePhoto:photo + callback:^(UIImage *photoImage, NSError *error) { + if (photoImage == nil) { + NSLog(@"Photo request failed with error: %@", error); + } else { + [_imagesByPhoto setObject:photoImage forKey:photo]; + } + dispatch_group_leave(photoRequestGroup); + }]; + } + + // The block will be called once all photo requests have completed. + dispatch_group_notify(photoRequestGroup, dispatch_get_main_queue(), ^{ + NSMutableArray *attributedPhotos = [NSMutableArray array]; + for (GMSPlacePhotoMetadata *photo in photos.results) { + UIImage *image = [_imagesByPhoto objectForKey:photo]; + if (image == nil) { + continue; + } + AttributedPhoto *attributedPhoto = [[AttributedPhoto alloc] init]; + attributedPhoto.image = image; + attributedPhoto.attributions = photo.attributions; + [attributedPhotos addObject:attributedPhoto]; + } + _photoView.photoList = attributedPhotos; + + [self stopActivityIndicator]; + }); +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.h new file mode 100755 index 0000000..7f00a4f --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import "GooglePlacesDemos/Support/BaseDemoViewController.h" + +/* + * SDK Demo showing different ways to use the place picker view controller. + */ +@interface PlacePickerViewController : BaseDemoViewController + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.m new file mode 100755 index 0000000..c401f19 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Samples/PlacePickerViewController.m @@ -0,0 +1,133 @@ +/* + * Copyright 2017 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Samples/PlacePickerViewController.h" + +#import +#import + +/** Height of buttons in this controller's UI */ +static const CGFloat kButtonHeight = 44.0f; + +@interface PlacePickerViewController () +@end + +@implementation PlacePickerViewController { + GMSPlacePickerViewController *_placePickerViewController; +} + ++ (NSString *)demoTitle { + return NSLocalizedString(@"Demo.Title.PlacePicker.ViewController", + @"Title of the Place Picker demo for displaying the picker in a " + @"popover, navigation controller, or modally."); +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil]; + _placePickerViewController = [[GMSPlacePickerViewController alloc] initWithConfig:config]; + _placePickerViewController.delegate = self; + + self.view.backgroundColor = [UIColor whiteColor]; + + NSString *titlePopover = + NSLocalizedString(@"Demo.Content.PlacePicker.ViewController.Popover", + @"Button title for the 'Popover' view of the place picker."); + NSString *titleNavigation = + NSLocalizedString(@"Demo.Content.PlacePicker.ViewController.Navigation", + @"Button title for the 'Navigation' view of the place picker."); + NSString *titleModal = + NSLocalizedString(@"Demo.Content.PlacePicker.ViewController.Modal", + @"Button title for the 'Modal' view of the place picker."); + + CGFloat nextControlY = 70.0f; + UIButton *popoverButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [popoverButton setTitle:titlePopover forState:UIControlStateNormal]; + popoverButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + popoverButton.autoresizingMask = + UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; + [popoverButton addTarget:self + action:@selector(showPlacePickerInPopover:) + forControlEvents:UIControlEventTouchUpInside]; + nextControlY += kButtonHeight; + + UIButton *navigationButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [navigationButton setTitle:titleNavigation forState:UIControlStateNormal]; + navigationButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + navigationButton.autoresizingMask = + UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; + [navigationButton addTarget:self + action:@selector(showPlacePickerOnNavigationStack) + forControlEvents:UIControlEventTouchUpInside]; + nextControlY += kButtonHeight; + + UIButton *modalButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [modalButton setTitle:titleModal forState:UIControlStateNormal]; + modalButton.frame = CGRectMake(0, nextControlY, self.view.bounds.size.width, kButtonHeight); + modalButton.autoresizingMask = + UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; + [modalButton addTarget:self + action:@selector(showPlacePickerModally) + forControlEvents:UIControlEventTouchUpInside]; + + [self.view addSubview:popoverButton]; + [self.view addSubview:navigationButton]; + [self.view addSubview:modalButton]; +} + +- (void)showPlacePickerInPopover:(UIButton *)button { + _placePickerViewController.modalPresentationStyle = UIModalPresentationPopover; + + [self presentViewController:_placePickerViewController animated:YES completion:nil]; + + UIPopoverPresentationController *presentationController = + [_placePickerViewController popoverPresentationController]; + presentationController.sourceView = button; + presentationController.sourceRect = button.bounds; +} + +- (void)showPlacePickerOnNavigationStack { + [self.navigationController pushViewController:_placePickerViewController animated:YES]; +} + +- (void)showPlacePickerModally { + // If the popover view was selected just before this view, the modal view crashes because + // the view controller is set to present in a popover style, but it's source view is nil. + // Need to set the presentation style to something different to avoid this. + _placePickerViewController.modalPresentationStyle = UIModalPresentationFullScreen; + [self presentViewController:_placePickerViewController animated:YES completion:nil]; +} + +#pragma mark - GMSPlacePickerViewControllerDelegate + +- (void)placePicker:(GMSPlacePickerViewController *)viewController didPickPlace:(GMSPlace *)place { + // View controller needs to be popped of stack if it was on a navigation stack. + if (viewController.navigationController == self.navigationController) { + [self.navigationController popToViewController:self animated:YES]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)placePickerDidCancel:(GMSPlacePickerViewController *)viewController { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.h new file mode 100755 index 0000000..6e8759f --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.h @@ -0,0 +1,31 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +/** + * Base view controller for all demos in the Places Demo app. Provides some basic functionality + * which is common across demos. + */ +@interface BaseDemoViewController : UIViewController + +/** + * The title of the demo. Displayed in lists and navigation bars. + * + * NOTE: This must be overridden by subclasses. + */ ++ (NSString *)demoTitle; + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.m new file mode 100755 index 0000000..2b03ac9 --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/BaseDemoViewController.m @@ -0,0 +1,36 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Support/BaseDemoViewController.h" + +@implementation BaseDemoViewController + ++ (NSString *)demoTitle { + // This should be overridden by subclasses, so should not be called. + return nil; +} + +- (instancetype)initWithNibName:(NSString *)name bundle:(NSBundle *)bundle { + if ((self = [super initWithNibName:name bundle:bundle])) { + self.title = [[self class] demoTitle]; + } + return self; +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.h b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.h new file mode 100755 index 0000000..de4a80d --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.h @@ -0,0 +1,27 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#import + +/** + * A class which manages the behavior of a |UISplitViewController| to achieve the UX we want for + * this demo app. Specifically it tells the |UISplitViewController| to display the list of demos on + * first launch if there is not enough space to have two panes, instead of just the first demo in + * the list. After first launch if the device transitions from regular to compact it will instead + * show the demo which is currently open. + */ +@interface MainSplitViewControllerBehaviorManager : NSObject + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.m new file mode 100755 index 0000000..fdcf2be --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.m @@ -0,0 +1,43 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import "GooglePlacesDemos/Support/MainSplitViewControllerBehaviorManager.h" + +@implementation MainSplitViewControllerBehaviorManager { + BOOL _hasBeenCollapsedBefore; +} + +#pragma mark - UISplitViewControllerDelegate + +- (BOOL)splitViewController:(UISplitViewController *)splitViewController + collapseSecondaryViewController:(UIViewController *)secondaryViewController + ontoPrimaryViewController:(UIViewController *)primaryViewController { + // This override is probably not needed in your own app. This tells the |UISplitViewController| to + // display the list of demos on first launch if there is not enough space to have two panes, + // instead of just the first demo in the list. After first launch if the device transitions from + // regular to compact it will instead show the demo which is currently open. + if (_hasBeenCollapsedBefore) { + return NO; + } else { + _hasBeenCollapsedBefore = YES; + return YES; + } +} + +@end diff --git a/Pods/GooglePlaces/Example/GooglePlacesDemos/main.m b/Pods/GooglePlaces/Example/GooglePlacesDemos/main.m new file mode 100755 index 0000000..8803d3b --- /dev/null +++ b/Pods/GooglePlaces/Example/GooglePlacesDemos/main.m @@ -0,0 +1,28 @@ +/* + * Copyright 2016 Google Inc. All rights reserved. + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import + +#import "GooglePlacesDemos/DemoAppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([DemoAppDelegate class])); + } +} diff --git a/Pods/GooglePlaces/Example/Podfile b/Pods/GooglePlaces/Example/Podfile new file mode 100755 index 0000000..db131b2 --- /dev/null +++ b/Pods/GooglePlaces/Example/Podfile @@ -0,0 +1,7 @@ +source 'https://github.com/CocoaPods/Specs.git' + +target 'GooglePlacesDemos' do + pod 'GooglePlaces', '= 2.4.0' + pod 'GooglePlacePicker', '= 2.4.0' + pod 'GoogleMaps', '= 2.4.0' +end diff --git a/Pods/GooglePlaces/Example/README.GooglePlacesDemos b/Pods/GooglePlaces/Example/README.GooglePlacesDemos new file mode 100755 index 0000000..f8bc47d --- /dev/null +++ b/Pods/GooglePlaces/Example/README.GooglePlacesDemos @@ -0,0 +1,18 @@ +GooglePlacesDemos contains a demo application showcasing various features of +the Google Places API for iOS. + +Before starting, please note that these demos are directed towards a technical +audience. You'll also need Xcode 7.3 or later, with the iOS SDK 9.3 or later. + +If you're new to the API, please read the Introduction section of the Google +Places API for iOS documentation- + https://developers.google.com/places/ios-api/ + +Once you've read the Introduction page, follow the first couple of steps on the +"Getting Started" page. Specifically; + + * Obtain an API key for the demo application, and specify the bundle ID of + this demo application as an an 'allowed iOS app'. By default, the bundle ID + is "com.example.GooglePlacesDemos". + + * Open the project in Xcode, and update `SDKDemoAPIKey.h` with this key. diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/GooglePlaces b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/GooglePlaces new file mode 100755 index 0000000..7383231 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/GooglePlaces differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAddressComponent.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAddressComponent.h new file mode 100755 index 0000000..ffcc5a9 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAddressComponent.h @@ -0,0 +1,32 @@ +// +// GMSAddressComponent.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Represents a component of an address, e.g., street number, postcode, city, etc. + */ +@interface GMSAddressComponent : NSObject + +/** + * Type of the address component. For a list of supported types, see + * https://developers.google.com/places/ios-api/supported_types#table2. This string will be one + * of the constants defined in GMSPlaceTypes.h. + */ +@property(nonatomic, readonly, copy) NSString *type; + +/** Name of the address component, e.g. "Sydney" */ +@property(nonatomic, readonly, copy) NSString *name; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFetcher.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFetcher.h new file mode 100755 index 0000000..8cf6bdb --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFetcher.h @@ -0,0 +1,88 @@ +// +// GMSAutocompleteFetcher.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSAutocompleteFilter.h" + +@class GMSAutocompletePrediction; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Protocol for objects that can receive callbacks from GMSAutocompleteFetcher + */ +@protocol GMSAutocompleteFetcherDelegate + +@required + +/** + * Called when autocomplete predictions are available. + * @param predictions an array of GMSAutocompletePrediction objects. + */ +- (void)didAutocompleteWithPredictions:(NSArray *)predictions; + +/** + * Called when an autocomplete request returns an error. + * @param error the error that was received. + */ +- (void)didFailAutocompleteWithError:(NSError *)error; + +@end + +/** + * GMSAutocompleteFetcher is a wrapper around the lower-level autocomplete APIs that encapsulates + * some of the complexity of requesting autocomplete predictions as the user is typing. Calling + * sourceTextHasChanged will generally result in the provided delegate being called with + * autocomplete predictions for the queried text, with the following provisos: + * + * - The fetcher may not necessarily request predictions on every call of sourceTextHasChanged if + * several requests are made within a short amount of time. + * - The delegate will only be called with prediction results if those predictions are for the + * text supplied in the most recent call to sourceTextHasChanged. + */ +@interface GMSAutocompleteFetcher : NSObject + +/** + * Initialise the fetcher + * @param bounds The bounds used to bias the results. This is not a hard restrict - places may still + * be returned outside of these bounds. This parameter may be nil. + * @param filter The filter to apply to the results. This parameter may be nil. + */ +- (instancetype)initWithBounds:(nullable GMSCoordinateBounds *)bounds + filter:(nullable GMSAutocompleteFilter *)filter NS_DESIGNATED_INITIALIZER; + +/** Delegate to be notified with autocomplete prediction results. */ +@property(nonatomic, weak, nullable) id delegate; + +/** Bounds used to bias the autocomplete search (can be nil). */ +@property(nonatomic, strong, nullable) GMSCoordinateBounds *autocompleteBounds; + +/** Filter to apply to autocomplete suggestions (can be nil). */ +@property(nonatomic, strong, nullable) GMSAutocompleteFilter *autocompleteFilter; + +/** + * Notify the fetcher that the source text to autocomplete has changed. + * + * This method should only be called from the main thread. Calling this method from another thread + * will result in undefined behavior. Calls to |GMSAutocompleteFetcherDelegate| methods will also be + * called on the main thread. + * + * This method is non-blocking. + * @param text The partial text to autocomplete. + */ +- (void)sourceTextHasChanged:(nullable NSString *)text; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFilter.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFilter.h new file mode 100755 index 0000000..9b04a1a --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteFilter.h @@ -0,0 +1,76 @@ +// +// GMSAutocompleteFilter.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * The type filters that may be applied to an autocomplete request to restrict results to different + * types. + * + * @related GMSAutocompleteFilter + */ +typedef NS_ENUM(NSInteger, GMSPlacesAutocompleteTypeFilter) { + /** + * All results. + */ + kGMSPlacesAutocompleteTypeFilterNoFilter, + /** + * Geeocoding results, as opposed to business results. + */ + kGMSPlacesAutocompleteTypeFilterGeocode, + /** + * Geocoding results with a precise address. + */ + kGMSPlacesAutocompleteTypeFilterAddress, + /** + * Business results. + */ + kGMSPlacesAutocompleteTypeFilterEstablishment, + /** + * Results that match the following types: + * "locality", + * "sublocality" + * "postal_code", + * "country", + * "administrative_area_level_1", + * "administrative_area_level_2" + */ + kGMSPlacesAutocompleteTypeFilterRegion, + /** + * Results that match the following types: + * "locality", + * "administrative_area_level_3" + */ + kGMSPlacesAutocompleteTypeFilterCity, +}; + +/** + * This class represents a set of restrictions that may be applied to autocomplete requests. This + * allows customization of autocomplete suggestions to only those places that are of interest. + */ +@interface GMSAutocompleteFilter : NSObject + +/** + * The type filter applied to an autocomplete request to restrict results to different types. + * Default value is kGMSPlacesAutocompleteTypeFilterNoFilter. + */ +@property(nonatomic, assign) GMSPlacesAutocompleteTypeFilter type; + +/** + * The country to restrict results to. This should be a ISO 3166-1 Alpha-2 country code (case + * insensitive). If nil, no country filtering will take place. + */ +@property(nonatomic, copy, nullable) NSString *country; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteMatchFragment.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteMatchFragment.h new file mode 100755 index 0000000..564fee9 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteMatchFragment.h @@ -0,0 +1,35 @@ +// +// GMSAutocompleteMatchFragment.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * This class represents a matched fragment of a string. This is a contiguous range of characters + * in a string, suitable for highlighting in an autocompletion UI. + */ +@interface GMSAutocompleteMatchFragment : NSObject + +/** + * The offset of the matched fragment. This is an index into a string. The character at this index + * is the first matched character. + */ +@property(nonatomic, readonly) NSUInteger offset; + +/** + * The length of the matched fragment. + */ +@property(nonatomic, readonly) NSUInteger length; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompletePrediction.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompletePrediction.h new file mode 100755 index 0000000..bbba200 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompletePrediction.h @@ -0,0 +1,84 @@ +// +// GMSAutocompletePrediction.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Attribute name for match fragments in |GMSAutocompletePrediction| attributedFullText. + * + * @related GMSAutocompletePrediction + */ +extern NSString *const kGMSAutocompleteMatchAttribute; + +/** + * This class represents a prediction of a full query based on a partially typed string. + */ +@interface GMSAutocompletePrediction : NSObject + +/** + * The full description of the prediction as a NSAttributedString. E.g., "Sydney Opera House, + * Sydney, New South Wales, Australia". + * + * Every text range that matches the user input has a |kGMSAutocompleteMatchAttribute|. For + * example, you can make every match bold using enumerateAttribute: + *
+ *   UIFont *regularFont = [UIFont systemFontOfSize:[UIFont labelFontSize]];
+ *   UIFont *boldFont = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
+ *
+ *   NSMutableAttributedString *bolded = [prediction.attributedFullText mutableCopy];
+ *   [bolded enumerateAttribute:kGMSAutocompleteMatchAttribute
+ *                      inRange:NSMakeRange(0, bolded.length)
+ *                      options:0
+ *                   usingBlock:^(id value, NSRange range, BOOL *stop) {
+ *                     UIFont *font = (value == nil) ? regularFont : boldFont;
+ *                     [bolded addAttribute:NSFontAttributeName value:font range:range];
+ *                   }];
+ *
+ *   label.attributedText = bolded;
+ * 
+ */ +@property(nonatomic, copy, readonly) NSAttributedString *attributedFullText; + +/** + * The main text of a prediction as a NSAttributedString, usually the name of the place. + * E.g. "Sydney Opera House". + * + * Text ranges that match user input are have a |kGMSAutocompleteMatchAttribute|, + * like |attributedFullText|. + */ +@property(nonatomic, copy, readonly) NSAttributedString *attributedPrimaryText; + +/** + * The secondary text of a prediction as a NSAttributedString, usually the location of the place. + * E.g. "Sydney, New South Wales, Australia". + * + * Text ranges that match user input are have a |kGMSAutocompleteMatchAttribute|, like + * |attributedFullText|. + * + * May be nil. + */ +@property(nonatomic, copy, readonly, nullable) NSAttributedString *attributedSecondaryText; + +/** + * An optional property representing the place ID of the prediction, suitable for use in a place + * details request. + */ +@property(nonatomic, copy, readonly, nullable) NSString *placeID; + +/** + * The types of this autocomplete result. Types are NSStrings, valid values are any types + * documented at . + */ +@property(nonatomic, copy, readonly) NSArray *types; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteResultsViewController.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteResultsViewController.h new file mode 100755 index 0000000..b61cf2d --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteResultsViewController.h @@ -0,0 +1,132 @@ +// +// GMSAutocompleteResultsViewController.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSAutocompleteFilter.h" +#import "GMSAutocompletePrediction.h" +#import "GMSPlace.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSAutocompleteResultsViewController; + +/** + * Protocol used by |GMSAutocompleteResultsViewController|, to communicate the user's interaction + * with the controller to the application. + */ +@protocol GMSAutocompleteResultsViewControllerDelegate + +@required + +/** + * Called when a place has been selected from the available autocomplete predictions. + * @param resultsController The |GMSAutocompleteResultsViewController| that generated the event. + * @param place The |GMSPlace| that was returned. + */ +- (void)resultsController:(GMSAutocompleteResultsViewController *)resultsController + didAutocompleteWithPlace:(GMSPlace *)place; + +/** + * Called when a non-retryable error occurred when retrieving autocomplete predictions or place + * details. A non-retryable error is defined as one that is unlikely to be fixed by immediately + * retrying the operation. + *

+ * Only the following values of |GMSPlacesErrorCode| are retryable: + *

    + *
  • kGMSPlacesNetworkError + *
  • kGMSPlacesServerError + *
  • kGMSPlacesInternalError + *
+ * All other error codes are non-retryable. + * @param resultsController The |GMSAutocompleteResultsViewController| that generated the event. + * @param error The |NSError| that was returned. + */ +- (void)resultsController:(GMSAutocompleteResultsViewController *)resultsController + didFailAutocompleteWithError:(NSError *)error; + +@optional + +/** + * Called when the user selects an autocomplete prediction from the list but before requesting + * place details. Returning NO from this method will suppress the place details fetch and + * didAutocompleteWithPlace will not be called. + * @param resultsController The |GMSAutocompleteResultsViewController| that generated the event. + * @param prediction The |GMSAutocompletePrediction| that was selected. + */ +- (BOOL)resultsController:(GMSAutocompleteResultsViewController *)resultsController + didSelectPrediction:(GMSAutocompletePrediction *)prediction; + +/** + * Called once every time new autocomplete predictions are received. + * @param resultsController The |GMSAutocompleteResultsViewController| that generated the event. + */ +- (void)didUpdateAutocompletePredictionsForResultsController: + (GMSAutocompleteResultsViewController *)resultsController; + +/** + * Called once immediately after a request for autocomplete predictions is made. + * @param resultsController The |GMSAutocompleteResultsViewController| that generated the event. + */ +- (void)didRequestAutocompletePredictionsForResultsController: + (GMSAutocompleteResultsViewController *)resultsController; + +@end + +/** + * GMSAutocompleteResultsViewController provides an interface that displays place autocomplete + * predictions in a table view. The table view will be automatically updated as input text + * changes. + * + * This class is intended to be used as the search results controller of a UISearchController. Pass + * an instance of |GMSAutocompleteResultsViewController| to UISearchController's + * initWithSearchResultsController method, then set the controller as the UISearchController's + * searchResultsUpdater property. + * + * Use the |GMSAutocompleteResultsViewControllerDelegate| delegate protocol to be notified when a + * place is selected from the list. + */ +@interface GMSAutocompleteResultsViewController : UIViewController + +/** Delegate to be notified when a place is selected. */ +@property(nonatomic, weak, nullable) id delegate; + +/** Bounds used to bias the autocomplete search (can be nil). */ +@property(nonatomic, strong, nullable) GMSCoordinateBounds *autocompleteBounds; + +/** Filter to apply to autocomplete suggestions (can be nil). */ +@property(nonatomic, strong, nullable) GMSAutocompleteFilter *autocompleteFilter; + +/** The background color of table cells. */ +@property(nonatomic, strong) IBInspectable UIColor *tableCellBackgroundColor; + +/** The color of the separator line between table cells. */ +@property(nonatomic, strong) IBInspectable UIColor *tableCellSeparatorColor; + +/** The color of result name text in autocomplete results */ +@property(nonatomic, strong) IBInspectable UIColor *primaryTextColor; + +/** The color used to highlight matching text in autocomplete results */ +@property(nonatomic, strong) IBInspectable UIColor *primaryTextHighlightColor; + +/** The color of the second row of text in autocomplete results. */ +@property(nonatomic, strong) IBInspectable UIColor *secondaryTextColor; + +/** The tint color applied to controls in the Autocomplete view. */ +@property(nonatomic, strong, nullable) IBInspectable UIColor *tintColor; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteTableDataSource.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteTableDataSource.h new file mode 100755 index 0000000..5df6c95 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteTableDataSource.h @@ -0,0 +1,156 @@ +// +// GMSAutocompleteTableDataSource.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSAutocompleteFilter.h" +#import "GMSAutocompletePrediction.h" +#import "GMSPlace.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSAutocompleteTableDataSource; + +/** + * Protocol used by |GMSAutocompleteTableDataSource|, to communicate the user's interaction with the + * data source to the application. + */ +@protocol GMSAutocompleteTableDataSourceDelegate + +@required + +/** + * Called when a place has been selected from the available autocomplete predictions. + * @param tableDataSource The |GMSAutocompleteTableDataSource| that generated the event. + * @param place The |GMSPlace| that was returned. + */ +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didAutocompleteWithPlace:(GMSPlace *)place; + +/** + * Called when a non-retryable error occurred when retrieving autocomplete predictions or place + * details. A non-retryable error is defined as one that is unlikely to be fixed by immediately + * retrying the operation. + *

+ * Only the following values of |GMSPlacesErrorCode| are retryable: + *

    + *
  • kGMSPlacesNetworkError + *
  • kGMSPlacesServerError + *
  • kGMSPlacesInternalError + *
+ * All other error codes are non-retryable. + * @param tableDataSource The |GMSAutocompleteTableDataSource| that generated the event. + * @param error The |NSError| that was returned. + */ +- (void)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didFailAutocompleteWithError:(NSError *)error; + +@optional + +/** + * Called when the user selects an autocomplete prediction from the list but before requesting + * place details. Returning NO from this method will suppress the place details fetch and + * didAutocompleteWithPlace will not be called. + * @param tableDataSource The |GMSAutocompleteTableDataSource| that generated the event. + * @param prediction The |GMSAutocompletePrediction| that was selected. + */ +- (BOOL)tableDataSource:(GMSAutocompleteTableDataSource *)tableDataSource + didSelectPrediction:(GMSAutocompletePrediction *)prediction; + +/** + * Called once every time new autocomplete predictions are received. + * @param tableDataSource The |GMSAutocompleteTableDataSource| that generated the event. + */ +- (void)didUpdateAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource; + +/** + * Called once immediately after a request for autocomplete predictions is made. + * @param tableDataSource The |GMSAutocompleteTableDataSource| that generated the event. + */ +- (void)didRequestAutocompletePredictionsForTableDataSource: + (GMSAutocompleteTableDataSource *)tableDataSource; + +@end + +/** + * GMSAutocompleteTableDataSource provides an interface for providing place autocomplete + * predictions to populate a UITableView by implementing the UITableViewDataSource and + * UITableViewDelegate protocols. + * + * GMSAutocompleteTableDataSource is designed to be used as the data source for a + * UISearchDisplayController. + * + * NOTE: UISearchDisplayController has been deprecated since iOS 8. It is now recommended to use + * UISearchController with |GMSAutocompleteResultsViewController| to display autocomplete results + * using the iOS search UI. + * + * Set an instance of GMSAutocompleteTableDataSource as the searchResultsDataSource and + * searchResultsDelegate properties of UISearchDisplayController. In your implementation of + * shouldReloadTableForSearchString, call sourceTextHasChanged with the current search string. + * + * Use the |GMSAutocompleteTableDataSourceDelegate| delegate protocol to be notified when a place is + * selected from the list. Because autocomplete predictions load asynchronously, it is necessary + * to implement didUpdateAutocompletePredictions and call reloadData on the + * UISearchDisplayController's table view. + * + */ +@interface GMSAutocompleteTableDataSource : NSObject + +/** Delegate to be notified when a place is selected or picking is cancelled. */ +@property(nonatomic, weak, nullable) IBOutlet id delegate; + +/** Bounds used to bias the autocomplete search (can be nil). */ +@property(nonatomic, strong, nullable) GMSCoordinateBounds *autocompleteBounds; + +/** Filter to apply to autocomplete suggestions (can be nil). */ +@property(nonatomic, strong, nullable) GMSAutocompleteFilter *autocompleteFilter; + +/** The background color of table cells. */ +@property(nonatomic, strong) UIColor *tableCellBackgroundColor; + +/** The color of the separator line between table cells. */ +@property(nonatomic, strong) UIColor *tableCellSeparatorColor; + +/** The color of result name text in autocomplete results */ +@property(nonatomic, strong) UIColor *primaryTextColor; + +/** The color used to highlight matching text in autocomplete results */ +@property(nonatomic, strong) UIColor *primaryTextHighlightColor; + +/** The color of the second row of text in autocomplete results. */ +@property(nonatomic, strong) UIColor *secondaryTextColor; + +/** The tint color applied to controls in the Autocomplete view. */ +@property(nonatomic, strong, nullable) UIColor *tintColor; + +/** Designated initializer */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +/** + * Notify the data source that the source text to autocomplete has changed. + * + * This method should only be called from the main thread. Calling this method from another thread + * will result in undefined behavior. Calls to |GMSAutocompleteTableDataSourceDelegate| methods will + * also be called on the main thread. + * + * This method is non-blocking. + * @param text The partial text to autocomplete. + */ +- (void)sourceTextHasChanged:(nullable NSString *)text; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteViewController.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteViewController.h new file mode 100755 index 0000000..050b8ef --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSAutocompleteViewController.h @@ -0,0 +1,147 @@ +// +// GMSAutocompleteViewController.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSAutocompleteFilter.h" +#import "GMSAutocompletePrediction.h" +#import "GMSPlace.h" + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSAutocompleteViewController; + +/** + * Protocol used by |GMSAutocompleteViewController|, to communicate the user's interaction + * with the controller to the application. + */ +@protocol GMSAutocompleteViewControllerDelegate + +@required + +/** + * Called when a place has been selected from the available autocomplete predictions. + * + * Implementations of this method should dismiss the view controller as the view controller will not + * dismiss itself. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + * @param place The |GMSPlace| that was returned. + */ +- (void)viewController:(GMSAutocompleteViewController *)viewController + didAutocompleteWithPlace:(GMSPlace *)place; + +/** + * Called when a non-retryable error occurred when retrieving autocomplete predictions or place + * details. A non-retryable error is defined as one that is unlikely to be fixed by immediately + * retrying the operation. + * + * Only the following values of |GMSPlacesErrorCode| are retryable: + *
    + *
  • kGMSPlacesNetworkError + *
  • kGMSPlacesServerError + *
  • kGMSPlacesInternalError + *
+ * All other error codes are non-retryable. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + * @param error The |NSError| that was returned. + */ +- (void)viewController:(GMSAutocompleteViewController *)viewController + didFailAutocompleteWithError:(NSError *)error; + +/** + * Called when the user taps the Cancel button in a |GMSAutocompleteViewController|. + * + * Implementations of this method should dismiss the view controller as the view controller will not + * dismiss itself. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + */ +- (void)wasCancelled:(GMSAutocompleteViewController *)viewController; + +@optional + +/** + * Called when the user selects an autocomplete prediction from the list but before requesting + * place details. + * + * Returning NO from this method will suppress the place details fetch and didAutocompleteWithPlace + * will not be called. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + * @param prediction The |GMSAutocompletePrediction| that was selected. + */ +- (BOOL)viewController:(GMSAutocompleteViewController *)viewController + didSelectPrediction:(GMSAutocompletePrediction *)prediction; + +/** + * Called once every time new autocomplete predictions are received. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + */ +- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController; + +/** + * Called once immediately after a request for autocomplete predictions is made. + * + * @param viewController The |GMSAutocompleteViewController| that generated the event. + */ +- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController; + +@end + +/** + * GMSAutocompleteViewController provides an interface that displays a table of autocomplete + * predictions that updates as the user enters text. Place selections made by the user are + * returned to the app via the |GMSAutocompleteViewControllerResultsDelegate| protocol. + * + * To use GMSAutocompleteViewController, set its delegate to an object in your app that + * conforms to the |GMSAutocompleteViewControllerDelegate| protocol and present the controller + * (eg using presentViewController). The |GMSAutocompleteViewControllerDelegate| delegate methods + * can be used to determine when the user has selected a place or has cancelled selection. + */ +@interface GMSAutocompleteViewController : UIViewController + +/** Delegate to be notified when a place is selected or picking is cancelled. */ +@property(nonatomic, weak, nullable) IBOutlet id delegate; + +/** Bounds used to bias the autocomplete search (can be nil). */ +@property(nonatomic, strong, nullable) GMSCoordinateBounds *autocompleteBounds; + +/** Filter to apply to autocomplete suggestions (can be nil). */ +@property(nonatomic, strong, nullable) GMSAutocompleteFilter *autocompleteFilter; + +/** The background color of table cells. */ +@property(nonatomic, strong) IBInspectable UIColor *tableCellBackgroundColor; + +/** The color of the separator line between table cells. */ +@property(nonatomic, strong) IBInspectable UIColor *tableCellSeparatorColor; + +/** The color of result name text in autocomplete results */ +@property(nonatomic, strong) IBInspectable UIColor *primaryTextColor; + +/** The color used to highlight matching text in autocomplete results */ +@property(nonatomic, strong) IBInspectable UIColor *primaryTextHighlightColor; + +/** The color of the second row of text in autocomplete results. */ +@property(nonatomic, strong) IBInspectable UIColor *secondaryTextColor; + +/** The tint color applied to controls in the Autocomplete view. */ +@property(nonatomic, strong, nullable) IBInspectable UIColor *tintColor; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlace.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlace.h new file mode 100755 index 0000000..fe361a3 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlace.h @@ -0,0 +1,140 @@ +// +// GMSPlace.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSAddressComponent; +@class GMSCoordinateBounds; + + +/** + * Describes the current open status of a place. + * + * @related GMSPlace + */ +typedef NS_ENUM(NSInteger, GMSPlacesOpenNowStatus) { + /** The place is open now. */ + kGMSPlacesOpenNowStatusYes, + /** The place is not open now. */ + kGMSPlacesOpenNowStatusNo, + /** We don't know whether the place is open now. */ + kGMSPlacesOpenNowStatusUnknown, +}; + +/** + * Describes the price level of a place. + * + * @related GMSPlace + */ +typedef NS_ENUM(NSInteger, GMSPlacesPriceLevel) { + kGMSPlacesPriceLevelUnknown = -1, + kGMSPlacesPriceLevelFree = 0, + kGMSPlacesPriceLevelCheap = 1, + kGMSPlacesPriceLevelMedium = 2, + kGMSPlacesPriceLevelHigh = 3, + kGMSPlacesPriceLevelExpensive = 4, +}; + +/** + * Represents a particular physical place. A GMSPlace encapsulates information about a physical + * location, including its name, location, and any other information we might have about it. This + * class is immutable. + */ +@interface GMSPlace : NSObject + +/** Name of the place. */ +@property(nonatomic, copy, readonly) NSString *name; + +/** Place ID of this place. */ +@property(nonatomic, copy, readonly) NSString *placeID; + +/** + * Location of the place. The location is not necessarily the center of the Place, or any + * particular entry or exit point, but some arbitrarily chosen point within the geographic extent of + * the Place. + */ +@property(nonatomic, readonly, assign) CLLocationCoordinate2D coordinate; + +/** + * Represents the open now status of the place at the time that the place was created. + */ +@property(nonatomic, readonly, assign) GMSPlacesOpenNowStatus openNowStatus; + +/** + * Phone number of this place, in international format, i.e. including the country code prefixed + * with "+". For example, Google Sydney's phone number is "+61 2 9374 4000". + */ +@property(nonatomic, copy, readonly, nullable) NSString *phoneNumber; + +/** + * Address of the place as a simple string. + */ +@property(nonatomic, copy, readonly, nullable) NSString *formattedAddress; + +/** + * Five-star rating for this place based on user reviews. + * + * Ratings range from 1.0 to 5.0. 0.0 means we have no rating for this place (e.g. because not + * enough users have reviewed this place). + */ +@property(nonatomic, readonly, assign) float rating; + +/** + * Price level for this place, as integers from 0 to 4. + * + * e.g. A value of 4 means this place is "$$$$" (expensive). A value of 0 means free (such as a + * museum with free admission). + */ +@property(nonatomic, readonly, assign) GMSPlacesPriceLevel priceLevel; + +/** + * The types of this place. Types are NSStrings, valid values are any types documented at + * . + */ +@property(nonatomic, copy, readonly) NSArray *types; + +/** Website for this place. */ +@property(nonatomic, copy, readonly, nullable) NSURL *website; + +/** + * The data provider attribution string for this place. + * + * These are provided as a NSAttributedString, which may contain hyperlinks to the website of each + * provider. + * + * In general, these must be shown to the user if data from this GMSPlace is shown, as described in + * the Places API Terms of Service. + */ +@property(nonatomic, copy, readonly, nullable) NSAttributedString *attributions; + +/** + * The recommended viewport for this place. May be nil if the size of the place is not known. + * + * This returns a viewport of a size that is suitable for displaying this place. For example, a + * |GMSPlace| object representing a store may have a relatively small viewport, while a |GMSPlace| + * object representing a country may have a very large viewport. + */ +@property(nonatomic, strong, readonly, nullable) GMSCoordinateBounds *viewport; + +/** + * An array of |GMSAddressComponent| objects representing the components in the place's address. + * These components are provided for the purpose of extracting structured information about the + * place's address: for example, finding the city that a place is in. + * + * These components should not be used for address formatting. If a formatted address is required, + * use the |formattedAddress| property, which provides a localized formatted address. + */ +@property(nonatomic, copy, readonly, nullable) NSArray *addressComponents; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihood.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihood.h new file mode 100755 index 0000000..fa5cd1f --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihood.h @@ -0,0 +1,41 @@ +// +// GMSPlaceLikelihood.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSPlace; + +/** + * Represents a |GMSPlace| and the relative likelihood of the place being the best match within the + * list of returned places for a single request. For more information about place likelihoods, see + * |GMSPlaceLikelihoodList|. + */ +@interface GMSPlaceLikelihood : NSObject + +/** + * The place contained in this place likelihood. + */ +@property(nonatomic, strong, readonly) GMSPlace *place; + +/** + * Returns a value from 0.0 to 1.0 indicating the confidence that the user is at this place. The + * larger the value the more confident we are of the place returned. For example, a likelihood of + * 0.75 means that the user is at least 75% likely to be at this place. + */ +@property(nonatomic, assign, readonly) double likelihood; + +- (instancetype)initWithPlace:(GMSPlace *)place likelihood:(double)likelihood; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihoodList.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihoodList.h new file mode 100755 index 0000000..ffa6ca8 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceLikelihoodList.h @@ -0,0 +1,42 @@ +// +// GMSPlaceLikelihoodList.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +@class GMSPlaceLikelihood; + +/** + * Represents a list of places with an associated likelihood for the place being the correct place. + * For example, the Places service may be uncertain what the true Place is, but think it 55% likely + * to be PlaceA, and 35% likely to be PlaceB. The corresponding likelihood list has two members, one + * with likelihood 0.55 and the other with likelihood 0.35. The likelihoods are not guaranteed to be + * correct, and in a given place likelihood list they may not sum to 1.0. + */ +@interface GMSPlaceLikelihoodList : NSObject + +/** An array of likelihoods, sorted in descending order. */ +@property(nonatomic, copy) NSArray *likelihoods; + +/** + * The data provider attribution strings for the likelihood list. + * + * These are provided as a NSAttributedString, which may contain hyperlinks to the website of each + * provider. + * + * In general, these must be shown to the user if data from this likelihood list is shown, as + * described in the Places API Terms of Service. + */ +@property(nonatomic, copy, readonly, nullable) NSAttributedString *attributions; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadata.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadata.h new file mode 100755 index 0000000..7fa3b8e --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadata.h @@ -0,0 +1,38 @@ +// +// GMSPlacePhotoMetadata.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * The metadata corresponding to a single photo associated with a place. + */ +@interface GMSPlacePhotoMetadata : NSObject + +/** + * The data provider attribution string for this photo. + * + * These are provided as a NSAttributedString, which may contain hyperlinks to the website of each + * provider. + * + * In general, these must be shown to the user if data from this GMSPlacePhotoMetadata is shown, as + * described in the Places API Terms of Service. + */ +@property(nonatomic, readonly, copy, nullable) NSAttributedString *attributions; + +/** + * The maximum pixel size in which this photo is available. + */ +@property(nonatomic, readonly, assign) CGSize maxSize; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadataList.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadataList.h new file mode 100755 index 0000000..e089040 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacePhotoMetadataList.h @@ -0,0 +1,29 @@ +// +// GMSPlacePhotoMetadataList.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +#import "GMSPlacePhotoMetadata.h" + +NS_ASSUME_NONNULL_BEGIN; + +/** + * A list of |GMSPlacePhotoMetadata| objects. + */ +@interface GMSPlacePhotoMetadataList : NSObject + +/** + * The array of |GMSPlacePhotoMetadata| objects. + */ +@property(nonatomic, readonly, copy) NSArray *results; + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceTypes.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceTypes.h new file mode 100755 index 0000000..f06900c --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlaceTypes.h @@ -0,0 +1,149 @@ +// +// GMSPlaceTypes.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import + +/** + * \defgroup PlaceTypes GMSPlaceType + * @{ + */ + + +extern NSString *const kGMSPlaceTypeAccounting; +extern NSString *const kGMSPlaceTypeAdministrativeAreaLevel1; +extern NSString *const kGMSPlaceTypeAdministrativeAreaLevel2; +extern NSString *const kGMSPlaceTypeAdministrativeAreaLevel3; +extern NSString *const kGMSPlaceTypeAdministrativeAreaLevel4; +extern NSString *const kGMSPlaceTypeAdministrativeAreaLevel5; +extern NSString *const kGMSPlaceTypeAirport; +extern NSString *const kGMSPlaceTypeAmusementPark; +extern NSString *const kGMSPlaceTypeAquarium; +extern NSString *const kGMSPlaceTypeArtGallery; +extern NSString *const kGMSPlaceTypeAtm; +extern NSString *const kGMSPlaceTypeBakery; +extern NSString *const kGMSPlaceTypeBank; +extern NSString *const kGMSPlaceTypeBar; +extern NSString *const kGMSPlaceTypeBeautySalon; +extern NSString *const kGMSPlaceTypeBicycleStore; +extern NSString *const kGMSPlaceTypeBookStore; +extern NSString *const kGMSPlaceTypeBowlingAlley; +extern NSString *const kGMSPlaceTypeBusStation; +extern NSString *const kGMSPlaceTypeCafe; +extern NSString *const kGMSPlaceTypeCampground; +extern NSString *const kGMSPlaceTypeCarDealer; +extern NSString *const kGMSPlaceTypeCarRental; +extern NSString *const kGMSPlaceTypeCarRepair; +extern NSString *const kGMSPlaceTypeCarWash; +extern NSString *const kGMSPlaceTypeCasino; +extern NSString *const kGMSPlaceTypeCemetery; +extern NSString *const kGMSPlaceTypeChurch; +extern NSString *const kGMSPlaceTypeCityHall; +extern NSString *const kGMSPlaceTypeClothingStore; +extern NSString *const kGMSPlaceTypeColloquialArea; +extern NSString *const kGMSPlaceTypeConvenienceStore; +extern NSString *const kGMSPlaceTypeCountry; +extern NSString *const kGMSPlaceTypeCourthouse; +extern NSString *const kGMSPlaceTypeDentist; +extern NSString *const kGMSPlaceTypeDepartmentStore; +extern NSString *const kGMSPlaceTypeDoctor; +extern NSString *const kGMSPlaceTypeElectrician; +extern NSString *const kGMSPlaceTypeElectronicsStore; +extern NSString *const kGMSPlaceTypeEmbassy; +extern NSString *const kGMSPlaceTypeEstablishment; +extern NSString *const kGMSPlaceTypeFinance; +extern NSString *const kGMSPlaceTypeFireStation; +extern NSString *const kGMSPlaceTypeFloor; +extern NSString *const kGMSPlaceTypeFlorist; +extern NSString *const kGMSPlaceTypeFood; +extern NSString *const kGMSPlaceTypeFuneralHome; +extern NSString *const kGMSPlaceTypeFurnitureStore; +extern NSString *const kGMSPlaceTypeGasStation; +extern NSString *const kGMSPlaceTypeGeneralContractor; +extern NSString *const kGMSPlaceTypeGeocode; +extern NSString *const kGMSPlaceTypeGroceryOrSupermarket; +extern NSString *const kGMSPlaceTypeGym; +extern NSString *const kGMSPlaceTypeHairCare; +extern NSString *const kGMSPlaceTypeHardwareStore; +extern NSString *const kGMSPlaceTypeHealth; +extern NSString *const kGMSPlaceTypeHinduTemple; +extern NSString *const kGMSPlaceTypeHomeGoodsStore; +extern NSString *const kGMSPlaceTypeHospital; +extern NSString *const kGMSPlaceTypeInsuranceAgency; +extern NSString *const kGMSPlaceTypeIntersection; +extern NSString *const kGMSPlaceTypeJewelryStore; +extern NSString *const kGMSPlaceTypeLaundry; +extern NSString *const kGMSPlaceTypeLawyer; +extern NSString *const kGMSPlaceTypeLibrary; +extern NSString *const kGMSPlaceTypeLiquorStore; +extern NSString *const kGMSPlaceTypeLocalGovernmentOffice; +extern NSString *const kGMSPlaceTypeLocality; +extern NSString *const kGMSPlaceTypeLocksmith; +extern NSString *const kGMSPlaceTypeLodging; +extern NSString *const kGMSPlaceTypeMealDelivery; +extern NSString *const kGMSPlaceTypeMealTakeaway; +extern NSString *const kGMSPlaceTypeMosque; +extern NSString *const kGMSPlaceTypeMovieRental; +extern NSString *const kGMSPlaceTypeMovieTheater; +extern NSString *const kGMSPlaceTypeMovingCompany; +extern NSString *const kGMSPlaceTypeMuseum; +extern NSString *const kGMSPlaceTypeNaturalFeature; +extern NSString *const kGMSPlaceTypeNeighborhood; +extern NSString *const kGMSPlaceTypeNightClub; +extern NSString *const kGMSPlaceTypePainter; +extern NSString *const kGMSPlaceTypePark; +extern NSString *const kGMSPlaceTypeParking; +extern NSString *const kGMSPlaceTypePetStore; +extern NSString *const kGMSPlaceTypePharmacy; +extern NSString *const kGMSPlaceTypePhysiotherapist; +extern NSString *const kGMSPlaceTypePlaceOfWorship; +extern NSString *const kGMSPlaceTypePlumber; +extern NSString *const kGMSPlaceTypePointOfInterest; +extern NSString *const kGMSPlaceTypePolice; +extern NSString *const kGMSPlaceTypePolitical; +extern NSString *const kGMSPlaceTypePostBox; +extern NSString *const kGMSPlaceTypePostOffice; +extern NSString *const kGMSPlaceTypePostalCode; +extern NSString *const kGMSPlaceTypePostalCodePrefix; +extern NSString *const kGMSPlaceTypePostalCodeSuffix; +extern NSString *const kGMSPlaceTypePostalTown; +extern NSString *const kGMSPlaceTypePremise; +extern NSString *const kGMSPlaceTypeRealEstateAgency; +extern NSString *const kGMSPlaceTypeRestaurant; +extern NSString *const kGMSPlaceTypeRoofingContractor; +extern NSString *const kGMSPlaceTypeRoom; +extern NSString *const kGMSPlaceTypeRoute; +extern NSString *const kGMSPlaceTypeRvPark; +extern NSString *const kGMSPlaceTypeSchool; +extern NSString *const kGMSPlaceTypeShoeStore; +extern NSString *const kGMSPlaceTypeShoppingMall; +extern NSString *const kGMSPlaceTypeSpa; +extern NSString *const kGMSPlaceTypeStadium; +extern NSString *const kGMSPlaceTypeStorage; +extern NSString *const kGMSPlaceTypeStore; +extern NSString *const kGMSPlaceTypeStreetAddress; +extern NSString *const kGMSPlaceTypeStreetNumber; +extern NSString *const kGMSPlaceTypeSublocality; +extern NSString *const kGMSPlaceTypeSublocalityLevel1; +extern NSString *const kGMSPlaceTypeSublocalityLevel2; +extern NSString *const kGMSPlaceTypeSublocalityLevel3; +extern NSString *const kGMSPlaceTypeSublocalityLevel4; +extern NSString *const kGMSPlaceTypeSublocalityLevel5; +extern NSString *const kGMSPlaceTypeSubpremise; +extern NSString *const kGMSPlaceTypeSubwayStation; +extern NSString *const kGMSPlaceTypeSynagogue; +extern NSString *const kGMSPlaceTypeTaxiStand; +extern NSString *const kGMSPlaceTypeTrainStation; +extern NSString *const kGMSPlaceTypeTransitStation; +extern NSString *const kGMSPlaceTypeTravelAgency; +extern NSString *const kGMSPlaceTypeUniversity; +extern NSString *const kGMSPlaceTypeVeterinaryCare; +extern NSString *const kGMSPlaceTypeZoo; + +/**@}*/ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesClient.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesClient.h new file mode 100755 index 0000000..0831c20 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesClient.h @@ -0,0 +1,246 @@ +// +// GMSPlacesClient.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSPlace.h" +#import "GMSPlacesErrors.h" +#import "GMSUserAddedPlace.h" + + +@class GMSAutocompleteFilter; +@class GMSAutocompletePrediction; +@class GMSPlaceLikelihoodList; +@class GMSPlacePhotoMetadata; +@class GMSPlacePhotoMetadataList; + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Callback type for receiving place details lookups. If an error occurred, + * |result| will be nil and |error| will contain information about the error. + * @param result The |GMSPlace| that was returned. + * @param error The error that occurred, if any. + * + * @related GMSPlacesClient + */ +typedef void (^GMSPlaceResultCallback)(GMSPlace *_Nullable result, NSError *_Nullable error); + +/** + * Callback type for receiving place likelihood lists. If an error occurred, |likelihoodList| will + * be nil and |error| will contain information about the error. + * @param likelihoodList The list of place likelihoods. + * @param error The error that occurred, if any. + * + * @related GMSPlacesClient + */ +typedef void (^GMSPlaceLikelihoodListCallback)(GMSPlaceLikelihoodList *_Nullable likelihoodList, + NSError *_Nullable error); + +/** + * Callback type for receiving autocompletion results. |results| is an array of + * GMSAutocompletePredictions representing candidate completions of the query. + * @param results An array of |GMSAutocompletePrediction|s. + * @param error The error that occurred, if any. + * + * @related GMSPlacesClient + */ +typedef void (^GMSAutocompletePredictionsCallback)( + NSArray *_Nullable results, NSError *_Nullable error); + +/** + * Callback type for receiving place photos results. If an error occurred, |photos| will be nil and + * |error| will contain information about the error. + * @param photos The result containing |GMSPlacePhotoMetadata| objects. + * @param error The error that occurred, if any. + * + * @related GMSPlacesClient + */ +typedef void (^GMSPlacePhotoMetadataResultCallback)(GMSPlacePhotoMetadataList *_Nullable photos, + NSError *_Nullable error); + +/** + * Callback type for receiving |UIImage| objects from a |GMSPlacePhotoMetadata| object. If an error + * occurred, |photo| will be nil and |error| will contain information about the error. + * @param photo The |UIImage| which was loaded. + * @param error The error that occurred, if any. + * + * @related GMSPlacesClient + */ +typedef void (^GMSPlacePhotoImageResultCallback)(UIImage *_Nullable photo, + NSError *_Nullable error); + +/** + * Main interface to the Places API. Used for searching and getting details about places. This class + * should be accessed through the [GMSPlacesClient sharedClient] method. + * + * GMSPlacesClient methods should only be called from the main thread. Calling these methods from + * another thread will result in an exception or undefined behavior. Unless otherwise specified, all + * callbacks will be invoked on the main thread. + */ +@interface GMSPlacesClient : NSObject + +/** + * Provides the shared instance of GMSPlacesClient for the Google Places API for iOS, creating it if + * necessary. + * + * If your application often uses methods of GMSPlacesClient it may want to hold onto this object + * directly, as otherwise your connection to Google may be restarted on a regular basis. + */ ++ (instancetype)sharedClient; + +/** + * Provides your API key to the Google Places API for iOS. This key is generated for your + * application via the Google APIs Console, and is paired with your application's bundle ID to + * identify it. This should be called exactly once by your application, e.g., in application: + * didFinishLaunchingWithOptions:. + * + * @return YES if the APIKey was successfully provided. + */ ++ (BOOL)provideAPIKey:(NSString *)key; + +/** + * Returns the open source software license information for the Google Places API for iOS. This + * information must be made available within your application. + */ ++ (NSString *)openSourceLicenseInfo; + +/** + * Returns the version for this release of the Google Places API for iOS. + */ ++ (NSString *)SDKVersion; + +/** + * Report that the device is at a particular place. + */ +- (void)reportDeviceAtPlaceWithID:(NSString *)placeID; + +/** + * Get details for a place. This method is non-blocking. + * @param placeID The place ID to lookup. + * @param callback The callback to invoke with the lookup result. + */ +- (void)lookUpPlaceID:(NSString *)placeID callback:(GMSPlaceResultCallback)callback; + +/** + * Gets the metadata for up to 10 photos associated with a place. + * + * Photos are sourced from a variety of locations, including business owners and photos contributed + * by Google+ users. In most cases, these photos can be used without attribution, or will have the + * required attribution included as a part of the image. However, you must use the |attributions| + * property in the response to retrieve any additional attributions required, and display those + * attributions in your application wherever you display the image. A maximum of 10 photos is + * returned. + * + * Multiple calls of this method will probably return the same photos each time. However, this is + * not guaranteed because the underlying data may have changed. + * + * This method performs a network lookup. + * + * @param placeID The place ID for which to lookup photos. + * @param callback The callback to invoke with the lookup result. + */ +- (void)lookUpPhotosForPlaceID:(NSString *)placeID + callback:(GMSPlacePhotoMetadataResultCallback)callback; + +/** + * Loads the image for a specific photo at its maximum size. + * + * Image data may be cached. If the requested photo does not exist in the cache then a network + * lookup will be performed. + * + * @param photo The photo for which to load a |UIImage|. + * @param callback The callback to invoke with the loaded |UIImage|. + */ +- (void)loadPlacePhoto:(GMSPlacePhotoMetadata *)photo + callback:(GMSPlacePhotoImageResultCallback)callback; + +/** + * Loads the image for a specific photo, scaled to fit the given maximum dimensions. + * + * The image will be scaled to fit within the given dimensions while maintaining the aspect ratio of + * the original image. This scaling is performed server-side. + * + * If the scale parameter is not 1.0 maxSize will be multiplied by this value and the returned + * UIImage will be set to have the specified scale. This parameter should be set to the screen scale + * if you are loading images for display on screen. + * + * Image data may be cached. If the requested photo does not exist in the cache then a network + * lookup will be performed. + * + * NOTE: After applying the scale factor the dimensions in maxSize will be rounded up to the nearest + * integer before use. If an image is requested which is larger than the maximum size available a + * smaller image may be returned. + * + * @param photo The photo for which to load a |UIImage|. + * @param maxSize The maximum size of the image. + * @param scale The scale to load the image at. + * @param callback The callback to invoke with the loaded |UIImage|. + */ +- (void)loadPlacePhoto:(GMSPlacePhotoMetadata *)photo + constrainedToSize:(CGSize)maxSize + scale:(CGFloat)scale + callback:(GMSPlacePhotoImageResultCallback)callback; + +/** + * Returns an estimate of the place where the device is currently known to be located. + * + * Generates a place likelihood list based on the device's last estimated location. The supplied + * callback will be invoked with this likelihood list upon success and an NSError upon an error. + * + * NOTE: This method requires that your app has permission to access the current device location. + * Before calling this make sure to request access to the users location using [CLLocationManager + * requestWhenInUseAuthorization] or [CLLocationManager requestAlwaysAuthorization]. If you do call + * this method and your app does not have the correct authorization status, the callback will be + * called with an error. + * + * @param callback The callback to invoke with the place likelihood list. + */ +- (void)currentPlaceWithCallback:(GMSPlaceLikelihoodListCallback)callback; + +/** + * Autocompletes a given text query. Results may optionally be biased towards a certain location. + * The supplied callback will be invoked with an array of autocompletion predictions upon success + * and an NSError upon an error. + * @param query The partial text to autocomplete. + * @param bounds The bounds used to bias the results. This is not a hard restrict - places may still + * be returned outside of these bounds. This parameter may be nil. + * @param filter The filter to apply to the results. This parameter may be nil. + * @param callback The callback to invoke with the predictions. + */ +- (void)autocompleteQuery:(NSString *)query + bounds:(nullable GMSCoordinateBounds *)bounds + filter:(nullable GMSAutocompleteFilter *)filter + callback:(GMSAutocompletePredictionsCallback)callback; + +/** + * Add a place. The |place| must have all its fields set, except that website or phoneNumber may be + * nil. + * @param place The details of the place to be added. + * @param callback The callback to invoke with the place that was added. + * + * NOTE: The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down + * on June 30, 2018, and will no longer be available after that date. + */ +- (void)addPlace:(GMSUserAddedPlace *)place + callback:(GMSPlaceResultCallback)callback + __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down " + "on June 30, 2018, and will no longer be available after that date."); + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesErrors.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesErrors.h new file mode 100755 index 0000000..faea159 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSPlacesErrors.h @@ -0,0 +1,114 @@ +// +// GMSPlacesErrors.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +/** + * \defgroup PlacesErrors GMSPlacesErrors + * @{ + */ + +#import + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Error domain used for Places API errors. + * + * @related GMSPlacesErrors + */ +extern NSString *const kGMSPlacesErrorDomain; + +/** + * Error codes for |kGMSPlacesErrorDomain|. + * + * @related GMSPlacesErrors + */ +typedef NS_ENUM(NSInteger, GMSPlacesErrorCode) { + /** + * Something went wrong with the connection to the Places API server. + */ + kGMSPlacesNetworkError = -1, + /** + * The Places API server returned a response that we couldn't understand. + *

+ * If you believe this error represents a bug, please file a report using the instructions on our + * community and support page. + */ + kGMSPlacesServerError = -2, + /** + * An internal error occurred in the Places API library. + *

+ * If you believe this error represents a bug, please file a report using the instructions on our + * community and support page. + */ + kGMSPlacesInternalError = -3, + /** + * Operation failed due to an invalid (malformed or missing) API key. + *

+ * See the developer's guide + * for information on creating and using an API key. + */ + kGMSPlacesKeyInvalid = -4, + /** + * Operation failed due to an expired API key. + *

+ * See the developer's guide + * for information on creating and using an API key. + */ + kGMSPlacesKeyExpired = -5, + /** + * Operation failed due to exceeding the quota usage limit. + *

+ * See the usage limits guide + * for information on usage limits and how to request a higher limit. + */ + kGMSPlacesUsageLimitExceeded = -6, + /** + * Operation failed due to exceeding the usage rate limit for the API key. + *

+ * This status code shouldn't be returned during normal usage of the API. It relates to usage of + * the API that far exceeds normal request levels. See the usage limits guide for more + * information. + */ + kGMSPlacesRateLimitExceeded = -7, + /** + * Operation failed due to exceeding the per-device usage rate limit. + *

+ * This status code shouldn't be returned during normal usage of the API. It relates to usage of + * the API that far exceeds normal request levels. See the usage limits guide for more + * information. + */ + kGMSPlacesDeviceRateLimitExceeded = -8, + /** + * The Places API for iOS is not enabled. + *

+ * See the developer's guide for + * how to enable the Google Places API for iOS. + */ + kGMSPlacesAccessNotConfigured = -9, + /** + * The application's bundle identifier does not match one of the allowed iOS applications for the + * API key. + *

+ * See the developer's guide + * for how to configure bundle restrictions on API keys. + */ + kGMSPlacesIncorrectBundleIdentifier = -10, + /** + * The Places API could not find the user's location. This may be because the user has not allowed + * the application to access location information. + */ + kGMSPlacesLocationError = -11 +}; + +NS_ASSUME_NONNULL_END; + +/**@}*/ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSUserAddedPlace.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSUserAddedPlace.h new file mode 100755 index 0000000..1ca2b21 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GMSUserAddedPlace.h @@ -0,0 +1,71 @@ +// +// GMSUserAddedPlace.h +// Google Places API for iOS +// +// Copyright 2016 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import +#import + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif + +NS_ASSUME_NONNULL_BEGIN; + +/** + * Represents a place constructed by a user, suitable for adding to Google's collection of places. + * + * All properties must be set before passing to GMSPlacesClient.addPlace, except that either website + * _or_ phoneNumber may be nil. + * + * NOTE: The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down + * on June 30, 2018, and will no longer be available after that date. + */ +__GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date.") +@interface GMSUserAddedPlace : NSObject + +/** Name of the place. */ +@property(nonatomic, copy, nullable) NSString *name __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +/** Address of the place. */ +@property(nonatomic, copy, nullable) NSString *address __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +/** Location of the place. */ +@property(nonatomic, assign) CLLocationCoordinate2D coordinate __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +/** Phone number of the place. */ +@property(nonatomic, copy, nullable) NSString *phoneNumber __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +/** List of types of the place as an array of NSStrings, like the GMSPlace.types property. +* Only table 1 types +* are valid. +*/ +@property(nonatomic, copy, nullable) NSArray *types __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +/** The website for the place. */ +@property(nonatomic, copy, nullable) NSString *website __GMS_AVAILABLE_BUT_DEPRECATED_MSG( + "The Add Place feature is deprecated as of June 30, 2017. This feature will be turned down on " + "June 30, 2018, and will no longer be available after that date."); + +@end + +NS_ASSUME_NONNULL_END; diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GooglePlaces.h b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GooglePlaces.h new file mode 100755 index 0000000..1442d69 --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Headers/GooglePlaces.h @@ -0,0 +1,27 @@ +// +// GooglePlaces.h +// Google Places API for iOS +// +// Copyright 2017 Google Inc. +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://developers.google.com/maps/terms +// + +#import "GMSAutocompleteFetcher.h" +#import "GMSAutocompleteFilter.h" +#import "GMSAutocompleteMatchFragment.h" +#import "GMSAutocompletePrediction.h" +#import "GMSAutocompleteResultsViewController.h" +#import "GMSAutocompleteTableDataSource.h" +#import "GMSAutocompleteViewController.h" +#import "GMSAddressComponent.h" +#import "GMSPlace.h" +#import "GMSPlaceLikelihood.h" +#import "GMSPlaceLikelihoodList.h" +#import "GMSPlacePhotoMetadata.h" +#import "GMSPlacePhotoMetadataList.h" +#import "GMSPlaceTypes.h" +#import "GMSPlacesClient.h" +#import "GMSPlacesErrors.h" +#import "GMSUserAddedPlace.h" diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Modules/module.modulemap b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Modules/module.modulemap new file mode 100755 index 0000000..a36418a --- /dev/null +++ b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Modules/module.modulemap @@ -0,0 +1,9 @@ +framework module GooglePlaces { + umbrella header "GooglePlaces.h" + export * + module * { export *} + link "z" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "Security" +} \ No newline at end of file diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/Info.plist b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/Info.plist new file mode 100755 index 0000000..73bc019 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/Info.plist differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ar.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ar.lproj/GooglePlaces.strings new file mode 100755 index 0000000..bce2694 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ar.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ca.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ca.lproj/GooglePlaces.strings new file mode 100755 index 0000000..98901a2 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ca.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/cs.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/cs.lproj/GooglePlaces.strings new file mode 100755 index 0000000..80f6468 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/cs.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/da.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/da.lproj/GooglePlaces.strings new file mode 100755 index 0000000..03d7425 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/da.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/de.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/de.lproj/GooglePlaces.strings new file mode 100755 index 0000000..8b1ed19 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/de.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/el.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/el.lproj/GooglePlaces.strings new file mode 100755 index 0000000..6458ece Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/el.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en.lproj/GooglePlaces.strings new file mode 100755 index 0000000..76f26e4 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_AU.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_AU.lproj/GooglePlaces.strings new file mode 100755 index 0000000..2e7f8c7 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_AU.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_GB.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_GB.lproj/GooglePlaces.strings new file mode 100755 index 0000000..2e7f8c7 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_GB.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_IN.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_IN.lproj/GooglePlaces.strings new file mode 100755 index 0000000..d1409b5 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/en_IN.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es.lproj/GooglePlaces.strings new file mode 100755 index 0000000..f83f1da Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_419.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_419.lproj/GooglePlaces.strings new file mode 100755 index 0000000..bef06c8 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_419.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_MX.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_MX.lproj/GooglePlaces.strings new file mode 100755 index 0000000..bef06c8 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/es_MX.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fi.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fi.lproj/GooglePlaces.strings new file mode 100755 index 0000000..36449cf Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fi.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr.lproj/GooglePlaces.strings new file mode 100755 index 0000000..be66a02 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr_CA.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr_CA.lproj/GooglePlaces.strings new file mode 100755 index 0000000..b421ac5 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/fr_CA.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/he.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/he.lproj/GooglePlaces.strings new file mode 100755 index 0000000..ae5d522 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/he.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hi.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hi.lproj/GooglePlaces.strings new file mode 100755 index 0000000..62f4270 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hi.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hr.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hr.lproj/GooglePlaces.strings new file mode 100755 index 0000000..c0b30bf Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hr.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hu.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hu.lproj/GooglePlaces.strings new file mode 100755 index 0000000..62af815 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/hu.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/id.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/id.lproj/GooglePlaces.strings new file mode 100755 index 0000000..6f1a365 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/id.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/it.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/it.lproj/GooglePlaces.strings new file mode 100755 index 0000000..fb40633 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/it.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/iw.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/iw.lproj/GooglePlaces.strings new file mode 100755 index 0000000..ae5d522 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/iw.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ja.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ja.lproj/GooglePlaces.strings new file mode 100755 index 0000000..201ee48 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ja.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ko.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ko.lproj/GooglePlaces.strings new file mode 100755 index 0000000..d671954 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ko.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lt.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lt.lproj/GooglePlaces.strings new file mode 100755 index 0000000..76f26e4 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lt.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lv.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lv.lproj/GooglePlaces.strings new file mode 100755 index 0000000..76f26e4 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/lv.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ms.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ms.lproj/GooglePlaces.strings new file mode 100755 index 0000000..4d41e13 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ms.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nb.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nb.lproj/GooglePlaces.strings new file mode 100755 index 0000000..5898919 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nb.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nl.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nl.lproj/GooglePlaces.strings new file mode 100755 index 0000000..54730fe Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/nl.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/no.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/no.lproj/GooglePlaces.strings new file mode 100755 index 0000000..5898919 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/no.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/oss_licenses_places.txt.gz b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/oss_licenses_places.txt.gz new file mode 100755 index 0000000..a8fd97d Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/oss_licenses_places.txt.gz differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pl.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pl.lproj/GooglePlaces.strings new file mode 100755 index 0000000..a5a8feb Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pl.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark.png new file mode 100755 index 0000000..6b93ac7 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@2x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@2x.png new file mode 100755 index 0000000..5725af3 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@2x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@3x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@3x.png new file mode 100755 index 0000000..d48ada7 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-dark@3x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light.png new file mode 100755 index 0000000..f9bfb06 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@2x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@2x.png new file mode 100755 index 0000000..3437461 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@2x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@3x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@3x.png new file mode 100755 index 0000000..ba5cc90 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/powered-by-google-light@3x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt.lproj/GooglePlaces.strings new file mode 100755 index 0000000..b69a46c Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_BR.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_BR.lproj/GooglePlaces.strings new file mode 100755 index 0000000..b69a46c Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_BR.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_PT.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_PT.lproj/GooglePlaces.strings new file mode 100755 index 0000000..6fe0e89 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/pt_PT.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ro.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ro.lproj/GooglePlaces.strings new file mode 100755 index 0000000..d710300 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ro.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ru.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ru.lproj/GooglePlaces.strings new file mode 100755 index 0000000..4adff2f Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/ru.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud.png new file mode 100755 index 0000000..60ff4a1 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@2x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@2x.png new file mode 100755 index 0000000..aef35f3 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@2x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@3x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@3x.png new file mode 100755 index 0000000..4a47965 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud@3x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark.png new file mode 100755 index 0000000..9eed3bf Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@2x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@2x.png new file mode 100755 index 0000000..5e86b28 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@2x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@3x.png b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@3x.png new file mode 100755 index 0000000..25ef651 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sad_cloud_dark@3x.png differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sk.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sk.lproj/GooglePlaces.strings new file mode 100755 index 0000000..28494a5 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sk.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sv.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sv.lproj/GooglePlaces.strings new file mode 100755 index 0000000..573dd48 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/sv.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/th.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/th.lproj/GooglePlaces.strings new file mode 100755 index 0000000..51f5c6d Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/th.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/tr.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/tr.lproj/GooglePlaces.strings new file mode 100755 index 0000000..e40fd3a Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/tr.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/uk.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/uk.lproj/GooglePlaces.strings new file mode 100755 index 0000000..b9bfea6 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/uk.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/vi.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/vi.lproj/GooglePlaces.strings new file mode 100755 index 0000000..ef9ad3a Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/vi.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_CN.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_CN.lproj/GooglePlaces.strings new file mode 100755 index 0000000..5e82314 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_CN.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_HK.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_HK.lproj/GooglePlaces.strings new file mode 100755 index 0000000..749cbcd Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_HK.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_TW.lproj/GooglePlaces.strings b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_TW.lproj/GooglePlaces.strings new file mode 100755 index 0000000..1b3d5b9 Binary files /dev/null and b/Pods/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle/zh_TW.lproj/GooglePlaces.strings differ diff --git a/Pods/GooglePlaces/README.md b/Pods/GooglePlaces/README.md new file mode 100755 index 0000000..d15234b --- /dev/null +++ b/Pods/GooglePlaces/README.md @@ -0,0 +1,111 @@ +# Google Places API for iOS + +**NOTE:** This pod is the official pod for the Google Places API for iOS. +Previously this pod was used by another developer, his content has been moved to +[Swift Google Maps API](https://github.com/honghaoz/Swift-Google-Maps-API) on +GitHub. + +This pod contains the Google Places API for iOS, supporting both Objective C and +Swift. + +Use the [Google Places API for iOS] +(https://developers.google.com/places/ios-api/) for exciting features based +on the user's location and Google's Places database. You can enable users to +add a place, autocomplete place names, use a place picker widget, identify +the user's current place or retrieve full details and photos of a place. + +The Google Places API for iOS is distributed as two Pods to allow developers to +have more control over what code is included in their apps. This helps to +create and distribute smaller apps. + +This Pod contains all the Google Places API for iOS functionality which does not +require a map. If you wish to use the [Place Picker] +(https://developers.google.com/places/ios-api/placepicker) in your app then you +should also add the [GooglePlacePicker Pod] +(https://cocoapods.org/pods/GooglePlacePicker). + +# Getting Started + +* *Guides*: Read our [Getting Started guides] + (https://developers.google.com/places/ios-api/start). +* *Demo Videos*: View [pre-recorded online demos] + (https://developers.google.com/places/ios-api/#demos). +* *Code samples*: In order to try out our demo app, run + + ``` + $ pod try GooglePlaces + ``` + + For a demo of the Place Picker component run + + ``` + $ pod try GooglePlacePicker + ``` + + and follow the instructions on our [developer pages] + (https://developers.google.com/places/ios-api/code-samples). + +* *Support*: Find support from various channels and communities. + + * Support pages for [Google Places API for iOS] + (https://developers.google.com/places/support). + * Stack Overflow, using the [google-places-api] + (https://stackoverflow.com/questions/tagged/google-places-api) tag. + +* *Report issues*: Use our issue tracker to [file a bug] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Places%20API%20for%20iOS%20-%20Bug) + or a [feature request] + (https://code.google.com/p/gmaps-api-issues/issues/entry?template=Places%20API%20for%20iOS%20-%20Feature%20Request) + +# Installation + +To integrate Google Places API for iOS into your Xcode project using CocoaPods, +specify it in your `Podfile`: + +``` +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' +target 'YOUR_APPLICATION_TARGET_NAME_HERE' do + pod 'GooglePlaces' +end +``` + +if you are also using the Place Picker add: +``` +pod 'GooglePlacePicker' +``` + +Then, run the following command: + +``` +$ pod install +``` + +Before you can start using the API, you have to activate it in the [Google +Developer Console](https://console.developers.google.com/) and integrate the +respective API key in your project. For detailed installation instructions, +visit Google's Getting Started Guides for the [Google Places API for iOS] +(https://developers.google.com/places/ios-api/start). + +# Migration from version 1 + +If you are using the Google Places API for iOS as part of the Google Maps SDK +for iOS version 1 please check the [migration guide](https://developers.google.com/places/migrate-to-v2) +for more information on upgrading your project. + +# License and Terms of Service + +By using the Google Places API for iOS, you accept Google's Terms of +Service and Policies. Pay attention particularly to the following aspects: + +* Depending on your app and use case, you may be required to display + attribution. Read more about [attribution requirements] + (https://developers.google.com/places/ios-api/attributions). +* Your API usage is subject to quota limitations. Read more about [usage + limits](https://developers.google.com/places/ios-api/usage). +* The [Terms of Service](https://developers.google.com/maps/terms) are a + comprehensive description of the legal contract that you enter with Google + by using the Google Places API for iOS. You may want to pay special + attention to [section 10] + (https://developers.google.com/maps/terms#10-license-restrictions), as it + talks in detail about what you can do with the API, and what you can't. diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..89e9c9c --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,25 @@ +PODS: + - GoogleMaps (2.4.0): + - GoogleMaps/Maps (= 2.4.0) + - GoogleMaps/Base (2.4.0) + - GoogleMaps/Maps (2.4.0): + - GoogleMaps/Base + - GooglePlacePicker (2.4.0): + - GoogleMaps (= 2.4.0) + - GooglePlaces (= 2.4.0) + - GooglePlaces (2.4.0): + - GoogleMaps/Base (= 2.4.0) + +DEPENDENCIES: + - GoogleMaps + - GooglePlacePicker + - GooglePlaces + +SPEC CHECKSUMS: + GoogleMaps: 8436ab5d1c25e36915b2f7416d0c8e3fa2e76c61 + GooglePlacePicker: 755f10343d71280c7b016823e73fbae9625dfa8a + GooglePlaces: aafe5990fa7951e98e078761bbdaaf236d7e0c65 + +PODFILE CHECKSUM: d6db9802f8d62dbab6c17d3f6f3891ce1fc440ae + +COCOAPODS: 1.3.1 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f39ca50 --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,484 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0D364AEDBE7BFFE0B78D02DF718A0BCB /* Pods-AutocompleteTextfieldSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E272F40895609F1A0639AB22709A5705 /* Pods-AutocompleteTextfieldSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 188D9E9828B7BC6F69A025A98CF65A73 /* Pods-AutocompleteTextfieldSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15B35612D839856F4F37AC44EA43D1F8 /* Pods-AutocompleteTextfieldSwift-dummy.m */; }; + 4C2D487E8320E573FEFC4B00CCDB56E9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 02F1D103C41F90F5C6A6B236FE09CFA3 /* Pods-AutocompleteTextfieldSwift-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AutocompleteTextfieldSwift-acknowledgements.markdown"; sourceTree = ""; }; + 07790BD46C0A51AE9AF086D8F62242CC /* GooglePlacePicker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GooglePlacePicker.framework; path = Frameworks/GooglePlacePicker.framework; sourceTree = ""; }; + 1117A6D1FE68A6F983D560933AF5E265 /* GoogleMapsCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleMapsCore.framework; path = Maps/Frameworks/GoogleMapsCore.framework; sourceTree = ""; }; + 1206A68C78106BCA76BB17DAFAB606C1 /* Pods-AutocompleteTextfieldSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-AutocompleteTextfieldSwift.modulemap"; sourceTree = ""; }; + 15B35612D839856F4F37AC44EA43D1F8 /* Pods-AutocompleteTextfieldSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AutocompleteTextfieldSwift-dummy.m"; sourceTree = ""; }; + 278C1CAD19EDE1877BAD660575550AE2 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AutocompleteTextfieldSwift.release.xcconfig"; sourceTree = ""; }; + 2838D27FDE1DC517539F857924DECF99 /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AutocompleteTextfieldSwift.debug.xcconfig"; sourceTree = ""; }; + 36B70DB62E34CAEF58FBA234069194BB /* Pods-AutocompleteTextfieldSwift-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AutocompleteTextfieldSwift-frameworks.sh"; sourceTree = ""; }; + 3FDECC77D89FE1243A204F57DC783964 /* Pods-AutocompleteTextfieldSwift-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AutocompleteTextfieldSwift-resources.sh"; sourceTree = ""; }; + 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 8BCCCA295DEE22197B0C283775AB5A26 /* GoogleMaps.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleMaps.framework; path = Maps/Frameworks/GoogleMaps.framework; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 955D3A22EB34AB333524A949DC729F6B /* GooglePlaces.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GooglePlaces.framework; path = Frameworks/GooglePlaces.framework; sourceTree = ""; }; + A2C35D4B7589A4FC5434B00E125D5924 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B19E9B2F402B98F50F661BDE50C93ADE /* Pods-AutocompleteTextfieldSwift-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AutocompleteTextfieldSwift-acknowledgements.plist"; sourceTree = ""; }; + B9B940E1693884E5C7E751D263379D72 /* GooglePlaces.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = GooglePlaces.bundle; path = Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle; sourceTree = ""; }; + D1DBCD0071D70866EBEFA8E983E0A2FE /* GoogleMapsBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleMapsBase.framework; path = Base/Frameworks/GoogleMapsBase.framework; sourceTree = ""; }; + D57A28887B9E80E29D36BD414E63A790 /* GoogleMaps.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = GoogleMaps.bundle; path = Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle; sourceTree = ""; }; + DE6D813C2480BFCB39E614B9535A00EF /* GooglePlacePicker.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = GooglePlacePicker.bundle; path = Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle; sourceTree = ""; }; + E272F40895609F1A0639AB22709A5705 /* Pods-AutocompleteTextfieldSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AutocompleteTextfieldSwift-umbrella.h"; sourceTree = ""; }; + E931B528A3594E613EFF50E0D7D68B93 /* Pods_AutocompleteTextfieldSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AutocompleteTextfieldSwift.framework; path = "Pods-AutocompleteTextfieldSwift.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C97F02776C21FA31DEBADE1641DAF4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C2D487E8320E573FEFC4B00CCDB56E9 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 057612C31241123A1B53E2F8FEE23AB0 /* GooglePlaces */ = { + isa = PBXGroup; + children = ( + 8BA44F82F96D164DA342FB09A0BEE150 /* Frameworks */, + DADFB7FC1731804E229D4AEF6493F2F7 /* Resources */, + ); + name = GooglePlaces; + path = GooglePlaces; + sourceTree = ""; + }; + 45A6375AD18305E8BA7B79AD1BE61E9D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8BCCCA295DEE22197B0C283775AB5A26 /* GoogleMaps.framework */, + 1117A6D1FE68A6F983D560933AF5E265 /* GoogleMapsCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 4D17D07251E9D83FCAEFC5E7FE39FE51 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + E2CC235FA1592CCAD76C8F8E30EF4187 /* Pods-AutocompleteTextfieldSwift */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 7A999BD5B4C2C01904FC59776164FBE1 /* Maps */ = { + isa = PBXGroup; + children = ( + 45A6375AD18305E8BA7B79AD1BE61E9D /* Frameworks */, + E8816D4FFB28FB18F0B906E7CC732470 /* Resources */, + ); + name = Maps; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + C62832EC902B481843EFC870F9D95CC2 /* Pods */, + 8DC852DD46D284877818F4D16928F7FC /* Products */, + 4D17D07251E9D83FCAEFC5E7FE39FE51 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 8BA44F82F96D164DA342FB09A0BEE150 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 955D3A22EB34AB333524A949DC729F6B /* GooglePlaces.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 8DC852DD46D284877818F4D16928F7FC /* Products */ = { + isa = PBXGroup; + children = ( + E931B528A3594E613EFF50E0D7D68B93 /* Pods_AutocompleteTextfieldSwift.framework */, + ); + name = Products; + sourceTree = ""; + }; + 8FFA7EAE118844748AD9685060A6B673 /* Base */ = { + isa = PBXGroup; + children = ( + FD4ED290151C28ABCF7A3EA0217355EB /* Frameworks */, + ); + name = Base; + sourceTree = ""; + }; + 9C0A1FBBD02B7528347BC7FB84DE24F5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 07790BD46C0A51AE9AF086D8F62242CC /* GooglePlacePicker.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + D35AF013A5F0BAD4F32504907A52519E /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + C62832EC902B481843EFC870F9D95CC2 /* Pods */ = { + isa = PBXGroup; + children = ( + E5C0912CEC7444CFF51EFFE502270519 /* GoogleMaps */, + CCA175DF4D87459CA14C4E01BCFDEF95 /* GooglePlacePicker */, + 057612C31241123A1B53E2F8FEE23AB0 /* GooglePlaces */, + ); + name = Pods; + sourceTree = ""; + }; + CCA175DF4D87459CA14C4E01BCFDEF95 /* GooglePlacePicker */ = { + isa = PBXGroup; + children = ( + 9C0A1FBBD02B7528347BC7FB84DE24F5 /* Frameworks */, + CCDB8ACB50B37F1810F3A87BA87382A7 /* Resources */, + ); + name = GooglePlacePicker; + path = GooglePlacePicker; + sourceTree = ""; + }; + CCDB8ACB50B37F1810F3A87BA87382A7 /* Resources */ = { + isa = PBXGroup; + children = ( + DE6D813C2480BFCB39E614B9535A00EF /* GooglePlacePicker.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + D35AF013A5F0BAD4F32504907A52519E /* iOS */ = { + isa = PBXGroup; + children = ( + 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + DADFB7FC1731804E229D4AEF6493F2F7 /* Resources */ = { + isa = PBXGroup; + children = ( + B9B940E1693884E5C7E751D263379D72 /* GooglePlaces.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + E2CC235FA1592CCAD76C8F8E30EF4187 /* Pods-AutocompleteTextfieldSwift */ = { + isa = PBXGroup; + children = ( + A2C35D4B7589A4FC5434B00E125D5924 /* Info.plist */, + 1206A68C78106BCA76BB17DAFAB606C1 /* Pods-AutocompleteTextfieldSwift.modulemap */, + 02F1D103C41F90F5C6A6B236FE09CFA3 /* Pods-AutocompleteTextfieldSwift-acknowledgements.markdown */, + B19E9B2F402B98F50F661BDE50C93ADE /* Pods-AutocompleteTextfieldSwift-acknowledgements.plist */, + 15B35612D839856F4F37AC44EA43D1F8 /* Pods-AutocompleteTextfieldSwift-dummy.m */, + 36B70DB62E34CAEF58FBA234069194BB /* Pods-AutocompleteTextfieldSwift-frameworks.sh */, + 3FDECC77D89FE1243A204F57DC783964 /* Pods-AutocompleteTextfieldSwift-resources.sh */, + E272F40895609F1A0639AB22709A5705 /* Pods-AutocompleteTextfieldSwift-umbrella.h */, + 2838D27FDE1DC517539F857924DECF99 /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */, + 278C1CAD19EDE1877BAD660575550AE2 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */, + ); + name = "Pods-AutocompleteTextfieldSwift"; + path = "Target Support Files/Pods-AutocompleteTextfieldSwift"; + sourceTree = ""; + }; + E5C0912CEC7444CFF51EFFE502270519 /* GoogleMaps */ = { + isa = PBXGroup; + children = ( + 8FFA7EAE118844748AD9685060A6B673 /* Base */, + 7A999BD5B4C2C01904FC59776164FBE1 /* Maps */, + ); + name = GoogleMaps; + path = GoogleMaps; + sourceTree = ""; + }; + E8816D4FFB28FB18F0B906E7CC732470 /* Resources */ = { + isa = PBXGroup; + children = ( + D57A28887B9E80E29D36BD414E63A790 /* GoogleMaps.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + FD4ED290151C28ABCF7A3EA0217355EB /* Frameworks */ = { + isa = PBXGroup; + children = ( + D1DBCD0071D70866EBEFA8E983E0A2FE /* GoogleMapsBase.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + C935D2EDA0F0A091270BD8DC13882AB8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D364AEDBE7BFFE0B78D02DF718A0BCB /* Pods-AutocompleteTextfieldSwift-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 20EAC30A654C8A9EFF421DCA267CF14C /* Pods-AutocompleteTextfieldSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2E9FD143E3CC6B21E204ED9ACC2D4886 /* Build configuration list for PBXNativeTarget "Pods-AutocompleteTextfieldSwift" */; + buildPhases = ( + 3D71BBD013E4B7F9AC519D296B0751A3 /* Sources */, + 97C97F02776C21FA31DEBADE1641DAF4 /* Frameworks */, + C935D2EDA0F0A091270BD8DC13882AB8 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-AutocompleteTextfieldSwift"; + productName = "Pods-AutocompleteTextfieldSwift"; + productReference = E931B528A3594E613EFF50E0D7D68B93 /* Pods_AutocompleteTextfieldSwift.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 8DC852DD46D284877818F4D16928F7FC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 20EAC30A654C8A9EFF421DCA267CF14C /* Pods-AutocompleteTextfieldSwift */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 3D71BBD013E4B7F9AC519D296B0751A3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 188D9E9828B7BC6F69A025A98CF65A73 /* Pods-AutocompleteTextfieldSwift-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 97803B46811A9BDB5E70FA1303AFBFFE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + BDD0139D6EB93FA375F887ABD62DAB2E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + BE2A9A929CAA758D84107889F349C155 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 278C1CAD19EDE1877BAD660575550AE2 /* Pods-AutocompleteTextfieldSwift.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-AutocompleteTextfieldSwift/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_AutocompleteTextfieldSwift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DCE5321CA6E18EC24FE8E2E95DC84F61 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2838D27FDE1DC517539F857924DECF99 /* Pods-AutocompleteTextfieldSwift.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-AutocompleteTextfieldSwift/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_AutocompleteTextfieldSwift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97803B46811A9BDB5E70FA1303AFBFFE /* Debug */, + BDD0139D6EB93FA375F887ABD62DAB2E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2E9FD143E3CC6B21E204ED9ACC2D4886 /* Build configuration list for PBXNativeTarget "Pods-AutocompleteTextfieldSwift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCE5321CA6E18EC24FE8E2E95DC84F61 /* Debug */, + BE2A9A929CAA758D84107889F349C155 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Info.plist b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.markdown b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.markdown new file mode 100644 index 0000000..6d26e94 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.markdown @@ -0,0 +1,15 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## GoogleMaps + +Copyright 2017 Google + +## GooglePlacePicker + +Copyright 2017 Google + +## GooglePlaces + +Copyright 2017 Google +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.plist b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.plist new file mode 100644 index 0000000..0024654 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-acknowledgements.plist @@ -0,0 +1,59 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright 2017 Google + License + Copyright + Title + GoogleMaps + Type + PSGroupSpecifier + + + FooterText + Copyright 2017 Google + License + Copyright + Title + GooglePlacePicker + Type + PSGroupSpecifier + + + FooterText + Copyright 2017 Google + License + Copyright + Title + GooglePlaces + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-dummy.m b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-dummy.m new file mode 100644 index 0000000..63cd4b5 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_AutocompleteTextfieldSwift : NSObject +@end +@implementation PodsDummy_Pods_AutocompleteTextfieldSwift +@end diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-frameworks.sh b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-frameworks.sh new file mode 100755 index 0000000..88dd537 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-frameworks.sh @@ -0,0 +1,105 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies the dSYM of a vendored framework +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}" + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-resources.sh b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-resources.sh new file mode 100755 index 0000000..b28a560 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-resources.sh @@ -0,0 +1,116 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_resource "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle" + install_resource "${PODS_ROOT}/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle" + install_resource "${PODS_ROOT}/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_resource "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle" + install_resource "${PODS_ROOT}/GooglePlacePicker/Frameworks/GooglePlacePicker.framework/Resources/GooglePlacePicker.bundle" + install_resource "${PODS_ROOT}/GooglePlaces/Frameworks/GooglePlaces.framework/Resources/GooglePlaces.bundle" +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-umbrella.h b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-umbrella.h new file mode 100644 index 0000000..8bcc95f --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_AutocompleteTextfieldSwiftVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AutocompleteTextfieldSwiftVersionString[]; + diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.debug.xcconfig b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.debug.xcconfig new file mode 100644 index 0000000..90f8e0a --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.debug.xcconfig @@ -0,0 +1,10 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_ROOT}/GooglePlacePicker/Frameworks" "${PODS_ROOT}/GooglePlaces/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GoogleMaps" "${PODS_ROOT}/Headers/Public/GooglePlacePicker" "${PODS_ROOT}/Headers/Public/GooglePlaces" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/GoogleMaps" -isystem "${PODS_ROOT}/Headers/Public/GooglePlacePicker" -isystem "${PODS_ROOT}/Headers/Public/GooglePlaces" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Accelerate" -framework "CoreData" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "GoogleMaps" -framework "GoogleMapsBase" -framework "GoogleMapsCore" -framework "GooglePlacePicker" -framework "GooglePlaces" -framework "ImageIO" -framework "OpenGLES" -framework "QuartzCore" -framework "SystemConfiguration" -framework "UIKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.modulemap b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.modulemap new file mode 100644 index 0000000..a341f75 --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.modulemap @@ -0,0 +1,6 @@ +framework module Pods_AutocompleteTextfieldSwift { + umbrella header "Pods-AutocompleteTextfieldSwift-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.release.xcconfig b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.release.xcconfig new file mode 100644 index 0000000..90f8e0a --- /dev/null +++ b/Pods/Target Support Files/Pods-AutocompleteTextfieldSwift/Pods-AutocompleteTextfieldSwift.release.xcconfig @@ -0,0 +1,10 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_ROOT}/GooglePlacePicker/Frameworks" "${PODS_ROOT}/GooglePlaces/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GoogleMaps" "${PODS_ROOT}/Headers/Public/GooglePlacePicker" "${PODS_ROOT}/Headers/Public/GooglePlaces" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/GoogleMaps" -isystem "${PODS_ROOT}/Headers/Public/GooglePlacePicker" -isystem "${PODS_ROOT}/Headers/Public/GooglePlaces" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Accelerate" -framework "CoreData" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "GoogleMaps" -framework "GoogleMapsBase" -framework "GoogleMapsCore" -framework "GooglePlacePicker" -framework "GooglePlaces" -framework "ImageIO" -framework "OpenGLES" -framework "QuartzCore" -framework "SystemConfiguration" -framework "UIKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods