diff --git a/ios/.gitignore b/ios/.gitignore index f4702997..8882d557 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -1,5 +1,5 @@ App/build -App/Pods +# App/Pods App/output App/App/public DerivedData diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/LICENSE b/ios/App/Pods/Google-Maps-iOS-Utils/LICENSE new file mode 100644 index 00000000..37ec93a1 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/README.md b/ios/App/Pods/Google-Maps-iOS-Utils/README.md new file mode 100644 index 00000000..9b638a14 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/README.md @@ -0,0 +1,174 @@ +![Run unit tests](https://github.com/googlemaps/google-maps-ios-utils/workflows/Run%20unit%20tests/badge.svg) +[![pod](https://img.shields.io/cocoapods/v/Google-Maps-iOS-Utils.svg)](https://cocoapods.org/pods/Google-Maps-iOS-Utils) +![GitHub contributors](https://img.shields.io/github/contributors/googlemaps/google-maps-ios-utils) +![Apache-2.0](https://img.shields.io/badge/license-Apache-blue) + +Google Maps SDK for iOS Utility Library +======================================= + +## Description + +This open-source library contains classes that are useful for a wide +range of applications using the [Google Maps SDK for iOS][sdk]. + +- **Geometry libraries** - [KML and GeoJSON rendering][geometry-rendering] +- **Geometry utilities** - Handy spherical [geometry utility][geometry-utils] functions +- **Heatmaps** - [Heatmap rendering][heatmap-rendering] +- **Marker clustering** — handles the display of a large number of points +- **Marker customization** - [display custom markers][customizing-markers] +- **Quadtree data structure** - indexes 2D geometry points and performs +2D range queries + +

+ +## Requirements + +- iOS 13.0+ +- [Maps SDK for iOS][sdk] (see [Releases](https://github.com/googlemaps/google-maps-ios-utils/releases) for minimum compatible version) + +## Installation + +1. [Include the `GoogleMaps` dependency](https://developers.google.com/maps/documentation/ios-sdk/config#download-sdk) using one of the available installation options (CocoaPods, XCFramework, Carthage (for v6.2.1 and earlier) or manual). + +1. Add this utility library using one of the methods below: + +### [CocoaPods](https://guides.cocoapods.org/using/using-cocoapods.html) + +In your `Podfile`: + +```ruby +use_frameworks! + +target 'TARGET_NAME' do + pod 'Google-Maps-iOS-Utils', '4.2.2' +end +``` + +Replace `TARGET_NAME` and then, in the `Podfile` directory, type: + +```bash +pod install +``` + +### [Swift Package Manager](https://github.com/apple/swift-package-manager) + +**Note**: This feature is only available with Swift 5.3 (Xcode 12) or later. + +Add the following to your `dependencies` value of your `Package.swift` file. + +``` +dependencies: [ + .package( + url: "https://github.com/googlemaps/google-maps-ios-utils.git", + .upToNextMinor(from: "4.2.2") + ) +] +``` + +### [Carthage](https://github.com/Carthage/Carthage) + +
+Only supported if using Maps SDK v6.2.1 or earlier + +In your `Cartfile`: + +``` +github "googlemaps/google-maps-ios-utils" ~> 4.1.0 +``` + +See the [Carthage doc] for further installation instructions. +
+ +## Sample App + +See the README for the Swift and Objective-C samples apps in [/samples](samples). + +## Documentation + +Read documentation about this utility library on [developers.google.com][devsite-guide] or within the [/docs](docs) directory. + +## Usage + +### Clustering markers + +```swift +import GoogleMaps +import GoogleMapsUtils + +class MarkerClustering: UIViewController, GMSMapViewDelegate { + private var mapView: GMSMapView! + private var clusterManager: GMUClusterManager! + + override func viewDidLoad() { + super.viewDidLoad() + + // Set up the cluster manager with the supplied icon generator and + // renderer. + let iconGenerator = GMUDefaultClusterIconGenerator() + let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm() + let renderer = GMUDefaultClusterRenderer(mapView: mapView, + clusterIconGenerator: iconGenerator) + clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm, + renderer: renderer) + + // Register self to listen to GMSMapViewDelegate events. + clusterManager.setMapDelegate(self) + // ... + } + // ... +} + +let markerArray = [marker1, marker2, marker3, marker4] // define your own markers +clusterManager.add(markerArray) + +clusterManager.cluster() +``` + +### Displaying KML data + +```swift +import GoogleMaps +import GoogleMapsUtils + +func renderKml() { + // Parse KML + let path: String = // Path to your KML file... + let kmlUrl = URL(fileURLWithPath: path) + let kmlParser = GMUKmlParser(url: kmlUrl) + kmlParser.parse() + + // Render parsed KML + let renderer = GMUGeometryRenderer( + map: mapView, + geometries: kmlParser.placemarks, + styles: kmlParser.styles, + styleMaps: kmlParser.styleMaps + ) + renderer.render() +} +``` + +## Contributing + +Contributions are welcome and encouraged. Please see the [contributing guide][contributing] for guidance. + +## Support + +This library is offered via an open source [license]. It is not governed by the Google Maps Platform [Support Technical Support Services Guidelines](https://cloud.google.com/maps-platform/terms/tssg), the [SLA](https://cloud.google.com/maps-platform/terms/sla), or the [Deprecation Policy](https://cloud.google.com/maps-platform/terms) (however, any Google Maps Platform services used by the library remain subject to the Google Maps Platform Terms of Service). + +This library adheres to [semantic versioning](https://semver.org/) to indicate when backwards-incompatible changes are introduced. Accordingly, while the library is in version 0.x, backwards-incompatible changes may be introduced at any time. + +If you find a bug, or have a feature request, please file an [issue] on GitHub. If you would like to get answers to technical questions from other Google Maps Platform developers, ask through one of our [developer community channels](https://developers.google.com/maps/developer-community) such as our [Discord server]. + +[Discord server]: https://discord.gg/9fwRNWg +[Carthage doc]: docs/Carthage.md +[contributing]: CONTRIBUTING.md +[code of conduct]: CODE_OF_CONDUCT.md +[devsite-guide]: https://developers.google.com/maps/documentation/ios-sdk/utility/ +[sdk]: https://developers.google.com/maps/documentation/ios-sdk +[issue]: https://github.com/googlemaps/google-maps-ios-utils/issues +[license]: LICENSE +[customizing-markers]: docs/CustomMarkers.md +[geometry-rendering]: docs/GeometryRendering.md +[heatmap-rendering]: docs/HeatmapRendering.md +[geometry-utils]: docs/GeometryUtils.md diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUClusterAlgorithm.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUClusterAlgorithm.h new file mode 100644 index 00000000..e6637f52 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUClusterAlgorithm.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUCluster.h" +#import "GMUClusterItem.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Generic protocol for arranging cluster items into groups. + */ +@protocol GMUClusterAlgorithm + +- (void)addItems:(NSArray> *)items; + +/** + * Removes an item. + */ +- (void)removeItem:(id)item; + +/** + * Clears all items. + */ +- (void)clearItems; + +/** + * Returns the set of clusters of the added items. + */ +- (NSArray> *)clustersAtZoom:(float)zoom; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.h new file mode 100644 index 00000000..47fb1fc5 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterAlgorithm.h" + +/** + * A simple algorithm which devides the map into a grid where a cell has fixed dimension in + * screen space. + */ +@interface GMUGridBasedClusterAlgorithm : NSObject + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.m new file mode 100644 index 00000000..bfad5092 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUGridBasedClusterAlgorithm.m @@ -0,0 +1,79 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGridBasedClusterAlgorithm.h" + +#import + +#import "GMUStaticCluster.h" +#import "GMUClusterItem.h" + +// Grid cell dimension in pixels to keep clusters about 100 pixels apart on screen. +static const NSUInteger kGMUGridCellSizePoints = 100; + +@implementation GMUGridBasedClusterAlgorithm { + NSMutableArray> *_items; +} + +- (instancetype)init { + if ((self = [super init])) { + _items = [[NSMutableArray alloc] init]; + } + return self; +} + +- (void)addItems:(NSArray> *)items { + [_items addObjectsFromArray:items]; +} + +- (void)removeItem:(id)item { + [_items removeObject:item]; +} + +- (void)clearItems { + [_items removeAllObjects]; +} + +- (NSArray> *)clustersAtZoom:(float)zoom { + NSMutableDictionary> *clusters = [[NSMutableDictionary alloc] init]; + + // Divide the whole map into a numCells x numCells grid and assign items to them. + long numCells = (long)ceil(256 * pow(2, zoom) / kGMUGridCellSizePoints); + for (id item in _items) { + GMSMapPoint point = GMSProject(item.position); + long col = (long)(numCells * (1.0 + point.x) / 2); // point.x is in [-1, 1] range + long row = (long)(numCells * (1.0 + point.y) / 2); // point.y is in [-1, 1] range + long index = numCells * row + col; + NSNumber *cellKey = [NSNumber numberWithLong:index]; + GMUStaticCluster *cluster = clusters[cellKey]; + if (cluster == nil) { + // Normalize cluster's centroid to center of the cell. + GMSMapPoint point2 = {(double)(col + 0.5) * 2.0 / numCells - 1, + (double)(row + 0.5) * 2.0 / numCells - 1}; + CLLocationCoordinate2D position = GMSUnproject(point2); + cluster = [[GMUStaticCluster alloc] initWithPosition:position]; + clusters[cellKey] = cluster; + } + [cluster addItem:item]; + } + return [clusters allValues]; +} + +@end + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.h new file mode 100644 index 00000000..1c8fdf13 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterAlgorithm.h" + +/** + * A simple clustering algorithm with O(nlog n) performance. Resulting clusters are not + * hierarchical. + * High level algorithm: + * 1. Iterate over items in the order they were added (candidate clusters). + * 2. Create a cluster with the center of the item. + * 3. Add all items that are within a certain distance to the cluster. + * 4. Move any items out of an existing cluster if they are closer to another cluster. + * 5. Remove those items from the list of candidate clusters. + * Clusters have the center of the first element (not the centroid of the items within it). + */ +@interface GMUNonHierarchicalDistanceBasedAlgorithm : NSObject + +/** + * Initializes this GMUNonHierarchicalDistanceBasedAlgorithm with clusterDistancePoints for + * the distance it uses to cluster items (default is 100). + */ +- (instancetype)initWithClusterDistancePoints:(NSUInteger)clusterDistancePoints; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.m new file mode 100644 index 00000000..c227fea3 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.m @@ -0,0 +1,198 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUNonHierarchicalDistanceBasedAlgorithm.h" + +#import + +#import "GMUStaticCluster.h" +#import "GMUClusterItem.h" +#import "GMUWrappingDictionaryKey.h" +#import "GQTPointQuadTree.h" + +static const NSUInteger kGMUDefaultClusterDistancePoints = 100; +static const double kGMUMapPointWidth = 2.0; // MapPoint is in a [-1,1]x[-1,1] space. + +#pragma mark Utilities Classes + +@interface GMUClusterItemQuadItem : NSObject + +@property(nonatomic, readonly) id clusterItem; + +- (instancetype)initWithClusterItem:(id)clusterItem; + +@end + +@implementation GMUClusterItemQuadItem { + id _clusterItem; + GQTPoint _clusterItemPoint; +} + +- (instancetype)initWithClusterItem:(id)clusterItem { + if ((self = [super init])) { + _clusterItem = clusterItem; + GMSMapPoint point = GMSProject(clusterItem.position); + _clusterItemPoint.x = point.x; + _clusterItemPoint.y = point.y; + } + return self; +} + +- (GQTPoint)point { + return _clusterItemPoint; +} + +// Forwards hash to clusterItem. +- (NSUInteger)hash { + return [_clusterItem hash]; +} + +// Forwards isEqual to clusterItem. +- (BOOL)isEqual:(id)object { + if (self == object) return YES; + + if ([object class] != [self class]) return NO; + + GMUClusterItemQuadItem *other = (GMUClusterItemQuadItem *)object; + return [_clusterItem isEqual:other->_clusterItem]; +} + +@end + +#pragma mark GMUNonHierarchicalDistanceBasedAlgorithm + +@implementation GMUNonHierarchicalDistanceBasedAlgorithm { + NSMutableArray> *_items; + GQTPointQuadTree *_quadTree; + NSUInteger _clusterDistancePoints; +} + +- (instancetype)init { + return [self initWithClusterDistancePoints:kGMUDefaultClusterDistancePoints]; +} + +- (instancetype)initWithClusterDistancePoints:(NSUInteger)clusterDistancePoints { + if ((self = [super init])) { + _items = [[NSMutableArray alloc] init]; + GQTBounds bounds = {-1, -1, 1, 1}; + _quadTree = [[GQTPointQuadTree alloc] initWithBounds:bounds]; + _clusterDistancePoints = clusterDistancePoints; + } + return self; +} + +- (void)addItems:(NSArray> *)items { + [_items addObjectsFromArray:items]; + for (id item in items) { + GMUClusterItemQuadItem *quadItem = [[GMUClusterItemQuadItem alloc] initWithClusterItem:item]; + [_quadTree add:quadItem]; + } +} + +/** + * Removes an item. + */ +- (void)removeItem:(id)item { + [_items removeObject:item]; + + GMUClusterItemQuadItem *quadItem = [[GMUClusterItemQuadItem alloc] initWithClusterItem:item]; + // This should remove the corresponding quad item since GMUClusterItemQuadItem forwards its hash + // and isEqual to the underlying item. + [_quadTree remove:quadItem]; +} + +/** + * Clears all items. + */ +- (void)clearItems { + [_items removeAllObjects]; + [_quadTree clear]; +} + +/** + * Returns the set of clusters of the added items. + */ +- (NSArray> *)clustersAtZoom:(float)zoom { + NSMutableArray> *clusters = [[NSMutableArray alloc] init]; + NSMutableDictionary> *itemToClusterMap = + [[NSMutableDictionary alloc] init]; + NSMutableDictionary *itemToClusterDistanceMap = + [[NSMutableDictionary alloc] init]; + NSMutableSet> *processedItems = [[NSMutableSet alloc] init]; + + for (id item in _items) { + if ([processedItems containsObject:item]) continue; + + GMUStaticCluster *cluster = [[GMUStaticCluster alloc] initWithPosition:item.position]; + + GMSMapPoint point = GMSProject(item.position); + + // Query for items within a fixed point distance from the current item to make up a cluster + // around it. + double radius = _clusterDistancePoints * kGMUMapPointWidth / pow(2.0, zoom + 8.0); + GQTBounds bounds = {point.x - radius, point.y - radius, point.x + radius, point.y + radius}; + NSArray *nearbyItems = [_quadTree searchWithBounds:bounds]; + for (GMUClusterItemQuadItem *quadItem in nearbyItems) { + id nearbyItem = quadItem.clusterItem; + [processedItems addObject:nearbyItem]; + GMSMapPoint nearbyItemPoint = GMSProject(nearbyItem.position); + GMUWrappingDictionaryKey *key = [[GMUWrappingDictionaryKey alloc] initWithObject:nearbyItem]; + + NSNumber *existingDistance = [itemToClusterDistanceMap objectForKey:key]; + double distanceSquared = [self distanceSquaredBetweenPointA:point andPointB:nearbyItemPoint]; + if (existingDistance != nil) { + if ([existingDistance doubleValue] < distanceSquared) { + // Already belongs to a closer cluster. + continue; + } + GMUStaticCluster *existingCluster = [itemToClusterMap objectForKey:key]; + [existingCluster removeItem:nearbyItem]; + } + NSNumber *number = [NSNumber numberWithDouble:distanceSquared]; + [itemToClusterDistanceMap setObject:number forKey:key]; + [itemToClusterMap setObject:cluster forKey:key]; + [cluster addItem:nearbyItem]; + } + [clusters addObject:cluster]; + } + NSAssert(itemToClusterDistanceMap.count == _items.count, + @"All items should be mapped to a distance"); + NSAssert(itemToClusterMap.count == _items.count, + @"All items should be mapped to a cluster"); + +#if DEBUG + NSUInteger totalCount = 0; + for (id cluster in clusters) { + totalCount += cluster.count; + } + NSAssert(_items.count == totalCount, @"All clusters combined should make up original item set"); +#endif + return clusters; +} + +#pragma mark Private + +- (double)distanceSquaredBetweenPointA:(GMSMapPoint)pointA andPointB:(GMSMapPoint)pointB { + double deltaX = pointA.x - pointB.x; + double deltaY = pointA.y - pointB.y; + return deltaX * deltaX + deltaY * deltaY; +} + +@end + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.h new file mode 100644 index 00000000..05d0a601 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterAlgorithm.h" + +/** + * Not for production: used for experimenting with new clustering algorithms only. + */ +@interface GMUSimpleClusterAlgorithm : NSObject + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.m new file mode 100644 index 00000000..eb0ce6d1 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUSimpleClusterAlgorithm.m @@ -0,0 +1,71 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUSimpleClusterAlgorithm.h" + +#import "GMUStaticCluster.h" +#import "GMUClusterItem.h" + +static const NSUInteger kClusterCount = 10; + +@implementation GMUSimpleClusterAlgorithm { + NSMutableArray> *_items; +} + +- (instancetype)init { + if ((self = [super init])) { + _items = [[NSMutableArray alloc] init]; + } + return self; +} + +- (void)addItems:(NSArray> *)items { + [_items addObjectsFromArray:items]; +} + +- (void)removeItem:(id)item { + [_items removeObject:item]; +} + +- (void)clearItems { + [_items removeAllObjects]; +} + +- (NSArray> *)clustersAtZoom:(float)zoom { + NSMutableArray> *clusters = + [[NSMutableArray alloc] initWithCapacity:kClusterCount]; + + for (int i = 0; i < kClusterCount; ++i) { + if (i >= _items.count) break; + id item = _items[i]; + [clusters addObject:[[GMUStaticCluster alloc] initWithPosition:item.position]]; + } + + NSUInteger clusterIndex = 0; + for (int i = kClusterCount; i < _items.count; ++i) { + id item = _items[i]; + GMUStaticCluster *cluster = clusters[clusterIndex % kClusterCount]; + [cluster addItem:item]; + ++clusterIndex; + } + return clusters; +} + +@end + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.h new file mode 100644 index 00000000..bd47ec7e --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +/** + * Wraps an object which does not implement NSCopying to be used as NSDictionary keys. + * This class will forward -hash and -isEqual methods to the underlying object. + */ +@interface GMUWrappingDictionaryKey : NSObject + +- (instancetype)initWithObject:(id)object; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.m new file mode 100644 index 00000000..9632b745 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/Algo/GMUWrappingDictionaryKey.m @@ -0,0 +1,57 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUWrappingDictionaryKey.h" + +@implementation GMUWrappingDictionaryKey { + id _object; +} + +- (instancetype)initWithObject:(id)object { + if ((self = [super init])) { + _object = object; + } + return self; +} + +- (id)copyWithZone:(NSZone *)zone { + GMUWrappingDictionaryKey *newKey = [[self class] allocWithZone:zone]; + if (newKey) { + newKey->_object = _object; + } + return newKey; +} + +// Forwards hash to _object. +- (NSUInteger)hash { + return [_object hash]; +} + +// Forwards isEqual to _object. +- (BOOL)isEqual:(id)object { + if (self == object) return YES; + + if ([object class] != [self class]) return NO; + + GMUWrappingDictionaryKey *other = (GMUWrappingDictionaryKey *)object; + return [_object isEqual:other->_object]; +} + +@end + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.h new file mode 100644 index 00000000..d3104177 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.h @@ -0,0 +1,15 @@ +// +// NSObject+GMSMarker_GMUClusteritem.h +// DevApp +// +// Created by Alex Muramoto on 5/7/20. +// Copyright © 2020 Google. All rights reserved. +// + +#import +#import +#import "GMUClusterItem.h" + +@interface GMSMarker (GMSMarker_GMUClusteritem) + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.m new file mode 100644 index 00000000..9e416b7c --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMSMarker+GMUClusteritem.m @@ -0,0 +1,13 @@ +// +// NSObject+GMSMarker_GMUClusteritem.m +// DevApp +// +// Created by Alex Muramoto on 5/7/20. +// Copyright © 2020 Google. All rights reserved. +// + +#import "GMSMarker+GMUClusteritem.h" + +@implementation GMSMarker (GMSMarker_GMUClusteritem) + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUCluster.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUCluster.h new file mode 100644 index 00000000..47945609 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUCluster.h @@ -0,0 +1,45 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterItem.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Defines a generic cluster object. + */ +@protocol GMUCluster + +/** + * Returns the position of the cluster. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D position; + +/** + * Returns the number of items in the cluster. + */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Returns a copy of the list of items in the cluster. + */ +@property(nonatomic, readonly) NSArray> *items; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterItem.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterItem.h new file mode 100644 index 00000000..a1cb6f7a --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterItem.h @@ -0,0 +1,33 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 protocol defines the contract for a cluster item. + */ +@protocol GMUClusterItem + +/** + * Returns the position of the item. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D position; + +@optional +@property(nonatomic, copy, nullable) NSString* title; + +@property(nonatomic, copy, nullable) NSString* snippet; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager+Testing.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager+Testing.h new file mode 100644 index 00000000..5b7ef78e --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager+Testing.h @@ -0,0 +1,28 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterManager.h" + +/** + * Extensions for testing purposes only. + */ +@interface GMUClusterManager (Testing) + +/** + * Returns in number of cluster requests. + */ +- (NSUInteger)clusterRequestCount; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.h new file mode 100644 index 00000000..bcbc515f --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.h @@ -0,0 +1,138 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterAlgorithm.h" +#import "GMUClusterItem.h" +#import "GMUClusterRenderer.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GMUClusterManager; + +/** + * Delegate for events on the GMUClusterManager. + */ +@protocol GMUClusterManagerDelegate + +@optional + +/** + * Called when the user taps on a cluster marker. + * @return YES if this delegate handled the tap event, + * and NO to pass this tap event to other handlers. + */ +- (BOOL)clusterManager:(GMUClusterManager *)clusterManager didTapCluster:(id)cluster; + +/** + * Called when the user taps on a cluster item marker. + * @return YES if this delegate handled the tap event, + * and NO to pass this tap event to other handlers. + */ +- (BOOL)clusterManager:(GMUClusterManager *)clusterManager + didTapClusterItem:(id)clusterItem; + +@end + +/** + * This class groups many items on a map based on zoom level. + * Cluster items should be added to the map via this class. + */ +@interface GMUClusterManager : NSObject + +/** + * The default initializer is not available. Use initWithMap:algorithm:renderer instead. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns a new instance of the GMUClusterManager class defined by it's |algorithm| and |renderer|. + */ +- (instancetype)initWithMap:(GMSMapView *)mapView + algorithm:(id)algorithm + renderer:(id)renderer NS_DESIGNATED_INITIALIZER; + +/** + * Returns the clustering algorithm. + */ +@property(nonatomic, readonly) id algorithm; + +/** + * GMUClusterManager |delegate|. + * To set it use the setDelegate:mapDelegate: method. + */ +@property(nonatomic, readonly, weak, nullable) id delegate; + +/** + * The GMSMapViewDelegate delegate that map events are being forwarded to. + * To set it use the setDelegate:mapDelegate: method. + */ +@property(nonatomic, readonly, weak, nullable) id mapDelegate; + +/** + * Sets a |mapDelegate| to listen to forwarded map events. + */ +- (void)setMapDelegate:(id _Nullable)mapDelegate; + +/** + * Sets GMUClusterManagerDelegate |delegate| and optionally + * provides a |mapDelegate| to listen to forwarded map events. + * + * NOTES: This method changes the |delegate| property of the + * managed |mapView| to this object, intercepting events that + * the GMUClusterManager wants to action or rebroadcast + * to the GMUClusterManagerDelegate. Any remaining events are + * then forwarded to the new |mapDelegate| provided here. + * + * EXAMPLE: [clusterManager setDelegate:self mapDelegate:_map.delegate]; + * In this example self will receive type-safe GMUClusterManagerDelegate + * events and other map events will be forwarded to the current map delegate. + */ +- (void)setDelegate:(id _Nullable)delegate + mapDelegate:(id _Nullable)mapDelegate; + +/** + * Adds a cluster item to the collection. + */ +- (void)addItem:(id)item; + +/** + * Adds multiple cluster items to the collection. + */ +- (void)addItems:(NSArray> *)items; + +/** + * Removes a cluster item from the collection. + */ +- (void)removeItem:(id)item; + +/** + * Removes all items from the collection. + */ +- (void)clearItems; + +/** + * Called to arrange items into groups. + * - This method will be automatically invoked when the map's zoom level changes. + * - Manually invoke this method when new items have been added to rearrange items. + */ +- (void)cluster; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.m new file mode 100644 index 00000000..8232d7c8 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUClusterManager.m @@ -0,0 +1,285 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterManager+Testing.h" + +#import "GMUClusterRenderer.h" +#import "GMUSimpleClusterAlgorithm.h" + +static NSString *const kGMUCameraKeyPath = @"camera"; + +// How long to wait for a cluster request before actually performing the clustering operation +// to avoid continuous clustering when the camera is moving which can affect performance. +static const double kGMUClusterWaitIntervalSeconds = 0.2; + +@implementation GMUClusterManager { + // The map view that this object is associated with. + GMSMapView *_mapView; + + // Position of the camera on the previous cluster invocation. + GMSCameraPosition *_previousCamera; + + // Tracks number of cluster requests so that we can safely ignore stale (redundant) ones. + NSUInteger _clusterRequestCount; + + // Renderer. + id _renderer; +} + +- (instancetype)initWithMap:(GMSMapView *)mapView + algorithm:(id)algorithm + renderer:(id)renderer { + if ((self = [super init])) { + _algorithm = [[GMUSimpleClusterAlgorithm alloc] init]; + _mapView = mapView; + _previousCamera = _mapView.camera; + _algorithm = algorithm; + _renderer = renderer; + + [_mapView addObserver:self + forKeyPath:kGMUCameraKeyPath + options:NSKeyValueObservingOptionNew + context:nil]; + } + + return self; +} + +- (void)dealloc { + [_mapView removeObserver:self forKeyPath:kGMUCameraKeyPath]; +} + +- (void) setMapDelegate:(id _Nullable)mapDelegate { + _mapView.delegate = self; + _mapDelegate = mapDelegate; +} + +- (void)setDelegate:(id)delegate + mapDelegate:(id _Nullable)mapDelegate { + _delegate = delegate; + _mapView.delegate = self; + _mapDelegate = mapDelegate; +} + +- (void)addItem:(id)item { + [_algorithm addItems:[[NSMutableArray alloc] initWithObjects:item, nil]]; +} + +- (void)addItems:(NSArray> *)items { + [_algorithm addItems:items]; +} + +- (void)removeItem:(id)item { + [_algorithm removeItem:item]; +} + +- (void)clearItems { + [_algorithm clearItems]; + [self requestCluster]; +} + +- (void)cluster { + NSUInteger integralZoom = (NSUInteger)floorf(_mapView.camera.zoom + 0.5f); + NSArray> *clusters = [_algorithm clustersAtZoom:integralZoom]; + [_renderer renderClusters:clusters]; + _previousCamera = _mapView.camera; +} + +#pragma mark GMSMapViewDelegate + +- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { + if ([_delegate respondsToSelector:@selector(clusterManager:didTapCluster:)] && + [marker.userData conformsToProtocol:@protocol(GMUCluster)]) { + id cluster = marker.userData; + if ([_delegate clusterManager:self didTapCluster:cluster]) { + return YES; + } + } + + if ([_delegate respondsToSelector:@selector(clusterManager:didTapClusterItem:)] && + [marker.userData conformsToProtocol:@protocol(GMUClusterItem)]) { + id clusterItem = marker.userData; + if ([_delegate clusterManager:self didTapClusterItem:clusterItem]) { + return YES; + } + } + + // Forward to _mapDelegate as a fallback. + if ([_mapDelegate respondsToSelector:@selector(mapView:didTapMarker:)]) { + return [_mapDelegate mapView:mapView didTapMarker:marker]; + } + + return NO; +} + +#pragma mark Delegate Forwards + +- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture { + if ([_mapDelegate respondsToSelector:@selector(mapView:willMove:)]) { + [_mapDelegate mapView:mapView willMove:gesture]; + } +} + +- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { + if ([_mapDelegate respondsToSelector:@selector(mapView:didChangeCameraPosition:)]) { + [_mapDelegate mapView:mapView didChangeCameraPosition:position]; + } +} + +- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position { + if ([_mapDelegate respondsToSelector:@selector(mapView:idleAtCameraPosition:)]) { + [_mapDelegate mapView:mapView idleAtCameraPosition:position]; + } +} + +- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate { + if ([_mapDelegate respondsToSelector:@selector(mapView:didTapAtCoordinate:)]) { + [_mapDelegate mapView:mapView didTapAtCoordinate:coordinate]; + } +} + +- (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate { + if ([_mapDelegate respondsToSelector:@selector(mapView:didLongPressAtCoordinate:)]) { + [_mapDelegate mapView:mapView didLongPressAtCoordinate:coordinate]; + } +} + +- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didTapInfoWindowOfMarker:)]) { + [_mapDelegate mapView:mapView didTapInfoWindowOfMarker:marker]; + } +} + +- (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didLongPressInfoWindowOfMarker:)]) { + [_mapDelegate mapView:mapView didLongPressInfoWindowOfMarker:marker]; + } +} + +- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay { + if ([_mapDelegate respondsToSelector:@selector(mapView:didTapOverlay:)]) { + [_mapDelegate mapView:mapView didTapOverlay:overlay]; + } +} + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:markerInfoWindow:)]) { + return [_mapDelegate mapView:mapView markerInfoWindow:marker]; + } + return nil; +} + +- (void)mapView:(GMSMapView *)mapView + didTapPOIWithPlaceID:(NSString *)placeID + name:(NSString *)name + location:(CLLocationCoordinate2D)location { + if ([_mapDelegate respondsToSelector:@selector(mapView:didTapPOIWithPlaceID:name:location:)]) { + [_mapDelegate mapView:mapView didTapPOIWithPlaceID:placeID name:name location:location]; + } +} + +- (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:markerInfoContents:)]) { + return [_mapDelegate mapView:mapView markerInfoContents:marker]; + } + return nil; +} + +- (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didCloseInfoWindowOfMarker:)]) { + [_mapDelegate mapView:mapView didCloseInfoWindowOfMarker:marker]; + } +} + +- (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didBeginDraggingMarker:)]) { + [_mapDelegate mapView:mapView didBeginDraggingMarker:marker]; + } +} + +- (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didEndDraggingMarker:)]) { + [_mapDelegate mapView:mapView didEndDraggingMarker:marker]; + } +} + +- (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker { + if ([_mapDelegate respondsToSelector:@selector(mapView:didDragMarker:)]) { + [_mapDelegate mapView:mapView didDragMarker:marker]; + } +} + +- (BOOL)didTapMyLocationButtonForMapView:(GMSMapView *)mapView { + if ([_mapDelegate respondsToSelector:@selector(didTapMyLocationButtonForMapView:)]) { + return [_mapDelegate didTapMyLocationButtonForMapView:mapView]; + } + return NO; +} + +- (void)mapViewDidStartTileRendering:(GMSMapView *)mapView { + if ([_mapDelegate respondsToSelector:@selector(mapViewDidStartTileRendering:)]) { + [_mapDelegate mapViewDidStartTileRendering:mapView]; + } +} + +- (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView { + if ([_mapDelegate respondsToSelector:@selector(mapViewDidFinishTileRendering:)]) { + [_mapDelegate mapViewDidFinishTileRendering:mapView]; + } +} + +#pragma mark Testing + +- (NSUInteger)clusterRequestCount { + return _clusterRequestCount; +} + +#pragma mark Private + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { + GMSCameraPosition *camera = _mapView.camera; + NSUInteger previousIntegralZoom = (NSUInteger)floorf(_previousCamera.zoom + 0.5f); + NSUInteger currentIntegralZoom = (NSUInteger)floorf(camera.zoom + 0.5f); + if (previousIntegralZoom != currentIntegralZoom) { + [self requestCluster]; + } else { + [_renderer update]; + } +} + +- (void)requestCluster { + __weak GMUClusterManager *weakSelf = self; + ++_clusterRequestCount; + NSUInteger requestNumber = _clusterRequestCount; + dispatch_after( + dispatch_time(DISPATCH_TIME_NOW, (int64_t)(kGMUClusterWaitIntervalSeconds * NSEC_PER_SEC)), + dispatch_get_main_queue(), ^{ + GMUClusterManager *strongSelf = weakSelf; + if (strongSelf == nil) { + return; + } + + // Ignore if there are newer requests. + if (requestNumber != strongSelf->_clusterRequestCount) { + return; + } + [strongSelf cluster]; + }); +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.h new file mode 100644 index 00000000..9a142105 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.h @@ -0,0 +1,64 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUCluster.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Defines a cluster where its position is fixed upon construction. + */ +@interface GMUStaticCluster : NSObject + +/** + * The default initializer is not available. Use initWithPosition: instead. + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns a new instance of the GMUStaticCluster class defined by it's position. + */ +- (instancetype)initWithPosition:(CLLocationCoordinate2D)position NS_DESIGNATED_INITIALIZER; + +/** + * Returns the position of the cluster. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D position; + +/** + * Returns the number of items in the cluster. + */ +@property(nonatomic, readonly) NSUInteger count; + +/** + * Returns a copy of the list of items in the cluster. + */ +@property(nonatomic, readonly) NSArray> *items; + +/** + * Adds an item to the cluster. + */ +- (void)addItem:(id)item; + +/** + * Removes an item to the cluster. + */ +- (void)removeItem:(id)item; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.m new file mode 100644 index 00000000..4fde3d83 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/GMUStaticCluster.m @@ -0,0 +1,50 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUStaticCluster.h" + +@implementation GMUStaticCluster { + NSMutableArray> *_items; +} + +- (instancetype)initWithPosition:(CLLocationCoordinate2D)position { + if ((self = [super init])) { + _items = [[NSMutableArray alloc] init]; + _position = position; + } + return self; +} + +- (NSUInteger)count { + return _items.count; +} + +- (NSArray> *)items { + return [_items copy]; +} + +- (void)addItem:(id)item { + [_items addObject:item]; +} + +- (void)removeItem:(id)item { + [_items removeObject:item]; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterIconGenerator.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterIconGenerator.h new file mode 100644 index 00000000..36df0611 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterIconGenerator.h @@ -0,0 +1,29 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +/** + * Defines a contract for cluster icon generation. + */ +@protocol GMUClusterIconGenerator + +/** + * Generates an icon with the given size. + */ +- (UIImage *)iconForSize:(NSUInteger)size; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterRenderer.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterRenderer.h new file mode 100644 index 00000000..e7e06b58 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUClusterRenderer.h @@ -0,0 +1,36 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUCluster.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Defines a common contract for a cluster renderer. + */ +@protocol GMUClusterRenderer + +// Renders a list of clusters. +- (void)renderClusters:(NSArray> *)clusters; + +// Notifies renderer that the viewport has changed and renderer needs to update. +// For example new clusters may become visible and need to be shown on map. +- (void)update; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator+Testing.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator+Testing.h new file mode 100644 index 00000000..e48bd539 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator+Testing.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUDefaultClusterIconGenerator.h" + +/* Extensions for testing purposes only. */ +@interface GMUDefaultClusterIconGenerator (Testing) + +/* Draws |text| on top of an |image| and returns the resultant image. */ +- (UIImage *)iconForText:(NSString *)text withBaseImage:(UIImage *)image; + +/** + * Draws |text| on top of a circle whose background color is determined by |bucketIndex| + * and returns the resultant image. + */ +- (UIImage *)iconForText:(NSString *)text withBucketIndex:(NSUInteger)bucketIndex; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.h new file mode 100644 index 00000000..86814fcd --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterIconGenerator.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This class places clusters into range-based buckets of size to avoid having too many distinct + * cluster icons. For example a small cluster of 1 to 9 items will have a icon with a text label + * of 1 to 9. Whereas clusters with a size of 100 to 199 items will be placed in the 100+ bucket + * and have the '100+' icon shown. + * This caches already generated icons for performance reasons. + */ +@interface GMUDefaultClusterIconGenerator : NSObject + +/** + * Initializes the object with default buckets and auto generated background images. + */ +- (instancetype)init; + +/** + * Initializes the object with given |buckets| and auto generated background images. + */ +- (instancetype)initWithBuckets:(NSArray *)buckets; + +/** + * Initializes the class with a list of buckets and the corresponding background images. + * The backgroundImages array should ideally be big enough to hold the cluster label. + * Notes: + * - |buckets| should be strictly increasing. For example: @[@10, @20, @100, @1000]. + * - |buckets| and |backgroundImages| must have equal non zero lengths. + */ +- (instancetype)initWithBuckets:(NSArray *)buckets + backgroundImages:(NSArray *)backgroundImages; + +/** + * Initializes the class with a list of buckets and the corresponding background colors. + * + * Notes: + * - |buckets| should be strictly increasing. For example: @[@10, @20, @100, @1000]. + * - |buckets| and |backgroundColors| must have equal non zero lengths. + */ +- (instancetype)initWithBuckets:(NSArray *)buckets + backgroundColors:(NSArray *)backgroundColors; + +/** + * Generates an icon with the given size. + */ +- (UIImage *)iconForSize:(NSUInteger)size; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.m new file mode 100644 index 00000000..a33b019c --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterIconGenerator.m @@ -0,0 +1,212 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUDefaultClusterIconGenerator+Testing.h" + +#define UIColorFromHEX(hexValue) \ + [UIColor colorWithRed:((CGFloat)((hexValue & 0xff0000) >> 16)) / 255.0 \ + green:((CGFloat)((hexValue & 0x00ff00) >> 8)) / 255.0 \ + blue:((CGFloat)((hexValue & 0x0000ff) >> 0)) / 255.0 \ + alpha:1.0] + +// Default bucket background colors when no background images are set. +static NSArray *kGMUBucketBackgroundColors; + +@implementation GMUDefaultClusterIconGenerator { + NSCache *_iconCache; + NSArray *_buckets; + NSArray *_backgroundImages; + NSArray *_backgroundColors; +} + ++ (void)initialize { + kGMUBucketBackgroundColors = @[ + UIColorFromHEX(0x0099cc), + UIColorFromHEX(0x669900), + UIColorFromHEX(0xff8800), + UIColorFromHEX(0xcc0000), + UIColorFromHEX(0x9933cc), + ]; +} + +- (instancetype)init { + if ((self = [super init]) != nil) { + _iconCache = [[NSCache alloc] init]; + _buckets = @[ @10, @50, @100, @200, @1000 ]; + _backgroundColors = [kGMUBucketBackgroundColors copy]; + } + return self; +} + +- (instancetype)initWithBuckets:(NSArray *)buckets + backgroundImages:(NSArray *)backgroundImages { + if ((self = [self initWithBuckets:buckets]) != nil) { + if (buckets.count != backgroundImages.count) { + [NSException raise:NSInvalidArgumentException + format:@"buckets' size: %lu is not equal to backgroundImages' size: %lu", + (unsigned long)buckets.count, (unsigned long)backgroundImages.count]; + } + + _backgroundImages = [backgroundImages copy]; + } + return self; +} + +- (instancetype)initWithBuckets:(NSArray *)buckets + backgroundColors:(NSArray *)backgroundColors { + if ((self = [self initWithBuckets:buckets]) != nil) { + if (buckets.count != backgroundColors.count) { + [NSException raise:NSInvalidArgumentException + format:@"buckets' size: %lu is not equal to backgroundColors' size: %lu", + (unsigned long) buckets.count, (unsigned long) backgroundColors.count]; + } + + _backgroundColors = [backgroundColors copy]; + } + return self; +} + +- (instancetype)initWithBuckets:(NSArray *)buckets { + if ((self = [self init]) != nil) { + if (buckets.count == 0) { + [NSException raise:NSInvalidArgumentException format:@"buckets are empty"]; + } + for (int i = 0; i < buckets.count; ++i) { + if (buckets[i].longLongValue <= 0) { + [NSException raise:NSInvalidArgumentException + format:@"buckets have non positive values"]; + } + } + for (int i = 0; i < buckets.count - 1; ++i) { + if (buckets[i].longLongValue >= buckets[i+1].longLongValue) { + [NSException raise:NSInvalidArgumentException + format:@"buckets are not strictly increasing"]; + } + } + _buckets = [buckets copy]; + } + return self; +} + +- (UIImage *)iconForSize:(NSUInteger)size { + NSUInteger bucketIndex = [self bucketIndexForSize:size]; + NSString *text; + + // If size is smaller to first bucket size, use the size as is otherwise round it down to the + // nearest bucket to limit the number of cluster icons we need to generate. + if (size < _buckets[0].unsignedLongValue) { + text = [NSString stringWithFormat:@"%ld", (unsigned long)size]; + } else { + text = [NSString stringWithFormat:@"%ld+", _buckets[bucketIndex].unsignedLongValue]; + } + if (_backgroundImages != nil) { + UIImage *image = _backgroundImages[bucketIndex]; + return [self iconForText:text withBaseImage:image]; + } + return [self iconForText:text withBucketIndex:bucketIndex]; +} + +#pragma mark Private + +// Finds the smallest bucket which is greater than |size|. If none exists return the last bucket +// index (i.e |_buckets.count - 1|). +- (NSUInteger)bucketIndexForSize:(NSUInteger)size { + NSUInteger index = 0; + while (index + 1 < _buckets.count && _buckets[index + 1].unsignedLongValue <= size) { + ++index; + } + return index; +} + +- (UIImage *)iconForText:(NSString *)text withBaseImage:(UIImage *)image { + UIImage *icon = [_iconCache objectForKey:text]; + if (icon != nil) { + return icon; + } + + UIFont *font = [UIFont boldSystemFontOfSize:12]; + CGSize size = image.size; + UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f); + [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; + CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height); + + NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; + paragraphStyle.alignment = NSTextAlignmentCenter; + NSDictionary *attributes = @{ + NSFontAttributeName : font, + NSParagraphStyleAttributeName : paragraphStyle, + NSForegroundColorAttributeName : [UIColor whiteColor] + }; + CGSize textSize = [text sizeWithAttributes:attributes]; + CGRect textRect = CGRectInset(rect, (rect.size.width - textSize.width) / 2, + (rect.size.height - textSize.height) / 2); + [text drawInRect:CGRectIntegral(textRect) withAttributes:attributes]; + + UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + [_iconCache setObject:newImage forKey:text]; + return newImage; +} + +- (UIImage *)iconForText:(NSString *)text withBucketIndex:(NSUInteger)bucketIndex { + UIImage *icon = [_iconCache objectForKey:text]; + if (icon != nil) { + return icon; + } + + UIFont *font = [UIFont boldSystemFontOfSize:14]; + NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; + paragraphStyle.alignment = NSTextAlignmentCenter; + NSDictionary *attributes = @{ + NSFontAttributeName : font, + NSParagraphStyleAttributeName : paragraphStyle, + NSForegroundColorAttributeName : [UIColor whiteColor] + }; + CGSize textSize = [text sizeWithAttributes:attributes]; + + // Create an image context with a square shape to contain the text (with more padding for + // larger buckets). + CGFloat rectDimension = MAX(20, MAX(textSize.width, textSize.height)) + 3 * bucketIndex + 6; + CGRect rect = CGRectMake(0.f, 0.f, rectDimension, rectDimension); + UIGraphicsBeginImageContext(rect.size); + + // Draw background circle. + UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0f); + CGContextRef ctx = UIGraphicsGetCurrentContext(); + CGContextSaveGState(ctx); + bucketIndex = MIN(bucketIndex, _backgroundColors.count - 1); + UIColor *backColor = _backgroundColors[bucketIndex]; + CGContextSetFillColorWithColor(ctx, backColor.CGColor); + CGContextFillEllipseInRect(ctx, rect); + CGContextRestoreGState(ctx); + + // Draw text. + [[UIColor whiteColor] set]; + CGRect textRect = CGRectInset(rect, (rect.size.width - textSize.width) / 2, + (rect.size.height - textSize.height) / 2); + [text drawInRect:CGRectIntegral(textRect) withAttributes:attributes]; + UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + [_iconCache setObject:newImage forKey:text]; + return newImage; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer+Testing.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer+Testing.h new file mode 100644 index 00000000..e43491e8 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer+Testing.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2020 Google Inc. + * + * 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 "GMUDefaultClusterRenderer.h" + +/* Extensions for testing purposes only. */ +@interface GMUDefaultClusterRenderer (Testing) + +- (NSArray> *)visibleClustersFromClusters:(NSArray> *)clusters; + +- (void)clearMarkersAnimated:(NSArray *)markers; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.h new file mode 100644 index 00000000..c9657080 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.h @@ -0,0 +1,162 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUClusterRenderer.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GMSMapView; +@class GMSMarker; + +@protocol GMUCluster; +@protocol GMUClusterIconGenerator; +@protocol GMUClusterRenderer; + +/** + * Delegate for id to provide extra functionality to the default + * renderer. + */ +@protocol GMUClusterRendererDelegate + +@optional + +/** + * Returns a marker for an |object|. The |object| can be either an id + * or an id. Use this delegate to control of the life cycle of + * the marker. Any properties set on the returned marker will be honoured except + * for: .position, .icon, .groundAnchor, .zIndex and .userData. To customize + * these properties use renderer:willRenderMarker. + * Note that changing a marker's position is not recommended because it will + * interfere with the marker animation. + */ +- (nullable GMSMarker *)renderer:(id)renderer markerForObject:(id)object; + +/** + * Raised when a marker (for a cluster or an item) is about to be added to the map. + * Use the marker.userData property to check whether it is a cluster marker or an + * item marker. + */ +- (void)renderer:(id)renderer willRenderMarker:(GMSMarker *)marker; + +/** + * Raised when a marker (for a cluster or an item) has just been added to the map + * and animation has been added. + * Use the marker.userData property to check whether it is a cluster marker or an + * item marker. + */ +- (void)renderer:(id)renderer didRenderMarker:(GMSMarker *)marker; + +@end + +/** + * Default cluster renderer which shows clusters as markers with specialized icons. + * There is logic to decide whether to expand a cluster or not depending on the number of + * items or the zoom level. + * There is also some performance optimization where only clusters within the visisble + * region are shown. + */ +@interface GMUDefaultClusterRenderer : NSObject + +/** + * Creates a new cluster renderer with a given map view and icon generator. + * + * @param mapView The map view to use. + * @param iconGenerator The icon generator to use. Can be subclassed if required. + */ +- (instancetype)initWithMapView:(GMSMapView *)mapView + clusterIconGenerator:(id)iconGenerator; + +/** + * Animates the clusters to achieve splitting (when zooming in) and merging + * (when zooming out) effects: + * - splitting large clusters into smaller ones when zooming in. + * - merging small clusters into bigger ones when zooming out. + * + * NOTES: the position to animate to/from for each cluster is heuristically + * calculated by finding the first overlapping cluster. This means that: + * - when zooming in: + * if a cluster on a higher zoom level is made from multiple clusters on + * a lower zoom level the split will only animate the new cluster from + * one of them. + * - when zooming out: + * if a cluster on a higher zoom level is split into multiple parts to join + * multiple clusters at a lower zoom level, the merge will only animate + * the old cluster into one of them. + * Because of these limitations, the actual cluster sizes may not add up, for + * example people may see 3 clusters of size 3, 4, 5 joining to make up a cluster + * of only 8 for non-hierachical clusters. And vice versa, a cluster of 8 may + * split into 3 clusters of size 3, 4, 5. For hierarchical clusters, the numbers + * should add up however. + * + * Defaults to YES. + */ +@property(nonatomic) BOOL animatesClusters; + +/** + * Determines the minimum number of cluster items inside a cluster. + * Clusters smaller than this threshold will be expanded. + * + * Defaults to 4. + */ +@property(nonatomic) NSUInteger minimumClusterSize; + +/** + * Sets the maximium zoom level of the map on which the clustering + * should be applied. At zooms above this level, clusters will be expanded. + * This is to prevent cases where items are so close to each other than they + * are always grouped. + * + * Defaults to 20. + */ +@property(nonatomic) NSUInteger maximumClusterZoom; + +/** + * Sets the animation duration for marker splitting/merging effects. + * Measured in seconds. + * + * Defaults to 0.5. + */ +@property(nonatomic) double animationDuration; + +/** + * Allows setting a zIndex value for the clusters. This becomes useful + * when using multiple cluster data sets on the map and require a predictable + * way of displaying multiple sets with a predictable layering order. + * + * If no specific zIndex is not specified during the initialization, the + * default zIndex is '1'. Larger zIndex values are drawn over lower ones + * similar to the zIndex value of GMSMarkers. + */ +@property(nonatomic) int zIndex; + +/** Sets to further customize the renderer. */ +@property(nonatomic, nullable, weak) id delegate; + +/** + * Returns currently active markers. + */ +@property(nonatomic, readonly) NSArray *markers; + +/** + * If returns NO, cluster items will be expanded and rendered as normal markers. + * Subclass can override this method to provide custom logic. + */ +- (BOOL)shouldRenderAsCluster:(id)cluster atZoom:(float)zoom; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.m new file mode 100644 index 00000000..1906828b --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Clustering/View/GMUDefaultClusterRenderer.m @@ -0,0 +1,413 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUDefaultClusterRenderer.h" +#import "GMUClusterIconGenerator.h" +#import "GMUWrappingDictionaryKey.h" + +// Clusters smaller than this threshold will be expanded. +static const NSUInteger kGMUMinClusterSize = 4; + +// At zooms above this level, clusters will be expanded. +// This is to prevent cases where items are so close to each other than they are always grouped. +static const float kGMUMaxClusterZoom = 20; + +// Animation duration for marker splitting/merging effects. +static const double kGMUAnimationDuration = 0.5; // seconds. + +@implementation GMUDefaultClusterRenderer { + // Map view to render clusters on. + __weak GMSMapView *_mapView; + + // Collection of markers added to the map. + NSMutableArray *_mutableMarkers; + + // Icon generator used to create cluster icon. + id _clusterIconGenerator; + + // Current clusters being rendered. + NSArray> *_clusters; + + // Tracks clusters that have been rendered to the map. + NSMutableSet *_renderedClusters; + + // Tracks cluster items that have been rendered to the map. + NSMutableSet *_renderedClusterItems; + + // Stores previous zoom level to determine zooming direction (in/out). + float _previousZoom; + + // Lookup map from cluster item to an old cluster. + NSMutableDictionary> *_itemToOldClusterMap; + + // Lookup map from cluster item to a new cluster. + NSMutableDictionary> *_itemToNewClusterMap; +} + +- (instancetype)initWithMapView:(GMSMapView *)mapView + clusterIconGenerator:(id)iconGenerator { + if ((self = [super init])) { + _mapView = mapView; + _mutableMarkers = [[NSMutableArray alloc] init]; + _clusterIconGenerator = iconGenerator; + _renderedClusters = [[NSMutableSet alloc] init]; + _renderedClusterItems = [[NSMutableSet alloc] init]; + _animatesClusters = YES; + _minimumClusterSize = kGMUMinClusterSize; + _maximumClusterZoom = kGMUMaxClusterZoom; + _animationDuration = kGMUAnimationDuration; + + _zIndex = 1; + } + return self; +} + +- (void)dealloc { + [self clear]; +} + +- (BOOL)shouldRenderAsCluster:(id)cluster atZoom:(float)zoom { + return cluster.count >= _minimumClusterSize && zoom <= _maximumClusterZoom; +} + +#pragma mark GMUClusterRenderer + +- (void)renderClusters:(NSArray> *)clusters { + [_renderedClusters removeAllObjects]; + [_renderedClusterItems removeAllObjects]; + + if (_animatesClusters) { + [self renderAnimatedClusters:clusters]; + } else { + // No animation, just remove existing markers and add new ones. + _clusters = [clusters copy]; + [self clearMarkers:_mutableMarkers]; + _mutableMarkers = [[NSMutableArray alloc] init]; + [self addOrUpdateClusters:clusters animated:NO]; + } +} + +- (void)renderAnimatedClusters:(NSArray> *)clusters { + float zoom = _mapView.camera.zoom; + BOOL isZoomingIn = zoom > _previousZoom; + + [self prepareClustersForAnimation:clusters isZoomingIn:isZoomingIn]; + + _previousZoom = zoom; + + _clusters = [clusters copy]; + + NSMutableArray *existingMarkers = _mutableMarkers; + _mutableMarkers = [[NSMutableArray alloc] init]; + + [self addOrUpdateClusters:clusters animated:isZoomingIn]; + + // If the marker was re-added, remove from existingMarkers which will be cleared + for (GMSMarker *visibleMarker in _mutableMarkers) { + [existingMarkers removeObject:visibleMarker]; + } + + if (isZoomingIn) { + [self clearMarkers:existingMarkers]; + } else { + [self clearMarkersAnimated:existingMarkers]; + } +} + +- (void)clearMarkersAnimated:(NSArray *)markers { + // Remove existing markers: animate to nearest new cluster. + GMSCoordinateBounds *visibleBounds = + [[GMSCoordinateBounds alloc] initWithRegion:[_mapView.projection visibleRegion]]; + + for (GMSMarker *marker in markers) { + // If the marker for the attached userData has just been added, do not perform animation. + if ([_renderedClusterItems containsObject:marker.userData]) { + marker.map = nil; + continue; + } + // If the marker is outside the visible view port, do not perform animation. + if (![visibleBounds containsCoordinate:marker.position]) { + marker.map = nil; + continue; + } + + // Find a candidate cluster to animate to. + id toCluster = nil; + if ([marker.userData conformsToProtocol:@protocol(GMUCluster)]) { + id cluster = marker.userData; + toCluster = [self overlappingClusterForCluster:cluster itemMap:_itemToNewClusterMap]; + } else { + GMUWrappingDictionaryKey *key = + [[GMUWrappingDictionaryKey alloc] initWithObject:marker.userData]; + toCluster = [_itemToNewClusterMap objectForKey:key]; + } + // If there is not near by cluster to animate to, do not perform animation. + if (toCluster == nil) { + marker.map = nil; + continue; + } + + // All is good, perform the animation. + [CATransaction begin]; + [CATransaction setAnimationDuration:_animationDuration]; + CLLocationCoordinate2D toPosition = toCluster.position; + marker.layer.latitude = toPosition.latitude; + marker.layer.longitude = toPosition.longitude; + [CATransaction commit]; + } + + // Clears existing markers after animation has presumably ended. + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, _animationDuration * NSEC_PER_SEC), + dispatch_get_main_queue(), ^{ + [self clearMarkers:markers]; + }); +} + +// Called when camera is changed to reevaluate if new clusters need to be displayed because +// they become visible. +- (void)update { + [self addOrUpdateClusters:_clusters animated:NO]; +} + +- (NSArray *)markers { + return [_mutableMarkers copy]; +} + +#pragma mark Private + +// Builds lookup map for item to old clusters, new clusters. +- (void)prepareClustersForAnimation:(NSArray> *)newClusters + isZoomingIn:(BOOL)isZoomingIn { + float zoom = _mapView.camera.zoom; + + if (isZoomingIn) { + _itemToOldClusterMap = + [[NSMutableDictionary> alloc] init]; + for (id cluster in _clusters) { + if (![self shouldRenderAsCluster:cluster atZoom:zoom] + && ![self shouldRenderAsCluster:cluster atZoom:_previousZoom]) { + continue; + } + for (id clusterItem in cluster.items) { + GMUWrappingDictionaryKey *key = + [[GMUWrappingDictionaryKey alloc] initWithObject:clusterItem]; + [_itemToOldClusterMap setObject:cluster forKey:key]; + } + } + _itemToNewClusterMap = nil; + } else { + _itemToOldClusterMap = nil; + _itemToNewClusterMap = + [[NSMutableDictionary> alloc] init]; + for (id cluster in newClusters) { + if (![self shouldRenderAsCluster:cluster atZoom:zoom]) continue; + for (id clusterItem in cluster.items) { + GMUWrappingDictionaryKey *key = + [[GMUWrappingDictionaryKey alloc] initWithObject:clusterItem]; + [_itemToNewClusterMap setObject:cluster forKey:key]; + } + } + } +} + +// Goes through each cluster |clusters| and add a marker for it if it is: +// - inside the visible region of the camera. +// - not yet already added. +- (void)addOrUpdateClusters:(NSArray> *)clusters animated:(BOOL)animated { + GMSCoordinateBounds *visibleBounds = + [[GMSCoordinateBounds alloc] initWithRegion:[_mapView.projection visibleRegion]]; + + for (id cluster in clusters) { + if ([_renderedClusters containsObject:cluster]) continue; + + BOOL shouldShowCluster = [visibleBounds containsCoordinate:cluster.position]; + BOOL shouldRenderAsCluster = [self shouldRenderAsCluster:cluster atZoom: _mapView.camera.zoom]; + + if (!shouldShowCluster) { + for (id item in cluster.items) { + if (!shouldRenderAsCluster && [visibleBounds containsCoordinate:item.position]) { + shouldShowCluster = YES; + break; + } + if (animated) { + GMUWrappingDictionaryKey *key = [[GMUWrappingDictionaryKey alloc] initWithObject:item]; + id oldCluster = [_itemToOldClusterMap objectForKey:key]; + if (oldCluster != nil && [visibleBounds containsCoordinate:oldCluster.position]) { + shouldShowCluster = YES; + break; + } + } + } + } + if (shouldShowCluster) { + [self renderCluster:cluster animated:animated]; + } + } +} + +- (void)renderCluster:(id)cluster animated:(BOOL)animated { + float zoom = _mapView.camera.zoom; + if ([self shouldRenderAsCluster:cluster atZoom:zoom]) { + CLLocationCoordinate2D fromPosition = kCLLocationCoordinate2DInvalid; + if (animated) { + id fromCluster = + [self overlappingClusterForCluster:cluster itemMap:_itemToOldClusterMap]; + animated = fromCluster != nil; + fromPosition = fromCluster.position; + } + + UIImage *icon = [_clusterIconGenerator iconForSize:cluster.count]; + GMSMarker *marker = [self markerWithPosition:cluster.position + from:fromPosition + userData:cluster + clusterIcon:icon + animated:animated]; + [_mutableMarkers addObject:marker]; + } else { + for (id item in cluster.items) { + GMSMarker *marker; + if ([item class] == [GMSMarker class]) { + marker = (GMSMarker *)item; + marker.map = _mapView; + } else { + CLLocationCoordinate2D fromPosition = kCLLocationCoordinate2DInvalid; + BOOL shouldAnimate = animated; + if (shouldAnimate) { + GMUWrappingDictionaryKey *key = [[GMUWrappingDictionaryKey alloc] initWithObject:item]; + id fromCluster = [_itemToOldClusterMap objectForKey:key]; + shouldAnimate = fromCluster != nil; + fromPosition = fromCluster.position; + } + marker = [self markerWithPosition:item.position + from:fromPosition + userData:item + clusterIcon:nil + animated:shouldAnimate]; + if ([item respondsToSelector:@selector(title)]) { + marker.title = item.title; + } + if ([item respondsToSelector:@selector(snippet)]) { + marker.snippet = item.snippet; + } + } + [_mutableMarkers addObject:marker]; + [_renderedClusterItems addObject:item]; + } + } + [_renderedClusters addObject:cluster]; +} + +- (GMSMarker *)markerForObject:(id)object { + GMSMarker *marker; + if ([_delegate respondsToSelector:@selector(renderer:markerForObject:)]) { + marker = [_delegate renderer:self markerForObject:object]; + } + return marker ?: [[GMSMarker alloc] init]; +} + +// Returns a marker at final position of |position| with attached |userData|. +// If animated is YES, animates from the closest point from |points|. +- (GMSMarker *)markerWithPosition:(CLLocationCoordinate2D)position + from:(CLLocationCoordinate2D)from + userData:(id)userData + clusterIcon:(UIImage *)clusterIcon + animated:(BOOL)animated { + GMSMarker *marker = [self markerForObject:userData]; + CLLocationCoordinate2D initialPosition = animated ? from : position; + marker.position = initialPosition; + marker.userData = userData; + if (clusterIcon != nil) { + marker.icon = clusterIcon; + marker.groundAnchor = CGPointMake(0.5, 0.5); + } + marker.zIndex = _zIndex; + + if ([_delegate respondsToSelector:@selector(renderer:willRenderMarker:)]) { + [_delegate renderer:self willRenderMarker:marker]; + } + marker.map = _mapView; + + if (animated) { + [CATransaction begin]; + [CATransaction setAnimationDuration:_animationDuration]; + marker.layer.latitude = position.latitude; + marker.layer.longitude = position.longitude; + [CATransaction commit]; + } + + if ([_delegate respondsToSelector:@selector(renderer:didRenderMarker:)]) { + [_delegate renderer:self didRenderMarker:marker]; + } + return marker; +} + +// Returns clusters which should be rendered and is inside the camera visible region. +- (NSArray> *)visibleClustersFromClusters:(NSArray> *)clusters { + NSMutableArray *visibleClusters = [[NSMutableArray alloc] init]; + float zoom = _mapView.camera.zoom; + GMSCoordinateBounds *visibleBounds = + [[GMSCoordinateBounds alloc] initWithRegion:[_mapView.projection visibleRegion]]; + for (id cluster in clusters) { + if (![visibleBounds containsCoordinate:cluster.position]) continue; + if (![self shouldRenderAsCluster:cluster atZoom:zoom]) continue; + [visibleClusters addObject:cluster]; + } + return visibleClusters; +} + +// Returns the first cluster in |itemMap| that shares a common item with the input |cluster|. +// Used for heuristically finding candidate cluster to animate to/from. +- (id)overlappingClusterForCluster: + (id)cluster + itemMap:(NSDictionary> *)itemMap { + id found = nil; + for (id item in cluster.items) { + GMUWrappingDictionaryKey *key = [[GMUWrappingDictionaryKey alloc] initWithObject:item]; + id candidate = [itemMap objectForKey:key]; + if (candidate != nil) { + found = candidate; + break; + } + } + return found; +} + +// Removes all existing markers from the attached map. +- (void)clear { + [self clearMarkers:_mutableMarkers]; + [_mutableMarkers removeAllObjects]; + [_renderedClusters removeAllObjects]; + [_renderedClusterItems removeAllObjects]; + [_itemToNewClusterMap removeAllObjects]; + [_itemToOldClusterMap removeAllObjects]; + _clusters = nil; +} + +- (void)clearMarkers:(NSArray *)markers { + for (GMSMarker *marker in markers) { + if ([marker.userData conformsToProtocol:@protocol(GMUCluster)]) { + marker.userData = nil; + } + marker.map = nil; + } +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.h new file mode 100644 index 00000000..904e6e49 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.h @@ -0,0 +1,61 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +NS_ASSUME_NONNULL_BEGIN + +@protocol GMUGeometryContainer; + +/** + * Instances of this class parse GeoJSON data. The parsed features are stored in NSArray objects + * which can then be passed to a GMUGeometryRenderer to display on a Google Map. + */ +@interface GMUGeoJSONParser : NSObject + +/** + * The features parsed from the GeoJSON file. + */ +@property(nonatomic, readonly) NSArray> *features; + +/** + * Initializes a GMUGeoJSONParser with GeoJSON data contained in a URL. + * + * @param url The url containing GeoJSON data. + */ +- (instancetype)initWithURL:(NSURL *)url; + +/** + * Initializes a GMUGeoJSONParser with GeoJSON data. + * + * @param data The GeoJSON data. + */ +- (instancetype)initWithData:(NSData *)data; + +/** + * Initializes a GMUGeoJSONParser with GeoJSON data contained in an input stream. + * + * @param stream The stream to use to access GeoJSON data. + */ +- (instancetype)initWithStream:(NSInputStream *)stream; + +/** + * Parses the stored GeoJSON data. + */ +- (void)parse; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.m new file mode 100644 index 00000000..33364ad8 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeoJSONParser.m @@ -0,0 +1,334 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeoJSONParser.h" + +#import + +#import + +#import "GMUFeature.h" +#import "GMUGeometryCollection.h" +#import "GMULineString.h" +#import "GMUPoint.h" +#import "GMUPolygon.h" + +static NSString *const kGMUTypeMember = @"type"; +static NSString *const kGMUIdMember = @"id"; +static NSString *const kGMUGeometryMember = @"geometry"; +static NSString *const kGMUGeometriesMember = @"geometries"; +static NSString *const kGMUPropertiesMember = @"properties"; +static NSString *const kGMUBoundingBoxMember = @"bbox"; +static NSString *const kGMUCoordinatesMember = @"coordinates"; +static NSString *const kGMUFeaturesMember = @"features"; +static NSString *const kGMUFeatureValue = @"Feature"; +static NSString *const kGMUFeatureCollectionValue = @"FeatureCollection"; +static NSString *const kGMUPointValue = @"Point"; +static NSString *const kGMUMultiPointValue = @"MultiPoint"; +static NSString *const kGMULineStringValue = @"LineString"; +static NSString *const kGMUMultiLineStringValue = @"MultiLineString"; +static NSString *const kGMUPolygonValue = @"Polygon"; +static NSString *const kGMUMultiPolygonValue = @"MultiPolygon"; +static NSString *const kGMUGeometryCollectionValue = @"GeometryCollection"; +static NSString *const kGMUGeometryRegex = + @"^(Point|MultiPoint|LineString|MultiLineString|Polygon|MultiPolygon|GeometryCollection)$"; + +@implementation GMUGeoJSONParser { + /** + * The data object containing the GeoJSON to be parsed. + */ + NSData *_data; + + /** + * The stream containing the GeoJSON to be parsed. + */ + NSInputStream *_stream; + + /** + * The parsed GeoJSON file. + */ + NSDictionary *_JSONDict; + + /** + * The list of parsed Features. + */ + NSMutableArray *_features; + + /** + * The bounding box for a FeatureCollection. This will only be set when parsing a + * FeatureCollection. + */ + GMSCoordinateBounds *_boundingBox; + + /** + * The format that a geometry element may take. + */ + NSRegularExpression *_geometryRegex; + + /** + * The format that a multigeometry element may take. + */ + NSRegularExpression *_multiGeometryRegex; + + /** + * Whether the parser has completed parsing the input file. + */ + BOOL _isParsed; +} + +- (instancetype)initWithData:(NSData *)data { + if (self = [super init]) { + _data = data; + [self sharedInit]; + } + return self; +} + +- (instancetype)initWithStream:(NSInputStream *)stream { + if (self = [super init]) { + _stream = stream; + [self sharedInit]; + } + return self; +} + +- (instancetype)initWithURL:(NSURL *)url { + if (self = [super init]) { + _data = [[NSData alloc] initWithContentsOfURL:url]; + [self sharedInit]; + } + return self; +} + +- (void)sharedInit { + _features = [[NSMutableArray alloc] init]; + _geometryRegex = [NSRegularExpression regularExpressionWithPattern:kGMUGeometryRegex + options:0 + error:nil]; +} + +- (NSArray *)features { + return _features; +} + +- (void)parse { + if (_isParsed) { + return; + } + if (_data) { + _JSONDict = [NSJSONSerialization JSONObjectWithData:_data options:0 error:nil]; + } else if (_stream) { + [_stream open]; + _JSONDict = [NSJSONSerialization JSONObjectWithStream:_stream options:0 error:nil]; + [_stream close]; + } + if (!_JSONDict || ![_JSONDict isKindOfClass:[NSDictionary class]]) { + return; + } + NSString *type = [_JSONDict objectForKey:kGMUTypeMember]; + if (type == nil) { + return; + } + GMUFeature *feature; + if ([type isEqual:kGMUFeatureValue]) { + feature = [self featureFromDict:_JSONDict]; + if (feature) { + [_features addObject:feature]; + } + } else if ([type isEqual:kGMUFeatureCollectionValue]) { + NSArray *featureCollection = [self featureCollectionFromDict:_JSONDict]; + if (featureCollection) { + [_features addObjectsFromArray:featureCollection]; + } + } else if ([_geometryRegex firstMatchInString:type + options:0 + range:NSMakeRange(0, [type length])]) { + feature = [self featureFromGeometryDict:_JSONDict]; + if (feature) { + [_features addObject:feature]; + } + } + _isParsed = true; +} + +- (GMUFeature *)featureFromDict:(NSDictionary *)feature { + id geometry; + NSString *identifier = [feature objectForKey:kGMUIdMember]; + GMSCoordinateBounds *boundingBox; + NSDictionary *properties = [feature objectForKey:kGMUPropertiesMember]; + if ([feature objectForKey:kGMUGeometryMember]) { + geometry = [self geometryFromDict:[feature objectForKey:kGMUGeometryMember]]; + } + if (_boundingBox) { + boundingBox = _boundingBox; + } else if ([feature objectForKey:kGMUBoundingBoxMember]) { + boundingBox = [self boundingBoxFromCoordinates:[feature objectForKey:kGMUBoundingBoxMember]]; + } + return [[GMUFeature alloc] initWithGeometry:geometry + identifier:identifier + properties:properties + boundingBox:boundingBox]; +} + +- (NSArray *)featureCollectionFromDict:(NSDictionary *)features { + NSMutableArray *parsedFeatures = [[NSMutableArray alloc] init]; + if ([features objectForKey:kGMUBoundingBoxMember]) { + _boundingBox = [self boundingBoxFromCoordinates:[features objectForKey:kGMUBoundingBoxMember]]; + } + NSArray *geoJSONFeatures = [features objectForKey:kGMUFeaturesMember]; + for (NSDictionary *feature in geoJSONFeatures) { + if ([[feature objectForKey:kGMUTypeMember] isEqual:kGMUFeatureValue]) { + GMUFeature *parsedFeature = [self featureFromDict:feature]; + if (parsedFeature) { + [parsedFeatures addObject:parsedFeature]; + } + } + } + return parsedFeatures; +} + +/** + * Creates a GMSCoordinateBounds object from a set of coordinates. + * + * @param coordinates The coordinates for the bounding box in the order west, south, east, north. + * @return A bounding box with the specified coordinates. + */ +- (GMSCoordinateBounds *)boundingBoxFromCoordinates:(NSArray *)coordinates { + CLLocationCoordinate2D southWest = + CLLocationCoordinate2DMake([coordinates[1] doubleValue], [coordinates[0] doubleValue]); + CLLocationCoordinate2D northEast = + CLLocationCoordinate2DMake([coordinates[3] doubleValue], [coordinates[2] doubleValue]); + return [[GMSCoordinateBounds alloc] initWithCoordinate:northEast coordinate:southWest]; +} + +- (id)geometryFromDict:(NSDictionary *)dict { + NSString *geometryType = [dict objectForKey:kGMUTypeMember]; + NSArray *geometryArray; + if ([geometryType isEqual:kGMUGeometryCollectionValue]) { + geometryArray = [dict objectForKey:kGMUGeometriesMember]; + } else if ([geometryType isEqual:kGMUGeometriesMember]) { + geometryArray = [dict objectForKey:kGMUGeometryCollectionValue]; + } else if ([_geometryRegex firstMatchInString:geometryType + options:0 + range:NSMakeRange(0, [geometryType length])]) { + geometryArray = [dict objectForKey:kGMUCoordinatesMember]; + } else { + return nil; + } + return [self geometryWithGeometryType:geometryType geometryArray:geometryArray]; +} + +- (GMUFeature *)featureFromGeometryDict:(NSDictionary *)JSONGeometry { + id geometry = [self geometryFromDict:JSONGeometry]; + if (geometry) { + return [[GMUFeature alloc] initWithGeometry:geometry + identifier:nil + properties:nil + boundingBox:nil]; + } + return nil; +} + +- (id)geometryWithGeometryType:(NSString *)geometryType + geometryArray:(NSArray *)geometryArray { + if ([geometryType isEqual:kGMUPointValue]) { + return [self pointWithCoordinate:geometryArray]; + } else if ([geometryType isEqual:kGMUMultiPointValue]) { + return [self multiPointWithCoordinates:geometryArray]; + } else if ([geometryType isEqual:kGMULineStringValue]) { + return [self lineStringWithCoordinates:geometryArray]; + } else if ([geometryType isEqual:kGMUMultiLineStringValue]) { + return [self multiLineStringWithCoordinates:geometryArray]; + } else if ([geometryType isEqual:kGMUPolygonValue]) { + return [self polygonWithCoordinates:geometryArray]; + } else if ([geometryType isEqual:kGMUMultiPolygonValue]) { + return [self multiPolygonWithCoordinates:geometryArray]; + } else if ([geometryType isEqual:kGMUGeometryCollectionValue]) { + return [self geometryCollectionWithGeometries:geometryArray]; + } + return nil; +} + +- (GMUPoint *)pointWithCoordinate:(NSArray *)coordinate { + return [[GMUPoint alloc] initWithCoordinate:[self locationFromCoordinate:coordinate].coordinate]; +} + +- (GMUGeometryCollection *)multiPointWithCoordinates:(NSArray *)coordinates { + NSMutableArray *points = [[NSMutableArray alloc] init]; + for (NSArray *coordinate in coordinates) { + [points addObject:[self pointWithCoordinate:coordinate]]; + } + return [[GMUGeometryCollection alloc] initWithGeometries:points]; +} + +- (GMULineString *)lineStringWithCoordinates:(NSArray *)coordinates { + GMSPath *path = [self pathFromCoordinateArray:coordinates]; + return [[GMULineString alloc] initWithPath:path]; +} + +- (GMUGeometryCollection *)multiLineStringWithCoordinates:(NSArray *)coordinates { + NSMutableArray *lineStrings = [[NSMutableArray alloc] init]; + for (NSArray *coordinate in coordinates) { + [lineStrings addObject:[self lineStringWithCoordinates:coordinate]]; + } + return [[GMUGeometryCollection alloc] initWithGeometries:lineStrings]; +} + +- (GMUPolygon *)polygonWithCoordinates:(NSArray *)coordinates { + NSArray *pathArray = [self pathArrayFromCoordinateArrays:coordinates]; + return [[GMUPolygon alloc] initWithPaths:pathArray]; +} + +- (GMUGeometryCollection *)multiPolygonWithCoordinates:(NSArray *)coordinates { + NSMutableArray *polygons = [[NSMutableArray alloc] init]; + for (NSArray *coordinate in coordinates) { + [polygons addObject:[self polygonWithCoordinates:coordinate]]; + } + return [[GMUGeometryCollection alloc] initWithGeometries:polygons]; +} + +- (GMUGeometryCollection *)geometryCollectionWithGeometries:(NSArray *)geometries { + NSMutableArray *elements = [[NSMutableArray alloc] init]; + for (NSDictionary *geometry in geometries) { + id parsedGeometry = [self geometryFromDict:geometry]; + if (parsedGeometry) { + [elements addObject:parsedGeometry]; + } + } + return [[GMUGeometryCollection alloc] initWithGeometries:elements]; +} + +- (CLLocation *)locationFromCoordinate:(NSArray *)coordinate { + return [[CLLocation alloc] initWithLatitude:[coordinate[1] doubleValue] + longitude:[coordinate[0] doubleValue]]; +} + +- (GMSPath *)pathFromCoordinateArray:(NSArray *)coordinates { + GMSMutablePath *path = [[GMSMutablePath alloc] init]; + for (NSArray *coordinate in coordinates) { + [path addCoordinate:[self locationFromCoordinate:coordinate].coordinate]; + } + return path; +} + +- (NSArray *)pathArrayFromCoordinateArrays:(NSArray *)coordinates { + NSMutableArray *parsedPaths = [[NSMutableArray alloc] init]; + for (NSArray *coordinateArray in coordinates) { + [parsedPaths addObject:[self pathFromCoordinateArray:coordinateArray]]; + } + return parsedPaths; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer+Testing.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer+Testing.h new file mode 100644 index 00000000..f5132e6c --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer+Testing.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryRenderer.h" + +/* Extensions for testing purposes only. */ +@interface GMUGeometryRenderer (Testing) + +- (NSArray *)mapOverlays; ++ (UIImage *)imageFromPath:(NSString *)path; +- (GMUStyle *)getStyleFromStyleMaps:(NSString *)styleUrl; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.h new file mode 100644 index 00000000..17016af4 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.h @@ -0,0 +1,76 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryContainer.h" +#import "GMUStyle.h" +#import "GMUStyleMap.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class render geometries generated by a GMUKMLParser or + * GMUGeoJSONParser object. These geometries can have specified style information + * applied to them when being rendered. + */ +@interface GMUGeometryRenderer : NSObject + +/** + * Initializes a new renderer. + * + * @param map the Google Map layer to render the geometries onto. + * @param geometries the geometries to be rendered. + */ +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries; +/** + * Initializes a new renderer. + * + * @param map the Google Map layer to render the geometries onto. + * @param geometries the geometries to be rendered. + * @param styles the styles to be applied to the geometries. + */ +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries + styles:(NSArray *_Nullable)styles; +/** + * Initializes a new renderer. + * + * @param map the Google Map layer to render the geometries onto. + * @param geometries the geometries to be rendered. + * @param styles the styles to be applied to the geometries. + * @param styleMaps the styleMaps to be applied to the geometries + */ +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries + styles:(NSArray * _Nullable)styles + styleMaps:(NSArray *_Nullable)styleMaps; +/** + * Renders the geometries onto the Google Map. + */ +- (void)render; + +/** + * Removes the rendered geometries from the Google Map. Markup that was not added by the renderer is + * preserved. + */ +- (void)clear; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.m new file mode 100644 index 00000000..40032880 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUGeometryRenderer.m @@ -0,0 +1,331 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryRenderer.h" + +#import "GMUFeature.h" +#import "GMUGeometryCollection.h" +#import "GMUGroundOverlay.h" +#import "GMULineString.h" +#import "GMUPlacemark.h" +#import "GMUPoint.h" +#import "GMUPolygon.h" +#import "GMUStyle.h" + +static NSString *const kStyleMapDefaultState = @"normal"; + +@implementation GMUGeometryRenderer { + NSMutableArray *_mapOverlays; + + /** + * The Google Map to render the placemarks onto. + */ + __weak GMSMapView *_map; + + /** + * The list of parsed geometries to render onto the map. + */ + NSArray> *_geometryContainers; + + /** + * The list of parsed styles to be applied to the placemarks. + */ + NSDictionary *_styles; + + /** + * The list of parsed style maps to be applied to the placemarks. + */ + NSDictionary *_styleMaps; + + /** + * The dispatch queue used to download images for ground overlays and point icons. + */ + dispatch_queue_t _queue; + + /** + * Whether the map has been marked as cleared. + */ + BOOL _isMapCleared; +} + +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries { + return [self initWithMap:map geometries:geometries styles:nil]; +} + +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries + styles:(NSArray *)styles { + return [self initWithMap:map geometries:geometries styles:styles styleMaps:nil]; +} + +- (instancetype)initWithMap:(GMSMapView *)map + geometries:(NSArray> *)geometries + styles:(NSArray *)styles + styleMaps:(NSArray *)styleMaps { + if (self = [super init]) { + _map = map; + _geometryContainers = geometries; + _styles = [[self class] stylesDictionaryFromArray:styles]; + _styleMaps = [[self class] styleMapsDictionaryFromArray: styleMaps]; + _mapOverlays = [[NSMutableArray alloc] init]; + _queue = dispatch_queue_create("com.google.gmsutils", DISPATCH_QUEUE_CONCURRENT); + } + return self; +} + +- (void)render { + _isMapCleared = NO; + [self renderGeometryContainers:_geometryContainers]; +} + +- (void)clear { + _isMapCleared = YES; + for (GMSOverlay *overlay in _mapOverlays) { + overlay.map = nil; + } + [_mapOverlays removeAllObjects]; +} + +- (NSArray *)mapOverlays { + return _mapOverlays; +} + ++ (NSDictionary *)stylesDictionaryFromArray:(NSArray *)styles { + NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:styles.count]; + for (GMUStyle *style in styles) { + [dict setObject:style forKey:style.styleID]; + } + return dict; +} + ++ (NSDictionary *)styleMapsDictionaryFromArray:(NSArray *)styleMaps { + NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:styleMaps.count]; + for (GMUStyleMap *styleMap in styleMaps) { + [dict setObject:styleMap forKey:styleMap.styleMapId]; + } + return dict; +} + ++ (UIImage *)imageFromPath:(NSString *)path { + // URLWithString returns nil for a path formatted as a local file reference. + NSURL *url = [NSURL URLWithString:path]; + + NSData *data; + if (url) { + // Get the image data from an external file. + data = [NSData dataWithContentsOfURL:url]; + } else { + // Get the image data from a local file. + data = [NSData dataWithContentsOfFile:path]; + } + return [UIImage imageWithData:data]; +} + +- (GMUStyle *)getStyleFromStyleMaps:(NSString *)styleUrl { + GMUStyleMap *styleMap = [_styleMaps objectForKey:styleUrl]; + if (styleMap) { + for (GMUPair *pair in styleMap.pairs) { + if ([pair.key isEqual:kStyleMapDefaultState]) { + return [_styles objectForKey:pair.styleUrl]; + } + } + } + return nil; +} + +- (void)renderGeometryContainers:(NSArray> *)containers { + for (id container in containers) { + GMUStyle *style = container.style; + if (!style && [container isKindOfClass:[GMUPlacemark class]]) { + GMUPlacemark *placemark = container; + style = [_styles objectForKey:placemark.styleUrl]; + // If not found, look it up in one of the StyleMaps + style = style ?: [self getStyleFromStyleMaps:placemark.styleUrl]; + } + [self renderGeometryContainer:container style:style]; + } +} + +- (void)renderGeometryContainer:(id)container style:(GMUStyle *)style { + id geometry = container.geometry; + if ([geometry isKindOfClass:[GMUGeometryCollection class]]) { + [self renderMultiGeometry:geometry container:container style:style]; + } else { + [self renderGeometry:geometry container:container style:style]; + } +} + +- (void)renderGeometry:(id)geometry + container:(id)container + style:(GMUStyle *)style { + if ([geometry isKindOfClass:[GMUPoint class]]) { + [self renderPoint:geometry container:container style:style]; + } else if ([geometry isKindOfClass:[GMULineString class]]) { + [self renderLineString:geometry container:container style:style]; + } else if ([geometry isKindOfClass:[GMUPolygon class]]) { + [self renderPolygon:geometry container:container style:style]; + } else if ([geometry isKindOfClass:[GMUGroundOverlay class]]) { + [self renderGroundOverlay:geometry placemark:container style:style]; + } +} + +- (void)renderPoint:(GMUPoint *)point + container:(id)container + style:(GMUStyle *)style { + CLLocationCoordinate2D coordinate = point.coordinate; + GMSMarker *marker = [GMSMarker markerWithPosition:coordinate]; + marker.tappable = true; + if ([container isKindOfClass:[GMUPlacemark class]]) { + GMUPlacemark *placemark = container; + marker.title = style.title ?: placemark.title; + marker.snippet = placemark.snippet; + } else { + marker.title = style.title; + } + if (style.anchor.x && style.anchor.y) { + marker.groundAnchor = style.anchor; + } + if (style.heading) { + marker.rotation = style.heading; + } + if (style.iconUrl) { + __weak GMSMarker *weakMarker = marker; + __weak GMSMapView *weakMap = _map; + dispatch_async(_queue, ^{ + UIImage *image = [[self class] imageFromPath:style.iconUrl]; + image = [UIImage imageWithCGImage:image.CGImage + scale:(image.scale * style.scale) + orientation:image.imageOrientation]; + dispatch_async(dispatch_get_main_queue(), ^{ + GMSMarker *strongMarker = weakMarker; + GMSMapView *strongMap = weakMap; + strongMarker.icon = image; + if (!self->_isMapCleared) { + strongMarker.map = strongMap; + } + }); + }); + } else { + marker.map = _map; + } + [_mapOverlays addObject:marker]; +} + +- (void)renderLineString:(GMULineString *)lineString + container:(id)container + style:(GMUStyle *)style { + GMSPolyline *line = [GMSPolyline polylineWithPath:lineString.path]; + if (style.width) { + line.strokeWidth = style.width; + } + if (style.strokeColor) { + line.strokeColor = style.strokeColor; + } + if ([container isKindOfClass:[GMUPlacemark class]]) { + GMUPlacemark *placemark = container; + line.title = placemark.title; + } + line.tappable = true; + line.map = _map; + [_mapOverlays addObject:line]; +} + +- (void)renderPolygon:(GMUPolygon *)polygon + container:(id)container + style:(GMUStyle *)style { + GMSPath *outerBoundaries = polygon.paths.firstObject; + NSArray *innerBoundaries = [[NSArray alloc] init]; + if (polygon.paths.count > 1) { + innerBoundaries = [polygon.paths subarrayWithRange:NSMakeRange(1, polygon.paths.count - 1)]; + } + NSMutableArray *holes = [[NSMutableArray alloc] init]; + for (GMSPath *hole in innerBoundaries) { + [holes addObject:hole]; + } + GMSPolygon *poly = [GMSPolygon polygonWithPath:outerBoundaries]; + if (style.hasFill && style.fillColor) { + poly.fillColor = style.fillColor; + } + if (style.hasStroke) { + if (style.strokeColor) { + poly.strokeColor = style.strokeColor; + } + if (style.width) { + poly.strokeWidth = style.width; + } + } + if (holes.count) { + poly.holes = holes; + } + if ([container isKindOfClass:[GMUPlacemark class]]) { + GMUPlacemark *placemark = container; + poly.title = placemark.title; + } + poly.tappable = true; + poly.map = _map; + [_mapOverlays addObject:poly]; +} + +- (void)renderGroundOverlay:(GMUGroundOverlay *)overlay + placemark:(GMUPlacemark *)placemark + style:(GMUStyle *)style { + CLLocationCoordinate2D northEast = overlay.northEast; + CLLocationCoordinate2D southWest = overlay.southWest; + CLLocationDegrees centerLatitude = (northEast.latitude + southWest.latitude) / 2.0; + CLLocationDegrees centerLongitude = (northEast.longitude + southWest.longitude) / 2.0; + if (northEast.longitude < southWest.longitude) { + if (centerLongitude >= 0) { + centerLongitude -= 180; + } else { + centerLongitude += 180; + } + } + CLLocationCoordinate2D center = CLLocationCoordinate2DMake(centerLatitude, centerLongitude); + GMSCoordinateBounds *northEastBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast + coordinate:center]; + GMSCoordinateBounds *southWestBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest + coordinate:center]; + GMSCoordinateBounds *bounds = [northEastBounds includingBounds:southWestBounds]; + GMSGroundOverlay *groundOverlay = [GMSGroundOverlay groundOverlayWithBounds:bounds icon:nil]; + groundOverlay.tappable = true; + groundOverlay.zIndex = overlay.zIndex; + groundOverlay.bearing = overlay.rotation; + __weak GMSGroundOverlay *weakGroundOverlay = groundOverlay; + __weak GMSMapView *weakMap = _map; + dispatch_async(_queue, ^{ + UIImage *image = [[self class] imageFromPath:overlay.href]; + dispatch_async(dispatch_get_main_queue(), ^{ + GMSGroundOverlay *strongGroundOverlay = weakGroundOverlay; + GMSMapView *strongMap = weakMap; + strongGroundOverlay.icon = image; + if (!self->_isMapCleared) { + strongGroundOverlay.map = strongMap; + } + }); + }); + [_mapOverlays addObject:groundOverlay]; +} + +- (void)renderMultiGeometry:(id)geometry + container:(id)container + style:(GMUStyle *)style { + GMUGeometryCollection *multiGeometry = geometry; + for (id singleGeometry in multiGeometry.geometries) { + [self renderGeometry:singleGeometry container:container style:style]; + } +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.h new file mode 100644 index 00000000..f5e12c91 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.h @@ -0,0 +1,75 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +#import "GMUStyleMap.h" + +NS_ASSUME_NONNULL_BEGIN + +@class GMUStyle; +@protocol GMUGeometryContainer; + +/** + * Instances of this class parse KML documents in an event-driven manner. The + * parsed placemarks and styles are stored in NSArray objects which can then be + * passed to a GMUGeometryRenderer to display on a Google Map. + */ +@interface GMUKMLParser : NSObject + +/** + * The placemarks parsed from the KML file. + */ +@property(nonatomic, readonly) NSArray> *placemarks; + +/** + * The styles parsed from the KML file. + */ +@property(nonatomic, readonly) NSArray *styles; + +@property(nonatomic, readonly) NSArray *styleMaps; + +/** + * Parses the stored KML document. + */ +- (void)parse; + +/** + * Initializes a KMLParser with a KML file contained in a URL. + * + * @param url The url containing the KML file. + */ +- (instancetype)initWithURL:(NSURL *)url; + +/** + * Initializes a KMLParser with a KML file contained in a data file. + * + * @param data The data file containing the contents of a KML file. + */ +- (instancetype)initWithData:(NSData *)data; + +/** + * Initializes a KMLParser with a KML file contained in an input stream. + * + * @param stream The stream to use to access the KML file. + */ +- (instancetype)initWithStream:(NSInputStream *)stream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.m new file mode 100644 index 00000000..02018025 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/GMUKMLParser.m @@ -0,0 +1,721 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUKMLParser.h" + +#import "GMUGeometry.h" +#import "GMUGeometryCollection.h" +#import "GMUGroundOverlay.h" +#import "GMULineString.h" +#import "GMUPlacemark.h" +#import "GMUPoint.h" +#import "GMUPolygon.h" +#import "GMUStyle.h" +#import "GMUPair.h" +#import "GMUStyleMap.h" + +static NSString *const kGMUPlacemarkElementName = @"Placemark"; +static NSString *const kGMUGroundOverlayElementName = @"GroundOverlay"; +static NSString *const kGMUStyleElementName = @"Style"; +static NSString *const kGMUStyleMapElementName = @"StyleMap"; +static NSString *const kGMULineStyleElementName = @"LineStyle"; +static NSString *const kGMUPointElementName = @"Point"; +static NSString *const kGMULineStringElementName = @"LineString"; +static NSString *const kGMUPolygonElementName = @"Polygon"; +static NSString *const kGMUMultiGeometryElementName = @"MultiGeometry"; +static NSString *const kGMUInnerBoundariesAttributeName = @"innerBoundaries"; +static NSString *const kGMUOuterBoundariesAttributeName = @"outerBoundaries"; +static NSString *const kGMUHotspotElementName = @"hotSpot"; +static NSString *const kGMUCoordinatesElementName = @"coordinates"; +static NSString *const kGMURandomAttributeValue = @"random"; +static NSString *const kGMUFractionAttributeValue = @"fraction"; +static NSString *const kGMUNameElementName = @"name"; +static NSString *const kGMUDescriptionElementName = @"description"; +static NSString *const kGMURotationElementName = @"rotation"; +static NSString *const kGMUStyleUrlElementName = @"styleUrl"; +static NSString *const kGMUDrawOrderElementName = @"drawOrder"; +static NSString *const kGMUNorthElementName = @"north"; +static NSString *const kGMUEastElementName = @"east"; +static NSString *const kGMUSouthElementName = @"south"; +static NSString *const kGMUWestElementName = @"west"; +static NSString *const kGMUZIndexElementName = @"ZIndex"; +static NSString *const kGMUHrefElementName = @"href"; +static NSString *const kGMUTextElementName = @"text"; +static NSString *const kGMUScaleElementName = @"scale"; +static NSString *const kGMUXAttributeName = @"x"; +static NSString *const kGMUYAttributeName = @"y"; +static NSString *const kGMUXUnitsElementName = @"xunits"; +static NSString *const kGMUYUnitsElementName = @"yunits"; +static NSString *const kGMUIdAttributeName = @"id"; +static NSString *const kGMUOuterBoundaryIsElementName = @"outerBoundaryIs"; +static NSString *const kGMUHeadingElementName = @"heading"; +static NSString *const kGMUFillElementName = @"fill"; +static NSString *const kGMUOutlineElementName = @"outline"; +static NSString *const kGMUWidthElementName = @"width"; +static NSString *const kGMUColorElementName = @"color"; +static NSString *const kGMUColorModeElementName = @"colorMode"; +static NSString *const kGMUPairElementName = @"Pair"; +static NSString *const kGMUKeyAttributeValue = @"key"; +static NSString *const kGMUPairAttributeRegex = @"^(key|styleUrl)$"; +static NSString *const kGMUGeometryRegex = @"^(Point|LineString|Polygon|MultiGeometry)$"; +static NSString *const kGMUGeometryAttributeRegex = + @"^(coordinates|name|description|rotation|drawOrder|href|styleUrl)$"; +static NSString *const kGMUCompassRegex = @"^(north|east|south|west)$"; +static NSString *const kGMUBoundaryRegex = @"^(outerBoundaryIs|innerBoundaryIs)$"; +static NSString *const kGMUStyleRegex = @"^(Style|StyleMap|LineStyle|Pair)$"; +static NSString *const kGMUStyleAttributeRegex = + @"^(text|scale|heading|fill|outline|width|color|colorMode)$"; +static NSString *const kGMUStyleUrlRegex = @"#.+"; + +/** + * Stores the current state of the parser with regards to the type of KML node that is being + * processed. + */ +typedef NS_OPTIONS(NSUInteger, GMUParserState) { + kGMUParserStatePlacemark = 1 << 0, + kGMUParserStateOuterBoundary = 1 << 1, + kGMUParserStateMultiGeometry = 1 << 2, + kGMUParserStateStyle = 1 << 3, + kGMUParserStateStyleMap = 1 << 4, + kGMUParserStateLineStyle = 1 << 5, + kGMUParserStatePair = 1 << 6, + kGMUParserStateLeafNode = 1 << 7, +}; + +@interface GMUKMLParser () + +@end + +@implementation GMUKMLParser { + /** + * The XML parser used to read the specified document. + */ + NSXMLParser *_parser; + + /** + * The format that a geometry element may take. + */ + NSRegularExpression *_geometryRegex; + + /** + * The format that a compass coordinate element may take. + */ + NSRegularExpression *_compassRegex; + + /** + * The format that a boundary element may take. + */ + NSRegularExpression *_boundaryRegex; + + /** + * The format that a style element may take. + */ + NSRegularExpression *_styleRegex; + + /** + * The format that a style attribute element may take. + */ + NSRegularExpression *_styleAttributeRegex; + + /** + * The format that a style url element may take. + */ + NSRegularExpression *_styleUrlRegex; + + /** + * The format that a geometry attribute element may take. + */ + NSRegularExpression *_geometryAttributeRegex; + + /** + * The format that a pair in a style map may take + */ + NSRegularExpression *_pairAttributeRegex; + + /** + * The list of placemarks that have been parsed. + */ + NSMutableArray *_placemarks; + + /** + * The list of styles that have been parsed. + */ + NSMutableArray *_styles; + + /** + * The list of styles maps that have been parsed. + */ + NSMutableArray *_styleMaps; + + /** + * The list of pairs that currently parsed style map contains + */ + NSMutableArray *_pairs; + + /** + * The characters contained within the element being parsed. + */ + NSMutableString *_characters; + + /** + * The properties to be propagated into the KMLPlacemark object being parsed. + */ + id _geometry; + NSMutableArray> *_geometries; + NSString *_title; + NSString *_snippet; + GMUStyle *_inlineStyle; + NSString *_styleUrl; + + /** + * The properties to be propagated into the KMLStyle object being parsed. + */ + NSString *_styleID; + UIColor *_strokeColor; + UIColor *_fillColor; + CGFloat _width; + CGFloat _scale; + CGFloat _heading; + CGPoint _anchor; + NSString *_strokeColorMode; + NSString *_fillColorMode; + NSString *_iconUrl; + NSString *_styleTitle; + BOOL _hasFill; + BOOL _hasStroke; + + /** + * The properties to be propagated into the KMLElement object being parsed. + */ + NSMutableDictionary *_attributes; + NSString *_geometryType; + + /** + * The properties to be propagated into the KMLPair object being parsed. + */ + NSString *_key; + + /** + * The current state of the parser. + */ + GMUParserState _parserState; +} + +- (instancetype)initWithParser:(NSXMLParser *)parser { + if (self = [super init]) { + _parser = parser; + _placemarks = [[NSMutableArray alloc] init]; + _styles = [[NSMutableArray alloc] init]; + _styleMaps = [[NSMutableArray alloc] init]; + _pairs = [[NSMutableArray alloc] init]; + _geometries = [[NSMutableArray alloc] init]; + _attributes = [[NSMutableDictionary alloc] init]; + + _geometryRegex = [NSRegularExpression regularExpressionWithPattern:kGMUGeometryRegex + options:0 + error:nil]; + _compassRegex = [NSRegularExpression regularExpressionWithPattern:kGMUCompassRegex + options:0 + error:nil]; + _boundaryRegex = [NSRegularExpression regularExpressionWithPattern:kGMUBoundaryRegex + options:0 + error:nil]; + _styleRegex = [NSRegularExpression regularExpressionWithPattern:kGMUStyleRegex + options:0 + error:nil]; + _styleAttributeRegex = [NSRegularExpression regularExpressionWithPattern:kGMUStyleAttributeRegex + options:0 + error:nil]; + _geometryAttributeRegex = + [NSRegularExpression regularExpressionWithPattern:kGMUGeometryAttributeRegex + options:0 + error:nil]; + _styleUrlRegex = [NSRegularExpression regularExpressionWithPattern:kGMUStyleUrlRegex + options:0 + error:nil]; + + _pairAttributeRegex = [NSRegularExpression regularExpressionWithPattern:kGMUPairAttributeRegex + options:0 + error:nil]; + _hasFill = YES; + _hasStroke = YES; + [_parser setDelegate:self]; + } + return self; +} + +- (instancetype)initWithURL:(NSURL *)url { + return [self initWithParser:[[NSXMLParser alloc] initWithContentsOfURL:url]]; +} + +- (instancetype)initWithData:(NSData *)data { + return [self initWithParser:[[NSXMLParser alloc] initWithData:data]]; +} + +- (instancetype)initWithStream:(NSInputStream *)stream { + return [self initWithParser:[[NSXMLParser alloc] initWithStream:stream]]; +} + +- (NSArray *)placemarks { + return _placemarks; +} + +- (NSArray *)styles { + return _styles; +} + +- (NSArray *)styleMaps { + return _styleMaps; +} + +- (void)parse { + [_parser parse]; +} + +- (BOOL)isParsing:(GMUParserState)state { + return state & _parserState; +} + +- (CLLocation *)locationFromString:(NSString *)string { + NSString *trimmedString = + [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + NSArray *coordinateStrings = [trimmedString componentsSeparatedByString:@","]; + CLLocationDegrees longitude = [coordinateStrings[0] doubleValue]; + CLLocationDegrees latitude = [coordinateStrings[1] doubleValue]; + + return [[CLLocation alloc] initWithLatitude:latitude longitude:longitude]; +} + +- (GMSPath *)pathFromString:(NSString *)string { + NSCharacterSet *characterSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; + NSString *coordinateStrings = + [string stringByReplacingOccurrencesOfString:@"\\s+" + withString:@" " + options:NSRegularExpressionSearch + range:NSMakeRange(0, string.length)]; + NSString *trimmed = [coordinateStrings stringByTrimmingCharactersInSet:characterSet]; + NSArray *coordinateArray = [trimmed componentsSeparatedByCharactersInSet:characterSet]; + GMSMutablePath *path = [[GMSMutablePath alloc] init]; + for (NSString *str in coordinateArray) { + [path addCoordinate:[self locationFromString:str].coordinate]; + } + return path; +} + +- (UIColor *)colorFromString:(NSString *)string { + unsigned long long color; + NSScanner *scanner = [NSScanner scannerWithString:string]; + [scanner scanHexLongLong:&color]; + CGFloat alpha = ((CGFloat)((color >> 24) & 0xff)) / 255; + CGFloat blue = ((CGFloat)((color >> 16) & 0xff)) / 255; + CGFloat green = ((CGFloat)((color >> 8) & 0xff)) / 255; + CGFloat red = ((CGFloat)(color & 0xff)) / 255; + return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; +} + +/** + * Generates a random color by applying a random linear scale to each color component, ranging from + * 0x00 to the maximum values specified for each component. The alpha component of the input color + * is never randomized. + * + * @param color The color range to generate random values between. + * @return The randomly generated color. + */ +- (UIColor *)randomColorFromColor:(UIColor *)color { + CGFloat red, green, blue, alpha; + [color getRed:&red green:&green blue:&blue alpha:&alpha]; + red = ((CGFloat)arc4random_uniform((int)(red * 255))) / 255.0; + green = ((CGFloat)arc4random_uniform((int)(green * 255))) / 255.0; + blue = ((CGFloat)arc4random_uniform((int)(blue * 255))) / 255.0; + return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; +} + +- (void)parseBeginLeafNode { + _parserState |= kGMUParserStateLeafNode; +} + +- (void)parseBeginHotspotWithAttributes:(NSDictionary *)attributeDict { + double x = 0.0; + double y = 0.0; + BOOL isValidHotspot = YES; + if ([[attributeDict objectForKey:kGMUXUnitsElementName] isEqual:kGMUFractionAttributeValue]) { + x = [[attributeDict objectForKey:kGMUXAttributeName] doubleValue]; + } else { + isValidHotspot = NO; + } + if ([[attributeDict objectForKey:kGMUYUnitsElementName] isEqual:kGMUFractionAttributeValue]) { + y = [[attributeDict objectForKey:kGMUYAttributeName] doubleValue]; + } else { + isValidHotspot = NO; + } + _anchor = isValidHotspot ? CGPointMake(x, y) : CGPointMake(0.5f, 1.0f); +} + +- (void)parseBeginBoundaryWithElementName:(NSString *)elementName { + if ([elementName isEqual:kGMUOuterBoundaryIsElementName]) { + _parserState |= kGMUParserStateOuterBoundary; + } else { + _parserState &= ~kGMUParserStateOuterBoundary; + } +} + +- (void)parseBeginStyleWithElementName:(NSString *)elementName styleID:(NSString *)styleID { + if ([elementName isEqual:kGMUStyleElementName]) { + _styleID = [NSString stringWithFormat:@"#%@", styleID]; + _parserState |= kGMUParserStateStyle; + } else if ([elementName isEqual:kGMUStyleMapElementName]) { + _styleID = [NSString stringWithFormat:@"#%@", styleID]; + _parserState |= kGMUParserStateStyleMap; + } else if ([elementName isEqual:kGMULineStyleElementName]) { + _parserState |= kGMUParserStateLineStyle; + } else if ([elementName isEqual:kGMUPairElementName]) { + _parserState |= kGMUParserStatePair; + } +} + +- (void)parseEndStyle { + if ([self isParsing:kGMUParserStateLineStyle]) { + _parserState &= ~kGMUParserStateLineStyle; + } else if ([self isParsing:kGMUParserStatePair]) { + _parserState &= ~kGMUParserStatePair; + [self parseEndPair]; + } else if([self isParsing:kGMUParserStateStyleMap]) { + _parserState &= ~kGMUParserStateStyleMap; + + GMUStyleMap *styleMap = [[GMUStyleMap alloc] initWithId:_styleID + pairs: [_pairs copy]]; + + [_styleMaps addObject:styleMap]; + [_pairs removeAllObjects]; + } else { + _parserState &= ~kGMUParserStateStyle; + if ([_fillColorMode isEqual:kGMURandomAttributeValue]) { + _fillColor = [self randomColorFromColor:_fillColor]; + } + if ([_strokeColorMode isEqual:kGMURandomAttributeValue]) { + _strokeColor = [self randomColorFromColor:_strokeColor]; + } + GMUStyle *style = [[GMUStyle alloc] initWithStyleID:_styleID + strokeColor:_strokeColor + fillColor:_fillColor + width:_width + scale:_scale + heading:_heading + anchor:_anchor + iconUrl:_iconUrl + title:_styleTitle + hasFill:_hasFill + hasStroke:_hasStroke]; + _styleID = nil; + _strokeColor = nil; + _fillColor = nil; + _width = 0; + _scale = 0; + _heading = 0; + _anchor = CGPointZero; + _iconUrl = nil; + _styleTitle = nil; + _hasFill = YES; + _hasStroke = YES; + + // A style embedded in a Placemark is guaranteed to be an inline style. + if ([self isParsing:kGMUParserStatePlacemark]) { + _inlineStyle = style; + } else { + [_styles addObject:style]; + } + } +} + +- (void)parseEndStyleAttribute:(NSString *)attribute { + if ([attribute isEqual:kGMUTextElementName]) { + _styleTitle = [_characters copy]; + } else if ([attribute isEqual:kGMUScaleElementName]) { + _scale = [_characters floatValue]; + } else if ([attribute isEqual:kGMUHeadingElementName]) { + _heading = [_characters floatValue]; + } else if ([attribute isEqual:kGMUFillElementName]) { + _hasFill = [_characters boolValue]; + } else if ([attribute isEqual:kGMUOutlineElementName]) { + _hasStroke = [_characters boolValue]; + } else if ([attribute isEqual:kGMUWidthElementName]) { + _width = [_characters floatValue]; + } else if ([attribute isEqual:kGMUColorElementName]) { + if ([self isParsing:kGMUParserStateLineStyle]) { + _strokeColor = [self colorFromString:_characters]; + } else { + _fillColor = [self colorFromString:_characters]; + } + } else if ([attribute isEqual:kGMUColorModeElementName]) { + if ([self isParsing:kGMUParserStateLineStyle]) { + _strokeColorMode = [_characters copy]; + } else { + _fillColorMode = [_characters copy]; + } + } +} + +- (void)parseBeginPlacemark { + _parserState |= kGMUParserStatePlacemark; +} + +- (void)parseEndPlacemark { + _parserState &= ~kGMUParserStatePlacemark; + [_placemarks addObject:[[GMUPlacemark alloc] initWithGeometry:_geometry + title:_title + snippet:_snippet + style:_inlineStyle + styleUrl:_styleUrl]]; + _geometryType = nil; + _attributes = [[NSMutableDictionary alloc] init]; + _geometry = nil; + _geometries = [[NSMutableArray alloc] init]; + _title = nil; + _snippet = nil; + _inlineStyle = nil; + _styleUrl = nil; +} + +- (void)parseEndGroundOverlay { + CLLocationCoordinate2D northEast = + CLLocationCoordinate2DMake([[_attributes objectForKey:kGMUNorthElementName] doubleValue], + [[_attributes objectForKey:kGMUEastElementName] doubleValue]); + CLLocationCoordinate2D southWest = + CLLocationCoordinate2DMake([[_attributes objectForKey:kGMUSouthElementName] doubleValue], + [[_attributes objectForKey:kGMUWestElementName] doubleValue]); + int zIndex = [[_attributes objectForKey:kGMUZIndexElementName] intValue]; + double rotation = [[_attributes objectForKey:kGMURotationElementName] doubleValue]; + NSString *href = [_attributes objectForKey:kGMUHrefElementName]; + _geometry = [[GMUGroundOverlay alloc] initWithCoordinate:northEast + southWest:southWest + zIndex:zIndex + rotation:rotation + href:href]; + [self parseEndPlacemark]; +} + +- (void)parseBeginGeometryWithElementName:(NSString *)elementName { + if ([elementName isEqual:kGMUMultiGeometryElementName]) { + _parserState |= kGMUParserStateMultiGeometry; + } else { + _geometryType = elementName; + } +} + +- (void)parseEndGeometryWithElementName:(NSString *)elementName { + if ([elementName isEqual:kGMUMultiGeometryElementName]) { + _parserState &= ~kGMUParserStateMultiGeometry; + _geometry = [[GMUGeometryCollection alloc] initWithGeometries:_geometries]; + } else { + if ([elementName isEqual:kGMUPointElementName]) { + CLLocation *coordinate = [_attributes objectForKey:kGMUCoordinatesElementName]; + _geometry = [[GMUPoint alloc] initWithCoordinate:coordinate.coordinate]; + } else if ([elementName isEqual:kGMULineStringElementName]) { + GMSPath *path = [_attributes objectForKey:kGMUCoordinatesElementName]; + _geometry = [[GMULineString alloc] initWithPath:path]; + } else if ([elementName isEqual:kGMUPolygonElementName]) { + GMSPath *outerBoundaries = [_attributes objectForKey:kGMUOuterBoundariesAttributeName]; + NSMutableArray *paths = [NSMutableArray arrayWithObject:outerBoundaries]; + NSArray *holes = [_attributes objectForKey:kGMUInnerBoundariesAttributeName]; + for (GMSPath *hole in holes) { + [paths addObject:hole]; + } + _geometry = [[GMUPolygon alloc] initWithPaths:paths]; + } + if ([self isParsing:kGMUParserStateMultiGeometry]) { + [_geometries addObject:_geometry]; + _geometry = nil; + _attributes = [[NSMutableDictionary alloc] init]; + } + } +} + +- (void)parseEndGeometryAttribute:(NSString *)attribute { + if ([attribute isEqual:kGMUCoordinatesElementName]) { + [self parseEndCoordinates]; + } else if ([attribute isEqual:kGMUNameElementName]) { + _title = [_characters copy]; + } else if ([attribute isEqual:kGMUDescriptionElementName]) { + _snippet = [_characters copy]; + } else if ([attribute isEqual:kGMURotationElementName]) { + [self parseEndRotation]; + } else if ([attribute isEqual:kGMUDrawOrderElementName]) { + [_attributes setObject:@([_characters intValue]) forKey:kGMUZIndexElementName]; + } else if ([attribute isEqual:kGMUHrefElementName]) { + if ([self isParsing:kGMUParserStateStyle]) { + _iconUrl = [_characters copy]; + } else { + [_attributes setObject:[_characters copy] forKey:attribute]; + } + } else if ([attribute isEqual:kGMUStyleUrlElementName]) { + if ([_styleUrlRegex firstMatchInString:_characters + options:0 + range:NSMakeRange(0, [_characters length])]) { + _styleUrl = [_characters copy]; + } + } +} + +- (void)parseEndCompassAttribute:(NSString *)attribute { + NSNumber *value = [[NSNumber alloc] initWithDouble:[_characters doubleValue]]; + [_attributes setObject:value forKey:attribute]; +} + +- (void)parseEndRotation { + double rotation = [_characters doubleValue]; + + // Handle invalid rotation inputs. + if (rotation > 180 || rotation < -180) { + rotation = 0; + } + + // Maps from [-180, 180] where the value is an angle in degrees counterclockwise starting from + // north to [0, 360] clockwise starting from north. + if (rotation <= 0) { + rotation = -rotation; + } else { + rotation = 360 - rotation; + } + [_attributes setObject:@(rotation) forKey:kGMURotationElementName]; +} + +- (void)parseEndCoordinates { + if ([_geometryType isEqual:kGMUPointElementName]) { + CLLocation *location = [self locationFromString:_characters]; + [_attributes setObject:location forKey:kGMUCoordinatesElementName]; + } else if ([_geometryType isEqual:kGMULineStringElementName]) { + GMSPath *path = [self pathFromString:_characters]; + [_attributes setObject:path forKey:kGMUCoordinatesElementName]; + } else if ([_geometryType isEqual:kGMUPolygonElementName]) { + GMSPath *boundary = [self pathFromString:_characters]; + if ([self isParsing:kGMUParserStateOuterBoundary]) { + [_attributes setObject:boundary forKey:kGMUOuterBoundariesAttributeName]; + } else { + NSMutableArray *innerBoundaries = [NSMutableArray + arrayWithArray:[_attributes objectForKey:kGMUInnerBoundariesAttributeName]]; + [innerBoundaries addObject:boundary]; + [_attributes setObject:innerBoundaries forKey:kGMUInnerBoundariesAttributeName]; + } + } +} + +- (void)parseEndPairAttribute:(NSString *)attribute { + if ([attribute isEqual:kGMUKeyAttributeValue]) { + _key = [_characters copy]; + } else if ([attribute isEqual:kGMUStyleUrlElementName]) { + _styleUrl = [_characters copy]; + } +} + +- (void)parseEndPair { + GMUPair *pair = [[GMUPair alloc] initWithKey:_key + styleUrl:_styleUrl]; + _key = nil; + _styleUrl = nil; + + [_pairs addObject:pair]; +} + +#pragma mark - NSXMLParserDelegate + +- (void)parser:(NSXMLParser *)parser + didStartElement:(nonnull NSString *)elementName + namespaceURI:(nullable NSString *)namespaceURI + qualifiedName:(nullable NSString *)qualifiedName + attributes:(nonnull NSDictionary *)attributeDict { + _characters = nil; + if ([_styleRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseBeginStyleWithElementName:elementName + styleID:[attributeDict objectForKey:kGMUIdAttributeName]]; + } else if ([elementName isEqual:kGMUPlacemarkElementName] || + [elementName isEqual:kGMUGroundOverlayElementName]) { + [self parseBeginPlacemark]; + } else if ([elementName isEqual:kGMUHotspotElementName]) { + [self parseBeginHotspotWithAttributes:attributeDict]; + } else if ([_geometryRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)] || + [elementName isEqual:kGMUGroundOverlayElementName]) { + [self parseBeginGeometryWithElementName:elementName]; + } else if ([_boundaryRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseBeginBoundaryWithElementName:elementName]; + } else if ([_styleAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)] || + [_geometryAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)] || + [_compassRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)] || + [_pairAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseBeginLeafNode]; + } +} + +- (void)parser:(NSXMLParser *)parser + didEndElement:(nonnull NSString *)elementName + namespaceURI:(nullable NSString *)namespaceURI + qualifiedName:(nullable NSString *)qualifiedName { + if ([_styleRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndStyle]; + } else if ([_styleAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndStyleAttribute:elementName]; + } else if ([elementName isEqual:kGMUPlacemarkElementName]) { + [self parseEndPlacemark]; + } else if ([_pairAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndPairAttribute:elementName]; + } else if ([elementName isEqual:kGMUGroundOverlayElementName]) { + [self parseEndGroundOverlay]; + } else if ([_geometryRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndGeometryWithElementName:elementName]; + } else if ([_geometryAttributeRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndGeometryAttribute:elementName]; + } else if ([_compassRegex firstMatchInString:elementName + options:0 + range:NSMakeRange(0, elementName.length)]) { + [self parseEndCompassAttribute:elementName]; + } + _parserState &= ~kGMUParserStateLeafNode; + _characters = nil; +} + +- (void)parser:(NSXMLParser *)parser foundCharacters:(nonnull NSString *)string { + if ([self isParsing:kGMUParserStateLeafNode]) { + if (!_characters) { + _characters = [string mutableCopy]; + } else { + [_characters appendString:string]; + } + } +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.h new file mode 100644 index 00000000..0d43c45a --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.h @@ -0,0 +1,58 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryContainer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a GeoJSON Feature object. + */ +@interface GMUFeature : NSObject + +/** + * The identifier of the feature. + */ +@property(nonatomic, nullable, readonly) NSString *identifier; + +/** + * The properties of the geometry in the feature. + */ +@property(nonatomic, nullable, readonly) NSDictionary *properties; + +/** + * The bounding box of the geometry in the feature. + */ +@property(nonatomic, nullable, readonly) GMSCoordinateBounds *boundingBox; + +/** + * + * @param geometry The geometry object in the feature. + * @param identifier The identifier of the feature. + * @param properties The properties of the geometry in the feature. + * @param boundingBox The bounding box of the geometry in the feature. + */ +- (instancetype)initWithGeometry:(id)geometry + identifier:(NSString * _Nullable)identifier + properties:(NSDictionary * _Nullable)properties + boundingBox:(GMSCoordinateBounds * _Nullable)boundingBox; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.m new file mode 100644 index 00000000..ae5b629e --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUFeature.m @@ -0,0 +1,36 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUFeature.h" + +@implementation GMUFeature + +@synthesize geometry = _geometry; +@synthesize style = _style; + +- (instancetype)initWithGeometry:(id)geometry + identifier:(NSString * _Nullable)identifier + properties:(NSDictionary * _Nullable)properties + boundingBox:(GMSCoordinateBounds * _Nullable)boundingBox { + if (self = [super init]) { + _geometry = geometry; + _identifier = identifier; + _boundingBox = boundingBox; + _properties = properties ?: [[[NSDictionary alloc] init] copy]; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometry.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometry.h new file mode 100644 index 00000000..d9b1b74b --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometry.h @@ -0,0 +1,32 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +NS_ASSUME_NONNULL_BEGIN + +/** + * Defines a generic geometry object. + */ +@protocol GMUGeometry + +/** + * The type of the geometry. + */ +@property(nonatomic, readonly) NSString *type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.h new file mode 100644 index 00000000..9fb3be01 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.h @@ -0,0 +1,41 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometry.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a GeometryCollection object. + */ +@interface GMUGeometryCollection : NSObject + +/** + * The array of geometry objects for the GeometryCollection. + */ +@property(nonatomic, readonly) NSArray> *geometries; + +/** + * Initializes a GMUGeometryCollection object with a set of geometry objects. + * + * @param geometries The array of geometry objects. + */ +- (instancetype)initWithGeometries:(NSArray> *)geometries; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.m new file mode 100644 index 00000000..e99f63d6 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryCollection.m @@ -0,0 +1,30 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryCollection.h" + +@implementation GMUGeometryCollection + +@synthesize type = _type; + +- (instancetype)initWithGeometries:(NSArray> *)geometries { + if (self = [super init]) { + _type = @"GeometryCollection"; + _geometries = geometries; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryContainer.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryContainer.h new file mode 100644 index 00000000..659fc003 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGeometryContainer.h @@ -0,0 +1,40 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometry.h" +#import "GMUStyle.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Defines a generic geometry container. + */ +@protocol GMUGeometryContainer + +/** + * The geometry object in the container. + */ +@property(nonatomic, readonly) id geometry; + +/** + * Style information that should be applied to the contained geometry object. + */ +@property(nonatomic, nullable) GMUStyle *style; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.h new file mode 100644 index 00000000..0f4091e0 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometry.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a Ground Overlay object. + */ +@interface GMUGroundOverlay : NSObject + +/** + * The North-East corner of the overlay. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D northEast; + +/** + * The South-West corner of the overlay. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D southWest; + +/** + * The Z-Index of the overlay. + */ +@property(nonatomic, readonly) int zIndex; + +/** + * The rotation of the overlay on the map. + */ +@property(nonatomic, readonly) double rotation; + +/** + * The image to be rendered on the overlay. + */ +@property(nonatomic, readonly) NSString *href; + +/** + * Initializes a GMUGroundOverlay object. + * + * @param northEast The North-East corner of the overlay. + * @param southWest The South-West corner of the overlay. + * @param zIndex The Z-Index of the overlay. + * @param rotation The rotation of the overlay. + * @param href The image to be rendered on the overlay. + */ +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)northEast + southWest:(CLLocationCoordinate2D)southWest + zIndex:(int)zIndex + rotation:(double)rotation + href:(NSString *)href; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.m new file mode 100644 index 00000000..d17103cd --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUGroundOverlay.m @@ -0,0 +1,38 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGroundOverlay.h" + +@implementation GMUGroundOverlay + +@synthesize type = _type; + +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)northEast + southWest:(CLLocationCoordinate2D)southWest + zIndex:(int)zIndex + rotation:(double)rotation + href:(NSString *)href { + if (self = [super init]) { + _type = @"GroundOverlay"; + _northEast = northEast; + _southWest = southWest; + _zIndex = zIndex; + _rotation = rotation; + _href = href; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.h new file mode 100644 index 00000000..9e2124f4 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.h @@ -0,0 +1,43 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +#import "GMUGeometry.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a LineString object. + */ +@interface GMULineString : NSObject + +/** + * The path of the LineString. + */ +@property(nonatomic, readonly) GMSPath *path; + +/** + * Initializes a GMULineString object with a path. + * + * @param path The path of the LineString. + */ +- (instancetype)initWithPath:(GMSPath *)path; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.m new file mode 100644 index 00000000..fdf647ee --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMULineString.m @@ -0,0 +1,30 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMULineString.h" + +@implementation GMULineString + +@synthesize type = _type; + +- (instancetype)initWithPath:(GMSPath *)path { + if (self = [super init]) { + _type = @"LineString"; + _path = path; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.h new file mode 100644 index 00000000..9d9fb01d --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2018 Google Inc. + * + * 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 + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a geometry Style. It is used to define the + * stylings of any number of GMUGeometry objects. + */ +@interface GMUPair : NSObject + +@property(nonatomic, readonly) NSString *key; +@property(nonatomic, readonly) NSString *styleUrl; + +- (instancetype)initWithKey:(NSString *)styleID + styleUrl:(NSString *)strokeColor; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.m new file mode 100644 index 00000000..164c842d --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPair.m @@ -0,0 +1,32 @@ +/* Copyright (c) 2018 Google Inc. + * + * 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 "GMUPair.h" + +@implementation GMUPair + +@synthesize key = _key; +@synthesize styleUrl = _styleUrl; + +- (instancetype)initWithKey:(NSString *)key + styleUrl:(NSString *)styleUrl { + if (self = [super init]) { + _key = key; + _styleUrl = styleUrl; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.h new file mode 100644 index 00000000..67dc6565 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.h @@ -0,0 +1,60 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometryContainer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Represents a placemark which is either a Point, LineString, Polygon, or MultiGeometry. Contains + * the properties and styles of the place. + */ +@interface GMUPlacemark : NSObject + +/** + * The name element of the placemark. + */ +@property(nonatomic, nullable, readonly) NSString *title; + +/** + * The description element of the placemark. + */ +@property(nonatomic, nullable, readonly) NSString *snippet; + +/** + * The StyleUrl element of the placemark; used to reference a style defined in the file. + */ +@property(nonatomic, nullable, readonly) NSString *styleUrl; + +/** + * Initializes a new KMLPlacemark object. + * + * @param geometry The geometry of the placemark. + * @param title The title of the placemark. + * @param snippet The snippet text of the placemark. + * @param style The inline style of the placemark. + * @param styleUrl The url to the style of the placemark. + */ +- (instancetype)initWithGeometry:(id _Nullable)geometry + title:(NSString *_Nullable)title + snippet:(NSString *_Nullable)snippet + style:(GMUStyle *_Nullable)style + styleUrl:(NSString *_Nullable)styleUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.m new file mode 100644 index 00000000..499ba348 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPlacemark.m @@ -0,0 +1,39 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUPlacemark.h" + +@implementation GMUPlacemark + +@synthesize geometry = _geometry; + +@synthesize style = _style; + +- (instancetype)initWithGeometry:(id)geometry + title:(NSString *)title + snippet:(NSString *)snippet + style:(GMUStyle *)style + styleUrl:(NSString *)styleUrl { + if (self = [super init]) { + _geometry = geometry; + _title = [title copy]; + _snippet = [snippet copy]; + _style = style; + _styleUrl = [styleUrl copy]; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.h new file mode 100644 index 00000000..918efd2c --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.h @@ -0,0 +1,42 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUGeometry.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a Point object. + */ +@interface GMUPoint : NSObject + +/** + * The 2D coordinate of the Point, containing a latitude and longitude. + */ +@property(nonatomic, readonly) CLLocationCoordinate2D coordinate; + +/** + * Initializes a GMUPoint object with a coordinate. + * + * @param coordinate A location with a latitude and longitude. + */ +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.m new file mode 100644 index 00000000..4d27f722 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPoint.m @@ -0,0 +1,30 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUPoint.h" + +@implementation GMUPoint + +@synthesize type = _type; + +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate { + if (self = [super init]) { + _type = @"Point"; + _coordinate = coordinate; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.h new file mode 100644 index 00000000..dc0f7475 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.h @@ -0,0 +1,44 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +#import "GMUGeometry.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a Polygon object. + */ +@interface GMUPolygon : NSObject + +/** + * The array of LinearRing paths for the Polygon. The first is the exterior ring of the Polygon; any + * subsequent rings are holes. + */ +@property(nonatomic, readonly) NSArray *paths; + +/** + * Initializes a GMUGeoJSONPolygon object with a set of paths. + * + * @param paths The paths of the Polygon. + */ +- (instancetype)initWithPaths:(NSArray *)paths; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.m new file mode 100644 index 00000000..d144a49e --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUPolygon.m @@ -0,0 +1,30 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUPolygon.h" + +@implementation GMUPolygon + +@synthesize type = _type; + +- (instancetype)initWithPaths:(NSArray *)paths { + if (self = [super init]) { + _type = @"Polygon"; + _paths = [paths copy]; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.h new file mode 100644 index 00000000..b5580011 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.h @@ -0,0 +1,111 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 + +NS_ASSUME_NONNULL_BEGIN + +/** + * Instances of this class represent a geometry Style. It is used to define the + * stylings of any number of GMUGeometry objects. + */ +@interface GMUStyle : NSObject + +/** + * The unique identifier of the style + */ +@property(nonatomic, readonly) NSString *styleID; + +/** + * The color for the stroke of a LineString or Polygon. + */ +@property(nonatomic, nullable, readonly) UIColor *strokeColor; + +/** + * The color for the fill of a Polygon. + */ +@property(nonatomic, nullable, readonly) UIColor *fillColor; + +/** + * The width of a LineString + */ +@property(nonatomic, readonly) CGFloat width; + +/** + * The scale that a Point's icon should be rendered at. + */ +@property(nonatomic, readonly) CGFloat scale; + +/** + * The direction, in degrees, that a Point's icon should be rendered at. + */ +@property(nonatomic, readonly) CGFloat heading; + +/** + * The position within an icon that is anchored to the Point. + */ +@property(nonatomic, readonly) CGPoint anchor; + +/** + * The href for the icon to be used for a Point. + */ +@property(nonatomic, nullable, readonly) NSString *iconUrl; + +/** + * The title to use for a Point. + */ +@property(nonatomic, nullable, readonly) NSString *title; + +/** + * Whether the Polygon has a defined fill color. + */ +@property(nonatomic, readonly) BOOL hasFill; + +/** + * Whether the LineString or Polygon has a defined stroke color. + */ +@property(nonatomic, readonly) BOOL hasStroke; + +/** + * Initalizer that defines the style's identifier. + * + * @param styleID The unique identifier string for the style. + * @param strokeColor The color of the geometry stroke. + * @param fillColor The color of the geometry fill. + * @param width The width of the geometry stroke. + * @param scale The scale at which point icons will be rendered + * @param heading The heading of the point icon. + * @param anchor The anchor coordinate of the point icon. + * @param iconUrl The reference url to the point icon image. + * @param title The title of the point. + * @param hasFill Whether the geometry should be filled. + * @param hasStroke Whether the geometry has a stroke. + */ +- (instancetype)initWithStyleID:(NSString *)styleID + strokeColor:(UIColor *_Nullable)strokeColor + fillColor:(UIColor *_Nullable)fillColor + width:(CGFloat)width + scale:(CGFloat)scale + heading:(CGFloat)heading + anchor:(CGPoint)anchor + iconUrl:(NSString *_Nullable)iconUrl + title:(NSString *_Nullable)title + hasFill:(BOOL)hasFill + hasStroke:(BOOL)hasStroke; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.m new file mode 100644 index 00000000..c61ab3bd --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyle.m @@ -0,0 +1,47 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GMUStyle.h" + +@implementation GMUStyle + +- (instancetype)initWithStyleID:(NSString *)styleID + strokeColor:(UIColor *)strokeColor + fillColor:(UIColor *)fillColor + width:(CGFloat)width + scale:(CGFloat)scale + heading:(CGFloat)heading + anchor:(CGPoint)anchor + iconUrl:(NSString *)iconUrl + title:(NSString *)title + hasFill:(BOOL)hasFill + hasStroke:(BOOL)hasStroke { + if (self = [super init]) { + _styleID = [styleID copy]; + _strokeColor = strokeColor; + _fillColor = fillColor; + _width = width; + _scale = scale; + _heading = heading; + _anchor = anchor; + _iconUrl = [iconUrl copy]; + _title = [title copy]; + _hasFill = hasFill; + _hasStroke = hasStroke; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.h new file mode 100644 index 00000000..cf812389 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.h @@ -0,0 +1,32 @@ +/* Copyright (c) 2018 Google Inc. + * + * 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 "GMUPair.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface GMUStyleMap : NSObject + +@property(nonatomic, readonly) NSString *styleMapId; +@property(nonatomic, readonly) NSArray *pairs; + +- (instancetype)initWithId:(NSString *)styleMapId + pairs:(NSArray *)pairs; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.m new file mode 100644 index 00000000..35c09d6e --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Geometry/Model/GMUStyleMap.m @@ -0,0 +1,33 @@ +/* Copyright (c) 2018 Google Inc. + * + * 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 "GMUPair.h" +#import "GMUStyleMap.h" + +@implementation GMUStyleMap + +@synthesize styleMapId = _id; +@synthesize pairs = _pairs; + +- (instancetype)initWithId:(NSString *)styleMapId + pairs:(NSArray *)pairs { + if (self = [super init]) { + _id = styleMapId; + _pairs = pairs; + } + return self; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/CLLocationCoordinate2D+GeometryUtils.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/CLLocationCoordinate2D+GeometryUtils.swift new file mode 100644 index 00000000..cd0f0fea --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/CLLocationCoordinate2D+GeometryUtils.swift @@ -0,0 +1,118 @@ +// Copyright 2020 Google LLC +// +// 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 GoogleMaps + +public extension CLLocationCoordinate2D { + + /// Returns the great circle distance between this coordinate and `to`. + /// + /// - Parameters: + /// - to: The CLLocationCoordinate2D to compute the distance from + /// - Returns: The great circle distance from this coordinate and `to` + func distance(to: CLLocationCoordinate2D) -> CLLocationDistance { + return distance(to: to, radius: kGMSEarthRadius) + } + + /// Returns the initial heading (degrees clockwise from North) at this coordinate + /// at the shortest distance to `to`. + /// - Parameters: + /// - to: The CLLocationCoordinate2D to compute the heading from + /// - Return: The initial heading between this coordinate and `to` + func heading(to: CLLocationCoordinate2D) -> CLLocationDistance { + let bearing = Math.initialBearing(self.latLngRadians, to.latLngRadians) + return Math.wrap(value: bearing.degrees, min: 0, max: 360) + } + + /// Returns the destination coordinate, when starting from this coordinate with initial `heading`, + /// travelling `distance` meters along a great circle arc, on Earth. + /// + /// - Parameters: + /// - distance: The distance to offset by from this coordinate + /// - heading: The inital heading to offset by from this coordinate + /// - Returns: The destination coordinate + func offset(distance: CLLocationDistance, heading: CLLocationDistance) -> CLLocationCoordinate2D { + return offset(distance: distance, heading: heading, radius: kGMSEarthRadius) + } + + /// Returns the coordinate that lies a `fraction` of the way between this coordinate and `to` + /// using the shortest path. + /// + /// - Parameters: + /// - to: The end coordinate for the interpolation + /// - fraction: The fraction to interpolate by + /// - Returns: The interpolated coordinate + func interpolate(to: CLLocationCoordinate2D, fraction: Double) -> CLLocationCoordinate2D { + let angularDistance = distanceUnit(to: to) * fraction + let heading = self.heading(to: to) + return offsetUnit(angularDistance: angularDistance, heading: heading) + } +} + +private extension CLLocationCoordinate2D { + /// Returns the great circle distance between this coordinate and `to` on a sphere with radius `radius` in meters. + /// + /// - Parameters: + /// - to: The CLLocationCoordinate2D to compute the distance from + /// - radius: The radius in meters + /// - Returns: The great circle distance + func distance(to: CLLocationCoordinate2D, radius: CLLocationDistance) -> CLLocationDistance { + return radius * distanceUnit(to: to) + } + + /// Returns the distance between this coordinate and `to` on the unit sphere. + /// - Parameters: + /// - to: The CLLocationCoordinate2D to compute the distance from + /// - Returns: The great circle distance on a unit sphere + func distanceUnit(to: CLLocationCoordinate2D) -> CLLocationDistance { + return Math.inverseHaversine(Math.haversineDistance(self.latLngRadians, to.latLngRadians)) + } + + /// Returns the destination coordinate, when starting from this coordinate with initial `heading`, travelling `distance` meters along a great circle arc + /// on a sphere with radius `radius`. + /// + /// - Parameters: + /// - distance: The distance to offset by from this coordinate + /// - heading: The inital heading to offset by from this coordinate + /// - radius: The radius of the sphere + /// - Returns: The destination coordinate + func offset( + distance: CLLocationDistance, + heading: CLLocationDistance, + radius: CLLocationDistance + ) -> CLLocationCoordinate2D { + let angularDistance = distance / radius + return offsetUnit(angularDistance: angularDistance, heading: heading) + } + + /// Offset this coordinate by the provided `angularDistance` and `heading` on a unit sphere + /// + /// - Parameters: + /// - angularDistance: The angular distance on a unit sphere + /// - heading: The inital heading to offset by from this coordinate + /// - Returns: The destination coordinate + func offsetUnit(angularDistance: Double, heading: CLLocationDistance) -> CLLocationCoordinate2D { + let bearing = heading.radians + let latLng1 = self.latLngRadians + let sinLat2 = sin(latLng1.latitude) * cos(angularDistance) + cos(latLng1.latitude) * sin(angularDistance) * cos(bearing) + let lat2 = asin(sinLat2) + let y = sin(bearing) * sin(angularDistance) * cos(latLng1.latitude) + let x = cos(angularDistance) - sin(latLng1.latitude) * sinLat2 + let lng2 = latLng1.longitude + atan2(y, x) + return CLLocationCoordinate2D( + latitude: lat2.degrees, + longitude: Math.wrap(value: lng2.degrees, min: -180, max: 180) + ) + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPath+GeometryUtils.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPath+GeometryUtils.swift new file mode 100644 index 00000000..f9fc99e4 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPath+GeometryUtils.swift @@ -0,0 +1,430 @@ +// Copyright 2020 Google LLC +// +// 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 GoogleMaps + +public extension GMSPath { + + /// The default tolerance used to computed whether a coordinate is near a path + static let defaultToleranceInMeters = 0.1 + + /// Returns the area of this path on Earth which is considered to be closed. + /// - Parameters: + /// - radius: the radius of the sphere. Defaults to `kGMSEarthRadius` + /// - Returns: the area of this path + func area(radius: CLLocationDistance = kGMSEarthRadius) -> Double { + return abs(signedArea(radius: radius)) + } + + /// The signed area of this path which is considered to be closed. The result + /// is positive if the points of path are in counter-clockwise order, negative otherwise, and 0 + /// if this path contains less than 0 coordinates. + /// - Parameters: + /// - radius: the radius of the sphere. Defaults to `kGMSEarthRadius` + /// - Returns: The signed area of this path + func signedArea(radius: CLLocationDistance = kGMSEarthRadius) -> Double { + guard var prev = coordinates.last?.latLngRadians else { return 0 } + guard count() > 2 else { return 0 } + + var area = 0.0 + for coord in coordinates { + let coordRadians = coord.latLngRadians + area += LatLngRadians.polarTriangleArea(coordRadians, prev) + prev = coordRadians + } + return area * pow(radius, 2) + } + + /// Returns whether or not `coordinate` is inside this path which is always considered to be closed + /// regardless if the last point of this path equals the first or not. This path is described by great circle + /// segments if `geodesic` is true, otherwise, it is described by rhumb (loxodromic) segments. + /// + /// If `coordinate` is exactly equal to one of the vertices, the result is true. 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 `isOnPath(coordinate:, geodesic:, tolerance:)` for a border test with tolerance. + /// + /// Note: "Inside" is defined as not containing the South Pole—the South Pole is always considered outside. + func contains(coordinate: CLLocationCoordinate2D, geodesic: Bool) -> Bool { + + let coordinates = self.coordinates + + // Naming: the segment is latLng1 to latLng2 and the point is latLng3 + guard var latLng1 = coordinates.last?.latLngRadians else { + return false + } + let latLng3 = coordinate.latLngRadians + + var intersectionsCount = 0 + + for coord in coordinates { + let wrappedLng3 = Math.wrap(value: latLng3.longitude - latLng1.longitude, min: -.pi, max: .pi) + + // Special-case: coordinate equal to one of the vertices. + if (latLng3.latitude == latLng1.latitude && wrappedLng3 == 0) { + return true + } + + let latLng2 = coord.latLngRadians + let wrappedLng2 = Math.wrap(value: latLng2.longitude - latLng1.longitude, min: -.pi, max: .pi) + + if intersects( + lat1: latLng1.latitude, + latLng2: LatLngRadians(latitude: latLng2.latitude, longitude: wrappedLng2), + latLng3: LatLngRadians(latitude: latLng3.latitude, longitude: wrappedLng3), + geodesic: geodesic + ) { + intersectionsCount += 1 + } + latLng1 = latLng2 + } + return intersectionsCount % 2 == 1 + } + + /// Returns whether `coordinate` lies on or near this path within the specified `tolerance` in meters. + /// + /// 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. + /// + /// - Parameters: + /// - coordinate: The coordinate to inspect if it lies within this path + /// - geodesic: `true` if this path is described by great circle segments, otherwise, it is described by rhumb (loxodromic) segments + /// - tolerance: the tolerance in meters. Default value is `defaultToleranceInMeters` + func isOnPath(coordinate: CLLocationCoordinate2D, geodesic: Bool, tolerance: Double = defaultToleranceInMeters) -> Bool { + + let coordinates = self.coordinates + + // No points + guard let prev = coordinates.first else { + return false + } + + // Naming: the segment is latLng1 to latLng2 and the point is targetLatLng. + var latLng1 = prev.latLngRadians + let targetLatLng = coordinate.latLngRadians + let normalizedTolerance = tolerance / kGMSEarthRadius + let havTolerance = Math.haversine(normalizedTolerance) + + // Single point + guard coordinates.count > 1 else { + let distance = Math.haversineDistance(latLng1, targetLatLng) + return distance < havTolerance + } + + // Handle geodesic + if (geodesic) { + for coord in coordinates { + let latLng2 = coord.latLngRadians + if (isOnSegmentGreatCircle(latLng1: latLng1, latLng2: latLng2, latLng3: targetLatLng, havTolerance: havTolerance)) { + return true + } + latLng1 = latLng2 + } + return false + } + + // We project the points to mercator space, where the Rhumb segment is a straight line, + // and compute the geodesic distance between point3 and the closest point on the segment. + // Note that this method is an approximation, because it uses "closest" in mercator space, + // which is not "closest" on the sphere -- but the error introduced is small as + // `normalizedTolerance` is small. + let minAcceptable = targetLatLng.latitude - normalizedTolerance + let maxAcceptable = targetLatLng.latitude + normalizedTolerance + + var point1 = CartesianPoint(x: 0, y: Math.mercatorY(latitudeInRadians: latLng1.latitude)) + + for coord in coordinates { + let latLng2 = coord.latLngRadians + + guard max(latLng1.latitude, latLng2.latitude) >= minAcceptable && + min(latLng1.latitude, latLng2.latitude) <= maxAcceptable else { + continue + } + + // The implicit x1 is always 0 because we offset longitudes by -lng1. + let point2 = CartesianPoint( + x: Math.wrap(value: latLng2.longitude - latLng1.longitude, min: -.pi, max: .pi), + y: Math.mercatorY(latitudeInRadians: latLng2.latitude) + ) + let point3 = CartesianPoint( + x: Math.wrap(value: targetLatLng.longitude - latLng1.longitude, min: -.pi, max: .pi), + y: Math.mercatorY(latitudeInRadians: targetLatLng.latitude) + ) + + if let closestPoint = closestPointAround(point1, point2, point3) { + let latClosest = Math.inverseMercatorLatitudeRadians(closestPoint.y) + let deltaLng = point3.x - closestPoint.x + let havDistance = Math.haversineDistance( + latitude1: targetLatLng.latitude, + latitude2: latClosest, + deltaLongitude: deltaLng + ) + if (havDistance < havTolerance) { + return true + } + } + + latLng1 = latLng2 + point1 = CartesianPoint(x: 0, y: point2.y) + } + + return false + } + + /// Returns an array of `GMSStyleSpan` constructed by repeated application of style and length information + /// from `lengths` and `styles` along this path. + /// + /// - Parameters: + /// - styles: The styles to create `GMSStyleSpan` objects from + /// - lengths: The length the corresponding style at the same index of `styles` should be applied + /// - lengthKind: The `GMSLengthKind` the lengths are provided in + /// - offset: A length offset that will be skipped over relative to `lengths` + func styleSpans( + styles: [GMSStrokeStyle], + lengths: [Double], + lengthKind: GMSLengthKind, + offset: Double = 0 + ) -> [GMSStyleSpan] { + guard !styles.isEmpty else { + return [] + } + + let sumLength = lengths.reduce(0) { return $0 + $1 } + guard sumLength > 0 else { + return [] + } + + let lengthOffset = Math.wrap( + value: offset, + min: 0, + max: sumLength * Double( + (styles.count / Math.greatestCommonDivisor(lengths.count, styles.count)) + ) + ) + let totalLength = self.length(of: lengthKind) + + var lengthIter = 0 + var styleIter = 0 + var lengthPos = -lengthOffset + var prevSegments = 0.0 + var spans: [GMSStyleSpan] = [] + + while (lengthPos < totalLength) { + lengthPos += lengths[lengthIter] + if (lengthPos > 0) { + let segments = self.segments(forLength: lengthPos, kind: lengthKind) + let delta = segments - prevSegments + if (delta > 0) { + spans.append(GMSStyleSpan(style: styles[styleIter], segments: delta)) + prevSegments = segments + } + } + lengthIter = (lengthIter + 1) % lengths.count + styleIter = (styleIter + 1) % styles.count + } + + return spans + } +} + +private extension GMSPath { + + var coordinates: [CLLocationCoordinate2D] { + var coords: [CLLocationCoordinate2D] = [] + for idx in 0.. CartesianPoint? { + guard p1.x == 0 else { + return nil + } + + var closestDistance = Double.infinity + var result = p3 + for x in [p3.x, p3.x - 2 * .pi, p3.x + 2 * .pi] { + let pCurrent = CartesianPoint(x: x, y: p3.y) + + // Get closest point + let dy = p2.y - p1.y + let len2 = p2.x * p2.x + dy * dy + let t = (len2 <= 0) ? 0 : Math.clamp(value: (pCurrent.x * p2.x + (p3.y - p1.y) * dy) / len2, min: 0, max: 1) + let closest = CartesianPoint(x: t * p2.x, y: p1.y + t * dy) + + let distance = ((pCurrent.x - closest.x) * (pCurrent.x - closest.x)) + ((pCurrent.y - closest.y) * (pCurrent.y - closest.y)) + if (distance < closestDistance) { + closestDistance = distance + result = closest + } + } + return result + } + + func isOnSegmentGreatCircle( + latLng1: LatLngRadians, + latLng2: LatLngRadians, + latLng3: LatLngRadians, + havTolerance: LocationRadians + ) -> Bool { + // Haversine is strictly increasing on [0, .pi]; we do some comparisons in hav space. + // First check distance to the ends of the segment. + let havDist13 = Math.haversineDistance(latLng1, latLng3) + guard havDist13 > havTolerance else { + return true + } + + let havDist23 = Math.haversineDistance(latLng2, latLng3) + guard havDist23 > havTolerance else { + return true + } + + // Compute "cross-track distance", the distance from point to the GC formed by the segment. + let sinBearing = sinDeltaBearing(latLng1: latLng1, latLng2: latLng2, latLng3: latLng3) + let sinDist13 = Math.sinFromHaversine(havDist13) + let havCrossTrack = Math.haversineFromSin(sinDist13 * sinBearing) + guard havCrossTrack <= havTolerance else { + return false + } + + // Check that the "projection" P of latlng3 to the GC circle formed by the segment is inside the segment. + // We compare the alongTrack distance from both ends of the segment with the length of the + // segment. If any of the alongTrack is larger than the segment, then the point projects outside. + // cos(alongTrack) == cos(distance13)/cos(crossTrack), so + // hav(alongTrack) == (havDist13 - havCrossTrack)/cos(crossTrack). + // alongTrack > distance12 becomes: + // hav(alongTrack) > havDist12, + // (havDist13 - havCrossTrack)/cos(crossTrack) > havDist12 . Note cos(crossTrack) > 0 and large. + // havDist13 > havDist12 * cos(crossTrack) + havCrossTrack. + // cos(crossTrack) == 1 - 2*havCrossTrack. Note cos(crossTrack) is positive. + // havDist13 > havDist12 * (1 - 2*havCrossTrack) + havCrossTrack + // havDist13 > havDist12 + havCrossTrack * (1 - 2 * havDist12). + let havDist12 = Math.haversineDistance(latLng1, latLng2) + let term = havDist12 + havCrossTrack * (1 - 2 * havDist12) + if (havDist13 > term || havDist23 > term) { + return false; + } + + // If both along-track distances are less than the segment, the projection may still + // be outside only if the segment is larger than 120deg. + if (havDist12 < 0.7) { + return true + } + + // We decide remaining case by comparing the sum of along-track distances to the half-circle. + let cosCrossTrack = 1 - 2 * havCrossTrack + let havAlongTrack13 = (havDist13 - havCrossTrack) / cosCrossTrack + let havAlongTrack23 = (havDist23 - havCrossTrack) / cosCrossTrack + let sinSumAlongTrack = Math.sinSumFromHaversine(havAlongTrack13, havAlongTrack23) + return sinSumAlongTrack > 0 // Compare with half-circle == PI using sign of sin(). + } + + /// Returns sin(initial bearing from `latLng1` to `latLng3` minus initial bearing from `latLng1` to `latLng2`). + func sinDeltaBearing(latLng1: LatLngRadians, latLng2: LatLngRadians, latLng3: LatLngRadians) -> LocationRadians { + // Uses sin(atan2(a,b) - atan2(c,d)) == (a*d - b*c) / sqrt((a*a + b*b) * (c*c + d*d)). + let sinLat1 = sin(latLng1.latitude) + let cosLat2 = cos(latLng2.latitude) + let cosLat3 = cos(latLng3.latitude) + let lat31 = latLng3.latitude - latLng1.latitude + let lng31 = latLng3.longitude - latLng1.longitude + let lat21 = latLng2.latitude - latLng1.latitude + let lng21 = latLng2.longitude - latLng1.longitude + let a = sin(lng31) * cosLat3 + let c = sin(lng21) * cosLat2 + let b = sin(lat31) + 2 * sinLat1 * cosLat3 * Math.haversine(lng31) + let d = sin(lat21) + 2 * sinLat1 * cosLat2 * Math.haversine(lng21) + let denominator = (a * a + b * b) * (c * c + d * d) + return denominator <= 0 ? 1 : (a * d - b * c) / sqrt(denominator); + } + + /// Computes whether the vertical segment `latLng3` to South Pole intersects the + /// segment (`lat1`, 0) to `latLng2`. Longitudes are offset by -`lng1`, the implicit + /// lng1 becomes 0. + func intersects( + lat1: LocationRadians, + latLng2: LatLngRadians, + latLng3: LatLngRadians, + geodesic: Bool + ) -> Bool { + + // Both ends on the same side of lng3 doesn't intersect + if ((latLng3.longitude >= 0 && latLng3.longitude >= latLng2.longitude) || + (latLng3.longitude < 0 && latLng3.longitude < latLng2.longitude)) { + return false + } + + // Point is South Pole. + if (latLng3.latitude <= -.pi / 2) { + return false + } + + // Any segment end is a pole. + if (lat1 <= -.pi / 2 || latLng2.latitude <= -.pi / 2 || lat1 >= .pi / 2 || latLng2.latitude >= .pi / 2) { + return false + } + + if (latLng2.longitude <= -.pi) { + return false + } + + let linearLat = (lat1 * (latLng2.longitude - latLng3.longitude) + latLng2.latitude * latLng3.longitude) / latLng2.longitude + + // Northern hemisphere and point under lat-lng line. + if (lat1 >= 0 && latLng2.latitude >= 0 && latLng3.latitude < linearLat) { + return false + } + + // Southern hemisphere and point above lat-lng line. + if (lat1 <= 0 && latLng2.latitude <= 0 && latLng3.latitude >= linearLat) { + return true + } + // North Pole. + if (latLng3.latitude >= .pi / 2) { + return true + } + // Compare lat3 with latitude on the GC/Rhumb segment corresponding to lng3. + // Compare through a strictly-increasing function (tan() or mercator()) as convenient. + return geodesic ? + tan(latLng3.latitude) >= tanLatGreatCircle(lat1: lat1, latLng2: latLng2, lng3: latLng3.longitude) : + Math.mercatorY(latitudeInRadians: latLng3.latitude) >= mercatorLatRhumb(lat1: lat1, latLng2: latLng2, lng3: latLng3.longitude) + } + + /// Returns tan(latitude-at-lng3) on the great circle (`lat1`, 0) to `latLng2`. + func tanLatGreatCircle(lat1: LocationRadians, latLng2: LatLngRadians, lng3: LocationRadians) -> LocationRadians { + return (tan(lat1) * sin(latLng2.longitude - lng3) + tan(latLng2.latitude) * sin(lng3)) / sin(latLng2.longitude) + } + + /// Returns mercator(latitude-at-lng3) on the Rhumb line (`lat1`, 0) to `latLng2`. + func mercatorLatRhumb(lat1: LocationRadians, latLng2: LatLngRadians, lng3: LocationRadians) -> LocationRadians { + return ( + Math.mercatorY(latitudeInRadians: lat1) * (latLng2.longitude - lng3) + Math.mercatorY(latitudeInRadians: latLng2.latitude) * lng3 + ) / latLng2.longitude + } +} + +public extension Sequence where Iterator.Element == CLLocationCoordinate2D { + + /// Creates a `GMSMutablePath` from this sequence of `CLLocationCoordinate2D` + var gmsMutablePath: GMSMutablePath { + let path = GMSMutablePath() + forEach { coordinate in + path.add(coordinate) + } + return path + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolygon+GeometryUtils.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolygon+GeometryUtils.swift new file mode 100644 index 00000000..5dbdf307 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolygon+GeometryUtils.swift @@ -0,0 +1,49 @@ +// Copyright 2020 Google LLC +// +// 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 GoogleMaps + +public extension GMSPolygon { + + /// Returns whether or not `coordinate` is inside this polygon. + func contains(coordinate: CLLocationCoordinate2D) -> Bool { + guard let path = self.path else { + return false + } + return path.contains(coordinate: coordinate, geodesic: geodesic) + } + + /// Returns the area of this polygon. + /// - Parameters: + /// - radius: the radius of the sphere. Defaults to `kGMSEarthRadius` + /// - Returns: the area of this polygon, nil if the coordinates composing this polygon is invalid + func area(radius: CLLocationDistance = kGMSEarthRadius) -> Double? { + guard let path = self.path else { + return nil + } + return path.area(radius: radius) + } + + /// The signed area of this path on Earth which is considered. The result + /// is positive if the points of path are in counter-clockwise order, and negative otherwise. + /// - Parameters: + /// - radius: the radius of the sphere. Defaults to `kGMSEarthRadius` + /// - Returns: the signed area of this polygon, nil if the coordinates composing this polygon is invalid + func signedArea(radius: CLLocationDistance = kGMSEarthRadius) -> Double? { + guard let path = self.path else { + return nil + } + return path.signedArea(radius: radius) + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolyline+GeometryUtils.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolyline+GeometryUtils.swift new file mode 100644 index 00000000..f31a63f6 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/GMSPolyline+GeometryUtils.swift @@ -0,0 +1,27 @@ +// Copyright 2020 Google LLC +// +// 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 GoogleMaps + +public extension GMSPolyline { + + /// Returns whether `coordinate` lies on or near this path within the specified `tolerance` in meters. Tolerance + /// is defaulted to `GMSPath.defaultToleranceInMeters`. + func isOnPolyline(coordinate: CLLocationCoordinate2D, tolerance: Double = GMSPath.defaultToleranceInMeters) -> Bool { + guard let path = self.path else { + return false + } + return path.isOnPath(coordinate: coordinate, geodesic: geodesic, tolerance: tolerance) + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/CatesianPoint.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/CatesianPoint.swift new file mode 100644 index 00000000..cb029e78 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/CatesianPoint.swift @@ -0,0 +1,20 @@ +// Copyright 2020 Google LLC +// +// 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. + +struct CartesianPoint { + static var zero: CartesianPoint = CartesianPoint(x: 0, y: 0) + + var x: Double + var y: Double +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/LatLngRadians.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/LatLngRadians.swift new file mode 100644 index 00000000..a5dadad5 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Internal/LatLngRadians.swift @@ -0,0 +1,74 @@ +// Copyright 2020 Google LLC +// +// 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 CoreLocation + +/// A location (latitude or longitude) represented in radians +typealias LocationRadians = Double + +/// A struct representing a latitude, longitude value represented in radians +struct LatLngRadians { + var latitude: LocationRadians + var longitude: LocationRadians + + static func +(left: LatLngRadians, right: LatLngRadians) -> LatLngRadians { + return LatLngRadians( + latitude: left.latitude + right.latitude, + longitude: left.longitude + right.longitude + ) + } + + static func -(left: LatLngRadians, right: LatLngRadians) -> LatLngRadians { + return LatLngRadians( + latitude: left.latitude - right.latitude, + longitude: left.longitude - right.longitude + ) + } +} + +extension LocationRadians { + var degrees: CLLocationDegrees { + return self * (180 / .pi) + } +} + +extension LatLngRadians { + var locationCoordinate2D: CLLocationCoordinate2D { + return CLLocationCoordinate2D(latitude: latitude.degrees, longitude: longitude.degrees) + } + + /// Returns the signed area of a triangle composing `latLng1`, `latLng2`, and the north pole. + /// Formula derived from "Area of a spherical triangle given two edges and the included angle" + /// as per "Spherical Trigonometry" by Todhunter, page 71, section 103, point 2. + /// See http://books.google.com/books?id=3uBHAAAAIAAJ&pg=PA71 + static func polarTriangleArea(_ latLng1: LatLngRadians, _ latLng2: LatLngRadians) -> Double { + let deltaLng = latLng1.longitude - latLng2.longitude + let tan1 = tan(((.pi / 2) - latLng1.latitude) / 2) + let tan2 = tan(((.pi / 2) - latLng2.latitude) / 2) + let t = tan1 * tan2 + return 2 * atan2(t * sin(deltaLng), 1 + t * cos(deltaLng)) + } +} + +extension CLLocationCoordinate2D { + var latLngRadians: LatLngRadians { + LatLngRadians(latitude: latitude.radians, longitude: longitude.radians) + } +} + +extension CLLocationDegrees { + var radians: LocationRadians { + return self * (.pi / 180) + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/MapPoint.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/MapPoint.swift new file mode 100644 index 00000000..f295e1e5 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/MapPoint.swift @@ -0,0 +1,86 @@ +// Copyright 2020 Google LLC +// +// 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 CoreLocation + +/// Describes a point on the globe in a projected coordinate system. +/// +/// The value of `x`, the longitude projection, is in the range [-1, 1]. +/// The axis direction behaves such that increasing `y` values go towards North, +/// and increasing `x` values go towards East. +/// +/// The point (0, 0) is the coordinate at lat, long (0, 0). +public struct MapPoint { + var x: Double + var y: Double +} + +public extension CLLocationCoordinate2D { + /// Projects this coordinate to the map and returns a MapPoint + var mapPoint: MapPoint { + return MapPoint( + x: Math.mercatorX(longitudeInDegrees: longitude), + y: Math.mercatorY(latitudeInDegrees: latitude) + ) + } +} + +public extension MapPoint { + /// Unprojects this point from the map + var location: CLLocationCoordinate2D { + return CLLocationCoordinate2D( + latitude: Math.inverseMercatorLatitudeDegrees(y), + longitude: Math.inverseMercatorLongitudeDegrees(x) + ) + } + + /// Returns the length of the segment from this to `to` 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. + func distance(to: MapPoint) -> Double { + let dy = self.y - to.y + let dx = self.x - to.x + var dx2 = dx * dx + if (dx2 > 1) { // Equivalent to abs(dx) > 1. + let dxprim = 2 - abs(dx) + dx2 = dxprim * dxprim + } + return sqrt(dx2 + dy * dy) + } + + /// Returns a linearly interpolated point on the segment `from` to `to` by `fraction`. + /// t==0 corresponds to `from`, t==1 corresponds to `to`. + /// + /// 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. + static func interpolate(from: MapPoint, to: MapPoint, fraction: Double) -> MapPoint { + let v = 1 - fraction + var ax = from.x + var bx = to.x + + // Rotate towards positive only so that we can avoid abs() on normalizing interpolateX below. + let worldWidth = 2.0 + if (ax < bx) { + ax += worldWidth + } else { + bx += worldWidth + } + var interpolateX = (ax * v) + (bx * fraction) + if (interpolateX > 1) { + interpolateX -= worldWidth + } + let interpolateY = (from.y * v) + (to.y * fraction) + return MapPoint(x: interpolateX, y: interpolateY) + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Math.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Math.swift new file mode 100644 index 00000000..72532b96 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/GeometryUtils/Math.swift @@ -0,0 +1,141 @@ +// Copyright 2020 Google LLC +// +// 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 CoreLocation + +class Math { + /// Computes the initial bearing between `from` and `to` in radians + static func initialBearing(_ from: LatLngRadians, _ to: LatLngRadians) -> LocationRadians { + let delta = to - from + let cosLatTo = cos(to.latitude) + let y = sin(delta.longitude) * cosLatTo + let x = sin(delta.latitude) + sin(from.latitude) * cosLatTo * 2 * haversine(delta.longitude) + return atan2(y, x) + } + + /// Returns sin(arcHav(x) + arcHav(y)). + static func sinSumFromHaversine(_ x: LocationRadians, _ y: LocationRadians) -> LocationRadians { + let a = sqrt(x * (1 - x)) + let b = sqrt(y * (1 - y)) + return 2 * (a + b - 2 * (a * y + b * x)) + } + + /// Given h==hav(x), returns sin(abs(x)) + static func sinFromHaversine(_ h: LocationRadians) -> LocationRadians { + return 2 * sqrt(h * (1 - h)) + } + + /// Returns hav(asin(x)). + static func haversineFromSin(_ x: LocationRadians) -> LocationRadians { + let x2 = x * x + return x2 / (1 + sqrt(1 - x2)) * 0.5 + } + + /// Computes the haversine(angle-in-radians). + /// hav(x) == (1 - cos(x)) / 2 == sin(x / 2)^2. + static func haversine(_ radians: LocationRadians) -> LocationRadians { + let sinHalf = sin(radians / 2) + return sinHalf * sinHalf + } + + /// Computes haversine of distance on a unit sphere between two coordinates in radians. + static func haversineDistance(_ latLng1: LatLngRadians, _ latLng2: LatLngRadians) -> LocationRadians { + return haversineDistance( + latitude1: latLng1.latitude, + latitude2: latLng2.latitude, + deltaLongitude: latLng1.longitude - latLng2.longitude + ) + } + + /// Computes haversine of distance on a unit sphere between two coordinates in radians. + static func haversineDistance( + latitude1: LocationRadians, + latitude2: LocationRadians, + deltaLongitude: LocationRadians + ) -> LocationRadians { + return haversine(latitude1 - latitude2) + haversine(deltaLongitude) * cos(latitude1) * cos(latitude2) + } + + /// Computes the inverse haversine + static func inverseHaversine(_ value: LocationRadians) -> LocationRadians { + return 2 * asin(sqrt(value)) + } + + /// Restricts `value` to the range [`min`, `max`] + static func clamp(value: Double, min: Double, max: Double) -> Double { + return (value < min) ? min : (value > max) ? max : value + } + + /// Wraps `value` into the inclusive-exclusive interval between `min` and `max` + static func wrap(value: Double, min: Double, max: Double) -> Double { + + // Not necessary to wrap if value is already within [min, max) + guard value < min || value >= max else { + return value + } + + return mod(value - min, modulus: max - min) + min + } + + /// Returns the non-negative remainder of value / modulus + static func mod(_ value: Double, modulus: Double) -> Double { + let truncated = value.truncatingRemainder(dividingBy: modulus) + return (truncated + modulus).truncatingRemainder(dividingBy: modulus) + } + + /// Return latitude in degrees from mercator Y + static func inverseMercatorLatitudeDegrees(_ y: Double) -> CLLocationDegrees { + return inverseMercatorLatitudeRadians(y * .pi).degrees + } + + /// Return latitude in degrees from mercator Y + static func inverseMercatorLatitudeRadians(_ y: Double) -> LocationRadians { + return (2 * atan(exp(y)) - (.pi / 2)) + } + + /// Return longitude in degrees from mercator X + static func inverseMercatorLongitudeDegrees(_ x: Double) -> CLLocationDegrees { + return x * 180 + } + + /// Returns mercator X from longitude in degrees + static func mercatorX(longitudeInDegrees: CLLocationDegrees) -> Double { + return longitudeInDegrees / 180 + } + + /// Returns mercator Y from latitude in degrees + static func mercatorY(latitudeInDegrees: CLLocationDegrees) -> Double { + return mercatorY(latitudeInRadians: latitudeInDegrees.radians) / .pi + } + + /// Returns mercator Y from latitude in radians + static func mercatorY(latitudeInRadians: LocationRadians) -> Double { + return log(tan(latitudeInRadians * 0.5 + (.pi / 4))) + } + + /// Returns the greatest common divisor between two integers using Euclid's algorithm + static func greatestCommonDivisor(_ num1: Int, _ num2: Int) -> Int { + guard num1 > 0 && num2 > 0 else { + return 1 + } + var a = num1 + var b = num2 + var t = 0 + while (b != 0) { + t = b + b = a % t + a = t + } + return a + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.h new file mode 100644 index 00000000..1a5f6c0f --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.h @@ -0,0 +1,51 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 + +NS_ASSUME_NONNULL_BEGIN + +// Represents a mapping of intensity to color. Interpolates between given set intensity and +// color values to produce a full mapping for the range [0, 1]. +@interface GMUGradient : NSObject + +// Number of entries in the generated color map. +@property(nonatomic, readonly) NSUInteger mapSize; + +// The specific colors for the specific intensities specified by startPoints. +@property(nonatomic, readonly) NSArray *colors; + +// The intensities which will be the specific colors specified in colors. +@property(nonatomic, readonly) NSArray *startPoints; + +// Designated initializer. +// +// |colors| and |startPoints| must not be empty, and must have the same number of elements. +// |startPoints| values must be in non-descending order and be float values in the range [0, 1]. +// |mapSize| must be at least two. Using more than 256 * colors.count is unlikely to provide any +// quality improvement. +- (instancetype)initWithColors:(NSArray *)colors + startPoints:(NSArray *)startPoints + colorMapSize:(NSUInteger)mapSize; + +// Generates an array of mapSize colors for the interpolated colors for intensities between 0 and 1 +// inclusive. +// If the provided startPoints do not cover the range 0 to 1, lower values interpolate towards +// transparent black and higher values repeat the last provided color. +- (NSArray *)generateColorMap; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.m new file mode 100644 index 00000000..4e960ef8 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUGradient.m @@ -0,0 +1,125 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 "GMUGradient.h" + +@implementation GMUGradient + +- (instancetype)initWithColors:(NSArray *)colors + startPoints:(NSArray *)startPoints + colorMapSize:(NSUInteger)mapSize { + if ((self = [super init])) { + if (colors.count == 0 || colors.count != startPoints.count) { + [NSException raise:NSInvalidArgumentException + format:@"colors' size: %lu is not equal to startPoints' size: %lu", + (unsigned long)colors.count, (unsigned long)startPoints.count]; + } + for (int i = 1; i < startPoints.count; i++) { + if ([startPoints[i - 1] floatValue] > [startPoints[i] floatValue]) { + [NSException raise:NSInvalidArgumentException + format:@"startPoints' are not in non-descending order."]; + return nil; + } + } + if ([startPoints[0] floatValue] < 0 || [startPoints[startPoints.count - 1] floatValue] > 1.0f) { + [NSException raise:NSInvalidArgumentException + format:@"startPoints' are not all in the range [0,1]."]; + return nil; + } + if (mapSize < 2) { + [NSException raise:NSInvalidArgumentException format:@"mapSize is less than 2."]; + return nil; + } + _colors = [colors copy]; + _startPoints = [startPoints copy]; + _mapSize = mapSize; + } + return self; +} + +- (NSArray *)generateColorMap { + NSMutableArray *colorMap = [NSMutableArray arrayWithCapacity:_mapSize]; + int curStartPoint = 0; + for (int i = 0; i < _mapSize; i++) { + float targetValue = i * 1.0f / (_mapSize - 1); + while (curStartPoint < _startPoints.count && + targetValue >= [_startPoints[curStartPoint] floatValue]) { + curStartPoint++; + } + // Three cases. + // curStartPoint is length - use the previous color + // curStartPoint is 0 - interpolate between current color and transparent. + // else interpolate between curStartPoint and curStartPoint - 1 + if (curStartPoint == _startPoints.count) { + colorMap[i] = _colors[curStartPoint - 1]; + continue; + } + float curValue = [_startPoints[curStartPoint] floatValue]; + float prevValue = curStartPoint == 0 ? 0 : [_startPoints[curStartPoint - 1] floatValue]; + UIColor *curColor = _colors[curStartPoint]; + UIColor *prevColor = curStartPoint == 0 ? [UIColor clearColor] : _colors[curStartPoint - 1]; + colorMap[i] = [self interpolateColorFrom:prevColor + to:curColor + ratio:(targetValue - prevValue) / (curValue - prevValue)]; + } + return colorMap; +} + +// Perform HSB and alpha interpolation. +- (UIColor *)interpolateColorFrom:(UIColor *)fromColor to:(UIColor *)toColor ratio:(float)ratio { + CGFloat fromHue = 0; + CGFloat fromSaturation = 0; + CGFloat fromBrightness = 0; + CGFloat fromAlpha = 0; + if (![fromColor getHue:&fromHue + saturation:&fromSaturation + brightness:&fromBrightness + alpha:&fromAlpha]) { + // If color can't be converted, fallback to bands of color. + // TODO: raise an error instead? + return fromColor; + } + CGFloat toHue = 0; + CGFloat toSaturation = 0; + CGFloat toBrightness = 0; + CGFloat toAlpha = 0; + if (![toColor getHue:&toHue saturation:&toSaturation brightness:&toBrightness alpha:&toAlpha]) { + // If color can't be converted, fallback to bands of color. + // TODO: raise an error instead? + return fromColor; + } + CGFloat targetHue = fromHue + (toHue - fromHue) * ratio; + // Use 'shortest path' around the color wheel. + // Note: this logic is nonsense in the presence of extended color spaces as the color wheel isn't + // 0.0 to 1.0 in that case. + if (toHue - fromHue > 0.5f) { + targetHue = fmod((1.0f + fromHue) + (toHue - fromHue - 1.0f) * ratio, 1.0f); + } else if (toHue - fromHue < -0.5f) { + targetHue = fmod((fromHue) + (toHue + 1.0f - fromHue) * ratio, 1.0f); + } + CGFloat targetSaturation = fromSaturation + (toSaturation - fromSaturation) * ratio; + CGFloat targetBrightness = fromBrightness + (toBrightness - fromBrightness) * ratio; + CGFloat targetAlpha = fromAlpha + (toAlpha - fromAlpha) * ratio; + return [UIColor colorWithHue:targetHue + saturation:targetSaturation + brightness:targetBrightness + alpha:targetAlpha]; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer+Testing.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer+Testing.h new file mode 100644 index 00000000..dc9f224f --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer+Testing.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2020 Google Inc. + * + * 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 "GMUHeatmapTileLayer.h" + +/* Extensions for testing purposes only. */ +@interface GMUHeatmapTileLayer (Testing) + +- (UIImage *)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.h new file mode 100644 index 00000000..0eb05054 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 "GMUGradient.h" +#import "GMUWeightedLatLng.h" + +NS_ASSUME_NONNULL_BEGIN + +// A tile layer which renders a heat map. +// The heat map uses convolutional smoothing of specific raidus with weighted data points in +// combination with a gradient which maps intensity to colors to dynamically generate tiles. +// Note: tiles are loaded on background threads, but the configuration properties are non-atomic. +// To ensure consistency, the configuration properties are captured when changing the map property. +// In order to change the values of a live layer, the map property must be reset. +// +// Overrides the default value for opacity to be 0.7 and sets the tile size to 512. Changing the +// tile size is not supported. +@interface GMUHeatmapTileLayer : GMSSyncTileLayer + +// Positions and individual intensitites of the data which will be smoothed for display on the +// tiles. +@property(nonatomic, copy) NSArray *weightedData; + +// Radius of smoothing. +// Larger values smooth the data out over a larger area, but also have a greater cost for generating +// tiles. +// It is not recommended to set this to a value greater than 50. +@property(nonatomic) NSUInteger radius; + +// The gradient used to map smoothed intensities to colors in the tiles. +@property(nonatomic) GMUGradient *gradient; + +// The minimum zoom intensity used for normalizing intensities, defaults to 5 +@property(nonatomic) NSUInteger minimumZoomIntensity; + +// The maximum zoom intensity used for normalizing intensities, defaults to 10 +@property(nonatomic) NSUInteger maximumZoomIntensity; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.m new file mode 100644 index 00000000..4e82f05b --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUHeatmapTileLayer.m @@ -0,0 +1,354 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 "GMUHeatmapTileLayer.h" + +#import "GQTBounds.h" +#import "GQTPointQuadTree.h" + +static const int kGMUTileSize = 512; +static const int kGMUMaxZoom = 22; + +static void FreeDataProviderData(void *info, const void *data, size_t size) { free((void *)data); } + +// Holder for data which must be consistent when accessed from tile creation threads. +@interface GMUHeatmapTileCreationData : NSObject { + @public + GQTPointQuadTree *_quadTree; + GQTBounds _bounds; + NSUInteger _radius; + NSUInteger _minimumZoomIntensity; + NSUInteger _maximumZoomIntensity; + NSArray *_colorMap; + NSArray *_maxIntensities; + NSArray *_kernel; +} +@end + +@implementation GMUHeatmapTileCreationData +@end + +@implementation GMUHeatmapTileLayer { + BOOL _dirty; + GMUHeatmapTileCreationData *_data; +} + +- (instancetype)init { + if ((self = [super init])) { + _radius = 20; + _minimumZoomIntensity = 5; + _maximumZoomIntensity = 10; + + NSArray *gradientColors = @[ + [UIColor colorWithRed:102.f / 255.f green:225.f / 255.f blue:0 alpha:1], + [UIColor colorWithRed:1.0f green:0 blue:0 alpha:1] + ]; + _gradient = [[GMUGradient alloc] initWithColors:gradientColors + startPoints:@[ @0.2f, @1.0f ] + colorMapSize:1000]; + _dirty = YES; + self.opacity = 0.7; + self.tileSize = kGMUTileSize; + } + return self; +} + +- (void)setRadius:(NSUInteger)value { + _radius = value; + _dirty = YES; +} + +- (void)setGradient:(GMUGradient *)gradient { + _gradient = gradient; + _dirty = YES; +} + +- (void)setMinimumZoomIntensity:(NSUInteger)minimumZoomIntensity { + _minimumZoomIntensity = minimumZoomIntensity; + _dirty = YES; +} + +- (void)setMaximumZoomIntensity:(NSUInteger)maximumZoomIntensity { + _maximumZoomIntensity = maximumZoomIntensity; + _dirty = YES; +} + +- (void)setWeightedData:(NSArray *)weightedData { + _weightedData = [weightedData copy]; + _dirty = YES; +} + +- (void)setMap:(GMSMapView *)map { + if (_dirty) { + [self prepare]; + _dirty = NO; + } + [super setMap:map]; +} + +- (GQTBounds)calculateBounds { + GQTBounds result; + result.minX = 0; + result.minY = 0; + result.maxX = 0; + result.maxY = 0; + if (_weightedData.count == 0) { + return result; + } + GQTPoint point = [_weightedData[0] point]; + result.minX = result.maxX = point.x; + result.minY = result.maxY = point.y; + for (int i = 1; i < _weightedData.count; i++) { + point = [_weightedData[i] point]; + if (result.minX > point.x) result.minX = point.x; + if (result.maxX < point.x) result.maxX = point.x; + if (result.minY > point.y) result.minY = point.y; + if (result.maxY < point.y) result.maxY = point.y; + } + return result; +} + +- (NSNumber *)maxValueForZoom:(NSUInteger)zoom { + // Bucket data in to areas equal to twice radius at the given zoom. + // At zoom 0, one tile covers the entire range of -1 to 1. + // So for zoom 0 bucket size should be 2*2*radius/512. + // However in practice these buckets are too big, as it kind of assumes convolution with a kernel + // which is 1 for the entire diameter. + // Unless all the points are practically coincident within the bucket, this is quite wrong. + // Therefore apply a magical factor to give something which is a bit better in practice. + // TODO: apply magical factor squared to the final result rather than changing the bucket size? + double magicalFactor = 0.5; + double bucketSize = _radius / 128.0 / pow(2, zoom) * magicalFactor; + NSMutableDictionary *> *lookupX = + [NSMutableDictionary dictionary]; + float max = 0; + for (GMUWeightedLatLng *dataPoint in _weightedData) { + GQTPoint point = [dataPoint point]; + NSNumber *xBucket = @((int)((point.x + 1) / bucketSize)); + NSNumber *yBucket = @((int)((point.y + 1) / bucketSize)); + NSMutableDictionary *lookupY = lookupX[xBucket]; + if (!lookupY) { + lookupY = [NSMutableDictionary dictionary]; + lookupX[xBucket] = lookupY; + } + NSNumber *value = lookupY[yBucket]; + float newValue = [value floatValue] + dataPoint.intensity; + if (newValue > max) max = newValue; + lookupY[yBucket] = @(newValue); + } + return @(max); +} + +- (NSArray *)calculateIntensities { + // TODO: extract constants; + NSMutableArray *intensities = [NSMutableArray arrayWithCapacity:kGMUMaxZoom]; + // Populate the array up to the min intensity with place holders until the min intensity is + // calculated. + for (NSUInteger i = 0; i < _minimumZoomIntensity; i++) { + intensities[i] = @0; + } + for (NSUInteger i = _minimumZoomIntensity; i <= _maximumZoomIntensity; i++) { + intensities[i] = [self maxValueForZoom:i]; + } + for (NSUInteger i = 0; i < _minimumZoomIntensity; i++) { + intensities[i] = intensities[_minimumZoomIntensity]; + } + for (NSUInteger i = _maximumZoomIntensity + 1; i < kGMUMaxZoom; i++) { + intensities[i] = intensities[_maximumZoomIntensity]; + } + return intensities; +} + +- (NSArray *)generateKernel { + float sd = _radius / 3.0; + NSMutableArray *values = [NSMutableArray arrayWithCapacity:_radius * 2 + 1]; + for (int i = -(int)_radius; i <= (int)_radius; i++) { + values[i + _radius] = @(expf(-i * i / (2 * sd * sd))); + } + return values; +} + +- (void)prepare { + GMUHeatmapTileCreationData *data = [[GMUHeatmapTileCreationData alloc] init]; + data->_bounds = [self calculateBounds]; + data->_quadTree = [[GQTPointQuadTree alloc] initWithBounds:data->_bounds]; + for (GMUWeightedLatLng *dataPoint in _weightedData) { + [data->_quadTree add:dataPoint]; + } + data->_colorMap = [_gradient generateColorMap]; + data->_maxIntensities = [self calculateIntensities]; + data->_kernel = [self generateKernel]; + data->_radius = _radius; + @synchronized(self) { + _data = data; + } +} + +- (UIImage *)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom { + GMUHeatmapTileCreationData *data; + @synchronized(self) { + data = _data; + } + // Zoom 0 tile covers the world [-1, 1]. + double tileWidth = 2.0 / pow(2.0, zoom); + double padding = tileWidth * data->_radius / kGMUTileSize; + // One bucket per pixel. + double bucketWidth = tileWidth / kGMUTileSize; + double minX = -1 + x * tileWidth - padding; + double maxX = -1 + (x + 1) * tileWidth + padding; + // y axis for tile coordinates goes north to south, but y axis of world space goes south to north, + // so this is inverted. + double maxY = 1 - y * tileWidth + padding; + double minY = 1 - (y + 1) * tileWidth - padding; + + double wrappedPointsOffset = 0; + NSArray *wrappedPoints; + if (minX < -1) { + GQTBounds wrappedBounds; + wrappedBounds.minX = minX + 2; + wrappedBounds.maxX = 1.0; + wrappedBounds.minY = minY; + wrappedBounds.maxY = maxY; + wrappedPoints = [data->_quadTree searchWithBounds:wrappedBounds]; + wrappedPointsOffset = -2; + } else if (maxX > 1) { + GQTBounds wrappedBounds; + wrappedBounds.minX = -1.0; + wrappedBounds.maxX = maxX - 2.0; + wrappedBounds.minY = minY; + wrappedBounds.maxY = maxY; + wrappedPoints = [data->_quadTree searchWithBounds:wrappedBounds]; + wrappedPointsOffset = 2; + } + GQTBounds bounds; + bounds.minX = minX; + bounds.maxX = maxX; + bounds.minY = minY; + bounds.maxY = maxY; + NSArray *points = [data->_quadTree searchWithBounds:bounds]; + // If there is no data at all return empty tile. + if (points.count + wrappedPoints.count == 0) { + return kGMSTileLayerNoTile; + } + + // Quantize points. + int paddedTileSize = kGMUTileSize + 2 * (int)data->_radius; + float *intensity = calloc(paddedTileSize * paddedTileSize, sizeof(float)); + for (GMUWeightedLatLng *item in points) { + GQTPoint p = [item point]; + int x = (int)((p.x - minX) / bucketWidth); + // Flip y axis as world space goes south to north, but tile content goes north to south. + int y = (int)((maxY - p.y) / bucketWidth); + // If the point is just on the edge of the query area, the bucketing could put it outside + // bounds. + if (x >= paddedTileSize) x = paddedTileSize - 1; + if (y >= paddedTileSize) y = paddedTileSize - 1; + intensity[y * paddedTileSize + x] += item.intensity; + } + for (GMUWeightedLatLng *item in wrappedPoints) { + GQTPoint p = [item point]; + int x = (int)((p.x + wrappedPointsOffset - minX) / bucketWidth); + // Flip y axis as world space goes south to north, but tile content goes north to south. + int y = (int)((maxY - p.y) / bucketWidth); + // If the point is just on the edge of the query area, the bucketing could put it outside + // bounds. + if (x >= paddedTileSize) x = paddedTileSize - 1; + if (y >= paddedTileSize) y = paddedTileSize - 1; + // For wrapped points, additional shifting risks bucketing slipping just outside due to + // numerical instability. + if (x < 0) x = 0; + intensity[y * paddedTileSize + x] += item.intensity; + } + + // Convolve data. + int lowerLimit = (int)data->_radius; + int upperLimit = paddedTileSize - (int)data->_radius - 1; + // Convolve horizontally first. + float *intermediate = calloc(paddedTileSize * paddedTileSize, sizeof(float)); + for (int y = 0; y < paddedTileSize; y++) { + for (int x = 0; x < paddedTileSize; x++) { + float value = intensity[y * paddedTileSize + x]; + if (value != 0) { + // convolve to x +/- radius bounded by the limit we care about. + int start = MAX(lowerLimit, x - (int)data->_radius); + int end = MIN(upperLimit, x + (int)data->_radius); + for (int x2 = start; x2 <= end; x2++) { + float scaledKernel = value * [data->_kernel[x2 - x + data->_radius] floatValue]; + intermediate[y * paddedTileSize + x2] += scaledKernel; + } + } + } + } + free(intensity); + // Convole vertically to get final intensity. + float *finalIntensity = calloc(kGMUTileSize * kGMUTileSize, sizeof(float)); + for (int x = lowerLimit; x <= upperLimit; x++) { + for (int y = 0; y < paddedTileSize; y++) { + float value = intermediate[y * paddedTileSize + x]; + if (value != 0) { + int start = MAX(lowerLimit, y - (int)data->_radius); + int end = MIN(upperLimit, y + (int)data->_radius); + for (int y2 = start; y2 <= end; y2++) { + float scaledKernel = value * [data->_kernel[y2 - y + data->_radius] floatValue]; + finalIntensity[(y2 - lowerLimit) * kGMUTileSize + x - lowerLimit] += scaledKernel; + } + } + } + } + free(intermediate); + + // Generate coloring. + uint32_t *rawpixels = malloc(4 * kGMUTileSize * kGMUTileSize); + float max = [data->_maxIntensities[zoom] floatValue]; + float scaling = (data->_colorMap.count - 1) / max; + for (int y = 0; y < kGMUTileSize; y++) { + for (int x = 0; x < kGMUTileSize; x++) { + NSUInteger colorMapIndex = (NSUInteger)(finalIntensity[y * kGMUTileSize + x] * scaling); + // Clamp out of range to the last color. + if (colorMapIndex >= data->_colorMap.count) colorMapIndex = data->_colorMap.count - 1; + UIColor *color = data->_colorMap[colorMapIndex]; + uint32_t rgba; + CGFloat r, g, b, a; + if ([color getRed:&r green:&g blue:&b alpha:&a]) { + rgba = (((uint32_t)(a * 255)) << 24) + (((uint32_t)(b * 255)) << 16) + + (((uint32_t)(g * 255)) << 8) + ((uint32_t)(r * 255)); + } else { + // TODO: handle this error condition? + rgba = 0; + } + rawpixels[y * kGMUTileSize + x] = rgba; + } + } + free(finalIntensity); + + CGDataProviderRef provider = CGDataProviderCreateWithData( + NULL, rawpixels, kGMUTileSize * kGMUTileSize * 4, FreeDataProviderData); + + CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); + CGImageRef imageRef = CGImageCreate(kGMUTileSize, kGMUTileSize, 8, 32, 4 * kGMUTileSize, + colorSpaceRef, kCGBitmapByteOrder32Big | kCGImageAlphaLast, + provider, NULL, NO, kCGRenderingIntentDefault); + UIImage *newImage = [UIImage imageWithCGImage:imageRef]; + CGImageRelease(imageRef); + CGColorSpaceRelease(colorSpaceRef); + CGDataProviderRelease(provider); + return newImage; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.h new file mode 100644 index 00000000..5af3e6ab --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 "GQTPointQuadTreeItem.h" + +#import + +NS_ASSUME_NONNULL_BEGIN + +// A quad tree item which represents a data point of given intensity at a given point on the earth's +// surface. +@interface GMUWeightedLatLng : NSObject + +// The intensity of the data point. Scale is arbitrary but assumed to be linear. Intensity three +// should be equivalent to three co-located points of intensity one. +@property(nonatomic, readonly) float intensity; + +// Designated initializer. +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate intensity:(float)intensity; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.m new file mode 100644 index 00000000..1002d290 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/GMUWeightedLatLng.m @@ -0,0 +1,41 @@ +/* Copyright (c) 2017 Google Inc. + * + * 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 "GMUWeightedLatLng.h" +#import + +@implementation GMUWeightedLatLng { + GQTPoint _point; +} + +- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate intensity:(float)intensity { + if ((self = [super init])) { + _intensity = intensity; + GMSMapPoint mapPoint = GMSProject(coordinate); + _point.x = mapPoint.x; + _point.y = mapPoint.y; + } + return self; +} + +- (GQTPoint)point { + return _point; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/HeatMapInterpolationPoints.swift b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/HeatMapInterpolationPoints.swift new file mode 100644 index 00000000..4d4f752d --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/Heatmap/HeatMapInterpolationPoints.swift @@ -0,0 +1,401 @@ +/* Copyright (c) 2020 Google Inc. +* +* 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 GoogleMaps + +/// A simple fraction class; the main use case is for finding intensity values, which are represented as fractions +struct Fraction { + public let numerator: Double + public let denominator: Double + + /// Constructor to set the values of the numerator and denominator + /// + /// - Parameters: + /// - num: The numerator. + /// - denom: The denominator. + init(num: Double, denom: Double) { + numerator = num + denominator = denom + } +} + +/// This class will create artificial points in surrounding locations with appropriate intensities interpolated by neighboring intensity values. +/// The algorithm used for this class is heavily inspired by inverse distance weights to figure out intensities and k-means clustering to +/// both improve the heat map search bounds as well as the runtime. +/// IDW: https://mgimond.github.io/Spatial/spatial-interpolation.html +/// Clustering: https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68 +public class HeatMapInterpolationPoints: NSObject { + + /// The input data set + private var data = [GMUWeightedLatLng]() + + /// The list of interpolated heat map points with weight + private var heatMapPoints = [GMUWeightedLatLng]() + + /// Since IDW takes into account the distance an interpolated point is from the given points, it naturally begs the question: how + /// much should distance affect the interpolated value? If we don't want distance to affect interpolated values at all (which is not a + /// good idea since one point will span the entire globe) then this value can be set to 1 and if you want distances to be highly + /// influential, set this value to something like 4 or 5. This is because the average of given intensities is normalized by a given point's + /// distance to the interpolated point, raised to this power. When you have a large HeatmapInterpolationInfluence value, each + /// each increase in distance has a much bigger impact (e.g. 3^2 = 9 and 4^2 = 16, but 3^10 = 59,049 and 4^10 = 1,048,576). In + /// the articles I researched, the optimal range is between 2 and 2.5, so this value must always be between 2 and 2.5. + public typealias HeatmapInterpolationInfluence = Double + + /// Indicates the number of times k-means clustering should execute; will be set in the constructor to 25 by default + private var clusterIterations: Int! + + /// Firm bounds on all search queries, as latitude ranges from -90 to 90 and longitude ranges from -180 to 180 + private let minLat = -90 + private let maxLat = 90 + private let minLong = -180 + private let maxLong = 180 + + /// The constructor to this class + /// + /// - Parameter givenClusterIterations: The number of iterations k-means clustering should go to. + public init(givenClusterIterations: Int = 25) { + clusterIterations = givenClusterIterations + } + + // MARK: Functions that parse given data needed to build an interpolated heat map from + + /// Adds a list of GMUWeightedLatLng objects to the input data set + /// + /// - Parameter latlngs: The list of GMUWeightedLatLng objects to add. + public func addWeightedLatLngs(latlngs: [GMUWeightedLatLng]) { + data.append(contentsOf: latlngs) + } + + /// Adds a single GMUWeightedLatLng object to the input data set + /// + /// - Parameter latlngs: The list of GMUWeightedLatLng objects to add. + public func addWeightedLatLng(latlng: GMUWeightedLatLng) { + data.append(latlng) + } + + /// Removes all previously supplied GMUWeightedLatLng objects + public func removeAllData() { + data.removeAll() + } + + /// Throw this error when the given influence value is out of range (i.e. not between 2 and 2.5) + enum IncorrectInfluence: Error { + case outOfRange(String) + } + + // MARK: Functions that directly contribute to the creation of interpolated points + + /// A helper function that calculates the straight-line distance between two coordinates + /// + /// - Parameters: + /// - point1: The point that we want to find the distance from. + /// - point2: The point that we want to find the distance to. + /// - Returns: A double value representing the distance between the given points. + private func distance(point1: CLLocationCoordinate2D, point2: CLLocationCoordinate2D) -> Double { + + // The GMSGeometryDistance function returns the distance between two coordinates in meters; + // according to this source, https://en.wikipedia.org/wiki/Decimal_degrees, conversion from + // meters to lat/long is around 111.32 kilometers per degree. Starting from this conversion, + // I manually checked the distance returned by GMSGeometryDistance and the lat/long distance + // and the normalizingFactor was found accordingly, which is pretty similar to the number + // found in the source. + let normalizingFactor = 111195.0837241998 + return GMSGeometryDistance(point1, point2) / normalizingFactor + } + + /// Finds the average latitude and longitude values; see http://mathforum.org/library/drmath/view/63491.html + /// + /// - Parameter points: The list of points to take the average from. + /// - Returns: A CLLocationCoordinate2D object resembling the average value. + private func findAverage(points: [CLLocationCoordinate2D]) -> CLLocationCoordinate2D { + var totalX: Double = 0 + var totalY: Double = 0 + var totalZ: Double = 0 + for point in points { + totalX += cos(point.latitude * Double.pi / 180) * cos(point.longitude * Double.pi / 180) + totalY += cos(point.latitude * Double.pi / 180) * sin(point.longitude * Double.pi / 180) + totalZ += sin(point.latitude * Double.pi / 180) + } + totalX /= Double(points.count) + totalY /= Double(points.count) + totalZ /= Double(points.count) + let long: Double = atan2(totalY, totalX) + let central: Double = sqrt(totalY * totalY + totalX * totalX) + let lat: Double = atan2(totalZ, central) + return CLLocationCoordinate2D( + latitude: lat * 180 / Double.pi, + longitude: long * 180 / Double.pi + ) + } + + /// A helper function that utilizes the k-cluster algorithm to cluster the input data points together into reasonable sets; the number of + /// clusters is set so that the maximum distance between the center and any point is less than a set constant value. For more + /// details, please visit https://stanford.edu/~cpiech/cs221/handouts/kmeans.html + /// + /// - Returns: A list of clusters, each of which is a list of CLLocationCoordinate2D objects. + private func kcluster() -> [[CLLocationCoordinate2D]] { + + // Centers contain double values representing the center of their respective clusters found + // in the clusters list + var centers = [CLLocationCoordinate2D]() + var clusters = [[CLLocationCoordinate2D]]() + + // Try to make as few clusters as possible; start with 1 and increment as needed + var numClusters = 1 + + if (data.count > 0) { + + // We need to keep on finding clusters until the maximum distance between the center + // and any point in its cluster is under a specific preset value + while true { + + // Set the first numClusters values in data set to be the initial cluster centers + for i in 0...numClusters - 1 { + let normalizedPoint = GMSUnproject( + GMSMapPoint(x: data[i].point().x, y: data[i].point().y) + ) + centers.append(normalizedPoint) + let tempArray = [CLLocationCoordinate2D]() + clusters.append(tempArray) + } + + // 25 iterations of updating the center and recalculating the points in that cluster + // should be adequate, as k-means clustering has diminishing returns as the number + // of iterations increases + for _ in 0...clusterIterations { + + // Reset the clusters so that it can be updated + for i in 0...numClusters - 1 { + clusters[i].removeAll() + } + + // Finds the appropriate cluster for each data point + for point in data { + let normalizedPoint = GMSUnproject( + GMSMapPoint(x: point.point().x, y: point.point().y) + ) + var end = CLLocationCoordinate2D( + latitude: centers[0].latitude, + longitude: centers[0].longitude + ) + var minDistance: Double = distance(point1: normalizedPoint, point2: end) + var index = 0 + for i in 0...centers.count - 1 { + end = CLLocationCoordinate2D( + latitude: centers[i].latitude, + longitude: centers[i].longitude + ) + let tempDistance: Double = distance( + point1: normalizedPoint, + point2: end + ) + if minDistance >= tempDistance { + minDistance = tempDistance + index = i + } + } + clusters[index].append(normalizedPoint) + } + + // Update the center values to reflect new cluster points + centers.removeAll() + for cluster in clusters { + centers.append(findAverage(points: cluster)) + } + } + + // Test if we can stop increasing the number of clusters + var breaker = false + for i in 0...numClusters - 1 { + for coord in clusters[i] { + let start = CLLocationCoordinate2D( + latitude: centers[i].latitude, + longitude: centers[i].longitude + ) + let end = CLLocationCoordinate2D( + latitude: coord.latitude, + longitude: coord.longitude + ) + let radius = distance(point1: start, point2: end) + + // This is a set bound for the radius of each cluster; radius is defined + // here as the distance from a point in the cluster to the cluster center. + // If the radius is over 50 degrees, then the code will refine by creating + // more clusters; this number can be changed if larger or smaller clusters + // are desired. + if (radius > 50) { + breaker = true + break + } + } + if breaker { + break + } + + } + if !breaker { + break + } + clusters.removeAll() + centers.removeAll() + numClusters += 1 + } + } + return clusters + } + + /// A helper function that finds the intensity of a given point, represented by realLat and realLong, based on the input data set; this is + /// calculated via formula here: https://gisgeography.com/inverse-distance-weighting-idw-interpolation/ + /// + /// - Parameters: + /// - lat: The latitude value of the point. + /// - long: The longitude value of the point. + /// - influence: The n-value, determining the range of influence the intensities found in the given data set has. + /// - Returns: A list containing just the numerator and denominator + private func findIntensity( + lat: Double, + long: Double, + influence: HeatmapInterpolationInfluence + ) -> Fraction { + var numerator: Double = 0 + var denominator: Double = 0 + for point in data { + let start = CLLocationCoordinate2D(latitude: lat, longitude: long) + let normalizedPoint = GMSUnproject(GMSMapPoint(x: point.point().x, y: point.point().y)) + let dist = distance(point1: start, point2: normalizedPoint) + let distanceWeight = pow(dist, influence) + + if distanceWeight == 0 { + continue + } + numerator += (Double(point.intensity) / distanceWeight) + denominator += (1 / distanceWeight) + } + return Fraction(num: numerator, denom: denominator) + } + + /// A helper function that finds the minimum and maximum longitude and latitude values that still contains a powerful enough + /// intensity that it should be included in the data set + /// + /// - Parameters: + /// - input: A list of points that are in a cluster. + /// - granularity: The granularity of the search, influencing many points between 1 degree we should visit. + /// - Returns: A list of four integers representing the minimum and maximum longitude and latitude values + private func findBounds( + input: [CLLocationCoordinate2D], + granularity: Double + ) -> [Int] { + + // Initialize the boundary values to something that must be updated immediately + // 0: min lat, 1: min long, 2: max lat, 3: max long + var ans = [0x7fffffff, 0x7fffffff, -0x7fffffff, -0x7fffffff] + for coord in input { + ans[0] = min(ans[0], Int(coord.latitude * (1 / granularity))) + ans[1] = min(ans[1], Int(coord.longitude * (1 / granularity))) + ans[2] = max(ans[2], Int(coord.latitude * (1 / granularity))) + ans[3] = max(ans[3], Int(coord.longitude * (1 / granularity))) + } + return ans + } + + /// Generates several heat maps based on the clusters with points not found in the data set interpolated by the inverse distance + /// means interpolation algorithm and displays the heat maps on the given map; for more details, please visit + /// https://en.wikipedia.org/wiki/Inverse_distance_weighting. I used the basic form. + /// For this feature, It doesn't make too much sense to do interpolation on an n-value of less than 2 or greater than 2.5; when n is + /// higher, the denominator increases quicker, meaning the overall value falls quicker as the distances increase, implying that a low + /// n value will query far too many points. + /// + /// - Parameters: + /// - n: The n-value, determining the range of influence the intensities found in the given data set has (see + /// HeatmapInterpolationInfluence comment for more details). + /// - granularity: How coarse the search range is WRT to lat/long and must be larger than 0 but smaller than 1 (as + /// granularity approaches 0, the runtime will increase and as granularity approaches 1, the heat map becomes quite sparse); a + /// value of 0.1 is a good sweet spot. + public func generatePoints( + influence: HeatmapInterpolationInfluence, + granularity: Double = 0.1 + ) throws -> [GMUWeightedLatLng] { + + // As documented above, we will throw an exception here if the n value is not in the + // appropriate range + if influence < 2.0 || influence > 2.5 { + throw IncorrectInfluence.outOfRange("Your influence value is not between 2 and 2.5") + } + heatMapPoints.removeAll() + + // Clusters is the list of clusters that we intend to return + let clusters = kcluster() + + for cluster in clusters { + let bounds = findBounds(input: cluster, granularity: granularity) + + // A small n-value implies a large range of points that could be potentially be + // affected, so it makes sense to increase the stride to improve runtime and the range + // to improve the quality of the heat map + let step = 3 + + // These two values bound the search range of the heat map; any larger range provides + // marginal improvements, if any, in the resulting heat map, as found via trial and + // error and testing with various data sets + let latRange = Int(15 / granularity) + let longRange = Int(20 / granularity) + + // Search all the points between the bounds of the cluster; the offset indicates how + // far beyond the bounds we want to query + for i in stride(from: bounds[0] - latRange, to: bounds[2] + latRange, by: step) { + + // Since latitude ranges from -90 to 90 and the granularity is 0.1, we can move from + // -900 to 900 + if Double(i) * granularity > Double(maxLat) + || Double(i) * granularity < Double(minLat) { + break + } + + for j in stride(from: bounds[1] - longRange, to: bounds[3] + longRange, by: step) { + + // Since longitude ranges from -180 to 180 and the granularity is 0.1, we can + // move from -1800 to 1800 + if Double(j) * granularity > Double(maxLong) + || Double(j) * granularity < Double(minLong) { + break + } + + // The variable, intensity, contains the numerator and denominator + let intensity = findIntensity( + lat: Double(i) * granularity, + long: Double(j) * granularity, + influence: influence + ) + // If the numerator value is too small, that point is worthless as it is too + // far away or too weak; if the denominator is 0, we get a divide by 0 error + if intensity.denominator == 0 || intensity.numerator < 3 { + continue + } + + // Set the intensity based on IDW + let coords = GMUWeightedLatLng( + coordinate: CLLocationCoordinate2DMake( + Double(i) * granularity, + Double(j) * granularity + ), + intensity: Float(intensity.numerator / intensity.denominator) + ) + heatMapPoints.append(coords) + } + } + } + return heatMapPoints + } +} diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTBounds.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTBounds.h new file mode 100644 index 00000000..e7fb9a48 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTBounds.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTPoint.h" + +typedef struct { + double minX; + double minY; + double maxX; + double maxY; +} GQTBounds; diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPoint.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPoint.h new file mode 100644 index 00000000..b78902da --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPoint.h @@ -0,0 +1,19 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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. + */ + +typedef struct { + double x; + double y; +} GQTPoint; diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.h new file mode 100644 index 00000000..797da601 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.h @@ -0,0 +1,73 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTBounds.h" +#import "GQTPointQuadTreeItem.h" + +@interface GQTPointQuadTree : NSObject + +/** + * Create a QuadTree with bounds. Please note, this class is not thread safe. + * + * @param bounds The bounds of this PointQuadTree. The tree will only accept items that fall + within the bounds. The bounds are inclusive. + */ +- (id)initWithBounds:(GQTBounds)bounds; + +/** + * Create a QuadTree with the inclusive bounds of (-1,-1) to (1,1). + */ +- (id)init; + +/** + * Insert an item into this PointQuadTree. + * + * @param item The item to insert. Must not be nil. + * @return |NO| if the item is not contained within the bounds of this tree. + * Otherwise adds the item and returns |YES|. + */ +- (BOOL)add:(id)item; + +/** + * Delete an item from this PointQuadTree. + * + * @param item The item to delete. + * @return |NO| if the items was not found in the tree, |YES| otherwise. + */ +- (BOOL)remove:(id)item; + +/** + * Delete all items from this PointQuadTree. + */ +- (void)clear; + +/** + * Retreive all items in this PointQuadTree within a bounding box. + * + * @param bounds The bounds of the search box. + * @return The collection of items within |bounds|, returned as an NSArray + * of id. + */ +- (NSArray *)searchWithBounds:(GQTBounds)bounds; + +/** + * The number of items in this entire tree. + * + * @return The number of items. + */ +- (NSUInteger)count; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.m new file mode 100644 index 00000000..3c72b37c --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTree.m @@ -0,0 +1,115 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTPointQuadTree.h" +#import "GQTPointQuadTreeChild.h" + +@implementation GQTPointQuadTree { + /** + * The bounds of this PointQuadTree. + */ + GQTBounds bounds_; + + /** + * The Quad Tree data structure. + */ + GQTPointQuadTreeChild *root_; + + /** + * The number of items in this tree. + */ + NSUInteger count_; +} + +- (id)initWithBounds:(GQTBounds)bounds { + if (self = [super init]) { + bounds_ = bounds; + [self clear]; + } + return self; +} + +- (id)init { + return [self initWithBounds:(GQTBounds){-1, -1, 1, 1}]; +} + +- (BOOL)add:(id)item { + if (item == nil) { + // Item must not be nil. + return NO; + } + + GQTPoint point = item.point; + if (point.x > bounds_.maxX || point.x < bounds_.minX || point.y > bounds_.maxY || + point.y < bounds_.minY) { + return NO; + } + + [root_ add:item withOwnBounds:bounds_ atDepth:0]; + + ++count_; + + return YES; +} + +/** + * Delete an item from this PointQuadTree + * + * @param item The item to delete. + */ +- (BOOL)remove:(id)item { + GQTPoint point = item.point; + if (point.x > bounds_.maxX || point.x < bounds_.minX || point.y > bounds_.maxY || + point.y < bounds_.minY) { + return NO; + } + + BOOL removed = [root_ remove:item withOwnBounds:bounds_]; + + if (removed) { + --count_; + } + + return removed; +} + +/** + * Delete all items from this PointQuadTree + */ +- (void)clear { + root_ = [[GQTPointQuadTreeChild alloc] init]; + count_ = 0; +} + +/** + * Retreive all items in this PointQuadTree within a bounding box. + * + * @param searchBounds The bounds of the search box. + */ +- (NSArray *)searchWithBounds:(GQTBounds)searchBounds { + NSMutableArray *results = [NSMutableArray array]; + [root_ searchWithBounds:searchBounds withOwnBounds:bounds_ results:results]; + return results; +} + +- (NSUInteger)count { + return count_; +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.h new file mode 100644 index 00000000..ed723cc0 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTBounds.h" +#import "GQTPointQuadTreeItem.h" + +/** + * This is an internal class, use |GQTPointQuadTree| instead. + * Please note, this class is not thread safe. + * + * This class represents an internal node of a |GQTPointQuadTree|. + */ + +@interface GQTPointQuadTreeChild : NSObject + +/** + * Insert an item into this PointQuadTreeChild + * + * @param item The item to insert. Must not be nil. + * @param bounds The bounds of this node. + * @param depth The depth of this node. + */ +- (void)add:(id)item + withOwnBounds:(GQTBounds)bounds + atDepth:(NSUInteger)depth; + +/** + * Delete an item from this PointQuadTree. + * + * @param item The item to delete. + * @param bounds The bounds of this node. + * @return |NO| if the items was not found in the tree, |YES| otherwise. + */ +- (BOOL)remove:(id)item withOwnBounds:(GQTBounds)bounds; + +/** + * Retreive all items in this PointQuadTree within a bounding box. + * + * @param searchBounds The bounds of the search box. + * @param ownBounds The bounds of this node. + * @param accumulator The results of the search. + */ +- (void)searchWithBounds:(GQTBounds)searchBounds + withOwnBounds:(GQTBounds)ownBounds + results:(NSMutableArray *)accumulator; + +/** + * Split the contents of this Quad over four child quads. + * @param ownBounds The bounds of this node. + * @param depth The depth of this node. + */ +- (void)splitWithOwnBounds:(GQTBounds)ownBounds atDepth:(NSUInteger)depth; + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.m b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.m new file mode 100644 index 00000000..0a351059 --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeChild.m @@ -0,0 +1,222 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTPointQuadTreeChild.h" + +static const unsigned kMaxElements = 64; +static const unsigned kMaxDepth = 30; + +#include "GQTBounds.h" + +static GQTPoint boundsMidpoint(GQTBounds bounds) { + return (GQTPoint){(bounds.minX + bounds.maxX) / 2, (bounds.minY + bounds.maxY) / 2}; +} + +static GQTBounds boundsTopRightChildQuadBounds(GQTBounds parentBounds) { + GQTPoint midPoint = boundsMidpoint(parentBounds); + double minX = midPoint.x; + double minY = midPoint.y; + double maxX = parentBounds.maxX; + double maxY = parentBounds.maxY; + return (GQTBounds){minX, minY, maxX, maxY}; +} + +static GQTBounds boundsTopLeftChildQuadBounds(GQTBounds parentBounds) { + GQTPoint midPoint = boundsMidpoint(parentBounds); + double minX = parentBounds.minX; + double minY = midPoint.y; + double maxX = midPoint.x; + double maxY = parentBounds.maxY; + return (GQTBounds){minX, minY, maxX, maxY}; +} + +static GQTBounds boundsBottomRightChildQuadBounds(GQTBounds parentBounds) { + GQTPoint midPoint = boundsMidpoint(parentBounds); + double minX = midPoint.x; + double minY = parentBounds.minY; + double maxX = parentBounds.maxX; + double maxY = midPoint.y; + return (GQTBounds){minX, minY, maxX, maxY}; +} + +static GQTBounds boundsBottomLeftChildQuadBounds(GQTBounds parentBounds) { + GQTPoint midPoint = boundsMidpoint(parentBounds); + double minX = parentBounds.minX; + double minY = parentBounds.minY; + double maxX = midPoint.x; + double maxY = midPoint.y; + return (GQTBounds){minX, minY, maxX, maxY}; +} + +static BOOL boundsIntersectsBounds(GQTBounds bounds1, GQTBounds bounds2) { + return (!(bounds1.maxY < bounds2.minY || bounds2.maxY < bounds1.minY) && + !(bounds1.maxX < bounds2.minX || bounds2.maxX < bounds1.minX)); +} + +@implementation GQTPointQuadTreeChild { + /** Top Right child quad. Nil until this node is split. */ + GQTPointQuadTreeChild *topRight_; + + /** Top Left child quad. Nil until this node is split. */ + GQTPointQuadTreeChild *topLeft_; + + /** Bottom Right child quad. Nil until this node is split. */ + GQTPointQuadTreeChild *bottomRight_; + + /** Bottom Left child quad. Nil until this node is split. */ + GQTPointQuadTreeChild *bottomLeft_; + + /** + * Items in this PointQuadTree node, if this node has yet to be split. If we have items, children + * will be nil, likewise, if we have children then items_ will be nil. + */ + NSMutableArray *items_; +} + +- (id)init { + if (self = [super init]) { + topRight_ = nil; + topLeft_ = nil; + bottomRight_ = nil; + bottomLeft_ = nil; + items_ = [NSMutableArray array]; + } + return self; +} + +- (void)add:(id)item + withOwnBounds:(GQTBounds)bounds + atDepth:(NSUInteger)depth { + if (item == nil) { + // Note, this should not happen, as GQTPointQuadTree's add method also does a nil check. + [NSException raise:@"Invalid item argument" format:@"item must not be null"]; + } + + if (items_.count >= kMaxElements && depth < kMaxDepth) { + [self splitWithOwnBounds:bounds atDepth:depth]; + } + + if (topRight_ != nil) { + GQTPoint itemPoint = item.point; + GQTPoint midPoint = boundsMidpoint(bounds); + + if (itemPoint.y > midPoint.y) { + if (itemPoint.x > midPoint.x) { + [topRight_ add:item withOwnBounds:boundsTopRightChildQuadBounds(bounds) atDepth:depth + 1]; + } else { + [topLeft_ add:item withOwnBounds:boundsTopLeftChildQuadBounds(bounds) atDepth:depth + 1]; + } + } else { + if (itemPoint.x > midPoint.x) { + [bottomRight_ add:item + withOwnBounds:boundsBottomRightChildQuadBounds(bounds) + atDepth:depth + 1]; + } else { + [bottomLeft_ add:item + withOwnBounds:boundsBottomLeftChildQuadBounds(bounds) + atDepth:depth + 1]; + } + } + } else { + [items_ addObject:item]; + } +} + +- (void)splitWithOwnBounds:(GQTBounds)ownBounds atDepth:(NSUInteger)depth { + assert(items_ != nil); + + topRight_ = [[GQTPointQuadTreeChild alloc] init]; + topLeft_ = [[GQTPointQuadTreeChild alloc] init]; + bottomRight_ = [[GQTPointQuadTreeChild alloc] init]; + bottomLeft_ = [[GQTPointQuadTreeChild alloc] init]; + + NSArray *items = items_; + items_ = nil; + + for (id item in items) { + [self add:item withOwnBounds:ownBounds atDepth:depth]; + } +} + +- (BOOL)remove:(id)item withOwnBounds:(GQTBounds)bounds { + if (topRight_ != nil) { + GQTPoint itemPoint = item.point; + GQTPoint midPoint = boundsMidpoint(bounds); + + if (itemPoint.y > midPoint.y) { + if (itemPoint.x > midPoint.x) { + return [topRight_ remove:item withOwnBounds:boundsTopRightChildQuadBounds(bounds)]; + } else { + return [topLeft_ remove:item withOwnBounds:boundsTopLeftChildQuadBounds(bounds)]; + } + } else { + if (itemPoint.x > midPoint.x) { + return [bottomRight_ remove:item withOwnBounds:boundsBottomRightChildQuadBounds(bounds)]; + } else { + return [bottomLeft_ remove:item withOwnBounds:boundsBottomLeftChildQuadBounds(bounds)]; + } + } + } + + NSUInteger index = [items_ indexOfObject:item]; + if (index != NSNotFound) { + [items_ removeObjectAtIndex:index]; + return YES; + } else { + return NO; + } +} + +- (void)searchWithBounds:(GQTBounds)searchBounds + withOwnBounds:(GQTBounds)ownBounds + results:(NSMutableArray *)accumulator { + if (topRight_ != nil) { + GQTBounds topRightBounds = boundsTopRightChildQuadBounds(ownBounds); + GQTBounds topLeftBounds = boundsTopLeftChildQuadBounds(ownBounds); + GQTBounds bottomRightBounds = boundsBottomRightChildQuadBounds(ownBounds); + GQTBounds bottomLeftBounds = boundsBottomLeftChildQuadBounds(ownBounds); + + if (boundsIntersectsBounds(topRightBounds, searchBounds)) { + [topRight_ searchWithBounds:searchBounds withOwnBounds:topRightBounds results:accumulator]; + } + if (boundsIntersectsBounds(topLeftBounds, searchBounds)) { + [topLeft_ searchWithBounds:searchBounds withOwnBounds:topLeftBounds results:accumulator]; + } + if (boundsIntersectsBounds(bottomRightBounds, searchBounds)) { + [bottomRight_ searchWithBounds:searchBounds + withOwnBounds:bottomRightBounds + results:accumulator]; + } + if (boundsIntersectsBounds(bottomLeftBounds, searchBounds)) { + [bottomLeft_ searchWithBounds:searchBounds + withOwnBounds:bottomLeftBounds + results:accumulator]; + } + } else { + for (id item in items_) { + GQTPoint point = item.point; + if (point.x <= searchBounds.maxX && point.x >= searchBounds.minX && + point.y <= searchBounds.maxY && point.y >= searchBounds.minY) { + [accumulator addObject:item]; + } + } + } +} + +@end diff --git a/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeItem.h b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeItem.h new file mode 100644 index 00000000..e8ee760f --- /dev/null +++ b/ios/App/Pods/Google-Maps-iOS-Utils/src/QuadTree/GQTPointQuadTreeItem.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2016 Google Inc. + * + * 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 "GQTPoint.h" + +@protocol GQTPointQuadTreeItem + +- (GQTPoint)point; + +@end diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/Info.plist b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/Info.plist new file mode 100644 index 00000000..1f962346 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/Info.plist @@ -0,0 +1,40 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64 + LibraryPath + GoogleMapsBase.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + GoogleMapsBase.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/GoogleMapsBase b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/GoogleMapsBase new file mode 100644 index 00000000..9f4216c8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/GoogleMapsBase differ diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h new file mode 100755 index 00000000..ddad2844 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h @@ -0,0 +1,27 @@ +// +// GMSCompatabilityMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * A Swift 2/3 version conditional variant of NS_SWIFT_NAME. This is used in + * places where NS_SWIFT_NAME is needed but the Swift-transcribed name of the + * Objective-C name is conditional on the Swift version being compiled. This + * macro determines which version of Swift this code is being imported from by + * looking for the presence of the SWIFT_SDK_OVERLAY_UIKIT_EPOCH macro which is + * only defined in Swift 3+. + */ +#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/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h new file mode 100755 index 00000000..47c7b36e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h @@ -0,0 +1,75 @@ +// +// GMSCoordinateBounds.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h new file mode 100755 index 00000000..398627d1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h @@ -0,0 +1,24 @@ +// +// GMSDeprecationMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#ifndef IPHONE_MAPS_SDK_BASE_API_GMSDEPRECATIONMACROS_H_ +#define IPHONE_MAPS_SDK_BASE_API_GMSDEPRECATIONMACROS_H_ + +/** Inside Google, this is defined in sdk.bzl. */ +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED +#define __GMS_AVAILABLE_BUT_DEPRECATED __deprecated +#endif + +/** Inside Google, this is defined in sdk.bzl. */ +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED_MSG +#define __GMS_AVAILABLE_BUT_DEPRECATED_MSG(msg) __deprecated_msg(msg) +#endif + +#endif diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GoogleMapsBase.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GoogleMapsBase.h new file mode 100644 index 00000000..95ec44c0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Headers/GoogleMapsBase.h @@ -0,0 +1,3 @@ +#import "GMSCompatabilityMacros.h" +#import "GMSCoordinateBounds.h" +#import "GMSDeprecationMacros.h" diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Modules/module.modulemap new file mode 100644 index 00000000..ad1d2fba --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64/GoogleMapsBase.framework/Modules/module.modulemap @@ -0,0 +1,15 @@ +framework module GoogleMapsBase { + umbrella header "GoogleMapsBase.h" + export * + module * { export * } + link "z" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "QuartzCore" + link framework "Security" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/GoogleMapsBase b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/GoogleMapsBase new file mode 100644 index 00000000..25a738e9 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/GoogleMapsBase differ diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h new file mode 100755 index 00000000..ddad2844 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCompatabilityMacros.h @@ -0,0 +1,27 @@ +// +// GMSCompatabilityMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * A Swift 2/3 version conditional variant of NS_SWIFT_NAME. This is used in + * places where NS_SWIFT_NAME is needed but the Swift-transcribed name of the + * Objective-C name is conditional on the Swift version being compiled. This + * macro determines which version of Swift this code is being imported from by + * looking for the presence of the SWIFT_SDK_OVERLAY_UIKIT_EPOCH macro which is + * only defined in Swift 3+. + */ +#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/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h new file mode 100755 index 00000000..47c7b36e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSCoordinateBounds.h @@ -0,0 +1,75 @@ +// +// GMSCoordinateBounds.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h new file mode 100755 index 00000000..398627d1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GMSDeprecationMacros.h @@ -0,0 +1,24 @@ +// +// GMSDeprecationMacros.h +// Google Maps SDK for iOS +// +// Copyright 2015 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#ifndef IPHONE_MAPS_SDK_BASE_API_GMSDEPRECATIONMACROS_H_ +#define IPHONE_MAPS_SDK_BASE_API_GMSDEPRECATIONMACROS_H_ + +/** Inside Google, this is defined in sdk.bzl. */ +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED +#define __GMS_AVAILABLE_BUT_DEPRECATED __deprecated +#endif + +/** Inside Google, this is defined in sdk.bzl. */ +#ifndef __GMS_AVAILABLE_BUT_DEPRECATED_MSG +#define __GMS_AVAILABLE_BUT_DEPRECATED_MSG(msg) __deprecated_msg(msg) +#endif + +#endif diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GoogleMapsBase.h b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GoogleMapsBase.h new file mode 100644 index 00000000..95ec44c0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Headers/GoogleMapsBase.h @@ -0,0 +1,3 @@ +#import "GMSCompatabilityMacros.h" +#import "GMSCoordinateBounds.h" +#import "GMSDeprecationMacros.h" diff --git a/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Modules/module.modulemap new file mode 100644 index 00000000..ad1d2fba --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator/GoogleMapsBase.framework/Modules/module.modulemap @@ -0,0 +1,15 @@ +framework module GoogleMapsBase { + umbrella header "GoogleMapsBase.h" + export * + module * { export * } + link "z" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "QuartzCore" + link framework "Security" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/CHANGELOG.md b/ios/App/Pods/GoogleMaps/CHANGELOG.md new file mode 100755 index 00000000..45a3b9f2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/CHANGELOG.md @@ -0,0 +1,2 @@ +Please go to https://developers.google.com/maps/documentation/ios-sdk/releases +to view the Maps iOS release notes. diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj new file mode 100755 index 00000000..dec0bedf --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos.xcodeproj/project.pbxproj @@ -0,0 +1,661 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0B6400E7F31AE43CABFE27A8 /* DoubleMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DFCC9D1D1F70D492149D65 /* DoubleMapViewController.m */; }; + 0EEC555F800FEE8497BCF084 /* arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66DE8D273E896D7FF5B86DC9 /* arrow@2x.png */; }; + 132C53B3FD3703D3BBF50E62 /* step2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F955F74654756E7F7DBD9C1 /* step2@2x.png */; }; + 138233AB6895BE7AA2387050 /* spitfire@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15768E1EE7E314DF1B0A395 /* spitfire@2x.png */; }; + 13970FC2D7013CA5C00E5AAE /* step3.png in Resources */ = {isa = PBXBuildFile; fileRef = 6533FA4161283F8F6A5F2CC3 /* step3.png */; }; + 17C0BD6F820FEECF2CE7E1C7 /* step8.png in Resources */ = {isa = PBXBuildFile; fileRef = B7B684AAFC3CA2232721C6D0 /* step8.png */; }; + 1B3176D3A4C8E9B9CB2C2847 /* StampedPolylinesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A3171A5C5E5441DDA8BE9E40 /* StampedPolylinesViewController.m */; }; + 1B47A3534FDA95B9195AF9CF /* PolygonsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ED9C84A592EB6464725BB9C /* PolygonsViewController.m */; }; + 1BE7A8A4782B8A1826594BD3 /* mapstyle-silver.json in Resources */ = {isa = PBXBuildFile; fileRef = B4C89E62C05816B590F45D57 /* mapstyle-silver.json */; }; + 1CEF3F4702DB008F654D8E7A /* aeroplane@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3F716156C215C436D55F5696 /* aeroplane@2x.png */; }; + 1E4688E75E502DB5FF5FFFFF /* FrameRateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DB963F858613E50A64CFAE6 /* FrameRateViewController.m */; }; + 220C39F471CD6096CEFD2DBD /* MyLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0878372A9A7274B74BCBE0 /* MyLocationViewController.m */; }; + 2329D94E802AF61BCF5980CF /* GeocoderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A77C64C5A8B8109E6AFC41F /* GeocoderViewController.m */; }; + 281CB228E4BBB37DB2158754 /* MarkerEventsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9450C49DDD49AF9182779EB /* MarkerEventsViewController.m */; }; + 29851A2D3061D70713AC839C /* UIViewController+GMSToastMessages.m in Sources */ = {isa = PBXBuildFile; fileRef = 141DC0E7977DE53BB4C0ACE6 /* UIViewController+GMSToastMessages.m */; }; + 31291E8440EE6B0EA8727463 /* popup_santa.png in Resources */ = {isa = PBXBuildFile; fileRef = EF01EFEF0FC77447C02FE86C /* popup_santa.png */; }; + 32CC144A6B022DB1926852B5 /* aeroplane.png in Resources */ = {isa = PBXBuildFile; fileRef = 937B2FC602E80ADC11CF364F /* aeroplane.png */; }; + 3456EEAA20A663D3B60BF0EF /* MarkerInfoWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89DFB3350D98DA617A2ECE85 /* MarkerInfoWindowViewController.m */; }; + 34794834CD5C7B6CAC3167CD /* CustomIndoorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5563ED82E4E77A76707DAF12 /* CustomIndoorViewController.m */; }; + 3B647C56A107E00BC4815B1D /* australia.png in Resources */ = {isa = PBXBuildFile; fileRef = 304A2B780A4A9B2D32261355 /* australia.png */; }; + 3DCB19D95A2A16E3CA3C212B /* museum-exhibits.json in Resources */ = {isa = PBXBuildFile; fileRef = 346BE94E21267BA7E00E1B94 /* museum-exhibits.json */; }; + 4197B152B2E4390B2BBBE582 /* SampleListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D1C3943A9C5721FCF5F4D901 /* SampleListViewController.m */; }; + 41C136BCC76621603A3D6C41 /* spitfire.png in Resources */ = {isa = PBXBuildFile; fileRef = 91BCD28A8D5451665C5B3FDE /* spitfire.png */; }; + 456E667D0D25E81DFAFEADBD /* AnimatedCurrentLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C37F2216D5D94A3F8B698AF2 /* AnimatedCurrentLocationViewController.m */; }; + 500FA4390A29E0ADB39E21FB /* step5.png in Resources */ = {isa = PBXBuildFile; fileRef = B1763EA929EC73C50D294134 /* step5.png */; }; + 501E837B49B7D885F3EBE16F /* BasicMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC5AD93CD72DE8F5B004A621 /* BasicMapViewController.m */; }; + 52E9330C842BD359492ACEA5 /* PolylinesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FA4145303F340FC3675AABA5 /* PolylinesViewController.m */; }; + 5653C21AEB869C92653B83A4 /* step7.png in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B37F0669CF34418A263F9 /* step7.png */; }; + 57F58315D4A973991A3DBAD5 /* bulgaria.png in Resources */ = {isa = PBXBuildFile; fileRef = 2BC67BDB51522BC85EBFED8E /* bulgaria.png */; }; + 59D9F1FE2A4075B9712E7CB2 /* MapsDemoAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B53B4C2097A6AD4A98746495 /* MapsDemoAssets.xcassets */; }; + 6AD348D342E913F10F6ECCA0 /* StyledMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3408578DDDF6D8B183D9B91E /* StyledMapViewController.m */; }; + 6C6DF0AAB9B807C20C81DE55 /* bulgaria-large.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6BF21C0287E5828A770C09 /* bulgaria-large.png */; }; + 742226EE8345C56F9CEA4F91 /* mapstyle-retro.json in Resources */ = {isa = PBXBuildFile; fileRef = 118A0FE8CA1D110B3C694A8D /* mapstyle-retro.json */; }; + 787F22327F1D4EC202A9EAE5 /* newark_nj_1922.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 2B0884C720D5AE0BDCC1903D /* newark_nj_1922.jpg */; }; + 796FBC17DC9D867374704425 /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 6614BE28012C7A7508437047 /* arrow.png */; }; + 79AF7A74C389B8C21C24C3B3 /* argentina-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 4D8E4A10394122CD9C9CD157 /* argentina-large.png */; }; + 79CD6A3123D613E24B9E5983 /* x29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD1DD5592D028FDD5E527FDF /* x29@2x.png */; }; + 7CCC94E11616DA5545E72B3E /* AnimatedUIViewMarkerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EB950AA302B77F16CF18088 /* AnimatedUIViewMarkerViewController.m */; }; + 7EB0308A1EF8F6ADBD6DEF79 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F4C119D42CF37317FA0DFA9 /* UIKit.framework */; }; + 7EEF5B03C2175CD1DB86E5DC /* boat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E00AE555F58259DD31C383 /* boat@2x.png */; }; + 80B2E0765CDEFB62C191FCE7 /* DemoSceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D40C920E07F055501B87FF4B /* DemoSceneDelegate.m */; }; + 81ECE58D29B8027F342FF401 /* voyager.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B3B4C44092471CA56ACFD4C /* voyager.png */; }; + 8341C52DCC4E08F94F330D32 /* MapZoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B3D673FA7036FA5D07CB287 /* MapZoomViewController.m */; }; + 84A8BFF7EC2AFE5239DB222E /* step3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A3AE3B168663EA43D3F2F259 /* step3@2x.png */; }; + 851C3F39F91242ABBBBACB3F /* track.json in Resources */ = {isa = PBXBuildFile; fileRef = AD6B1AF49A87CC079E9CA862 /* track.json */; }; + 89C85AA304C7FDE1A446A292 /* glow-marker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 430314741C873551A75A6748 /* glow-marker@2x.png */; }; + 8B63BA635C061A8717C43123 /* mapstyle-night.json in Resources */ = {isa = PBXBuildFile; fileRef = FFEED4DDB04F69C84A1924F1 /* mapstyle-night.json */; }; + 8E09643452E1A4859A13F4F1 /* MarkersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D4CFDA7D44E2CF33EB10072B /* MarkersViewController.m */; }; + 923880C43B9DEE1EFD7D230F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 21267D205F7EC280F26D97ED /* main.m */; }; + 92679F9EBB1FEF1EE105E353 /* TrafficMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 611E9F57BD5274878732C0BE /* TrafficMapViewController.m */; }; + 9A48AFB4E51FCDD215B5044C /* x29.png in Resources */ = {isa = PBXBuildFile; fileRef = 77E4A5AC4E17EB252D617792 /* x29.png */; }; + 9D688B947F1C938893B92EDD /* MapLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E7BBD64FA078FC4259FCBD2 /* MapLayerViewController.m */; }; + A330C5C1305B6AFDE8549C54 /* botswana-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 440513A7769094565EA82DD2 /* botswana-large.png */; }; + A4A326C09602C12DE4851136 /* step1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C6A156792608F06437E5931 /* step1@2x.png */; }; + A7729B5E46B7F73B703649AE /* h1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 16C4B08486C9905568685983 /* h1@2x.png */; }; + A9CDA3862243CE449C79CE39 /* PanoramaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9ECA1CA359738BB8B17657F /* PanoramaViewController.m */; }; + AB52000C1C24D163BE4A67B3 /* step4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 60944672BB9D460BE315ECB8 /* step4@2x.png */; }; + ABE214D988BB427F2881A8BC /* step2.png in Resources */ = {isa = PBXBuildFile; fileRef = BB85B60A794D982F001E5D1D /* step2.png */; }; + ACEDBFBF671E55BE4E10F7E6 /* Samples.m in Sources */ = {isa = PBXBuildFile; fileRef = 115963CCE082409262D179F3 /* Samples.m */; }; + AD515D1D593A2141499A01BE /* MapTypesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F371BFD608DCF4DA1671DB03 /* MapTypesViewController.m */; }; + B017677EAFEB65C012D48EB6 /* GestureControlViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71CE23C2A26FD3C29E6AEEA7 /* GestureControlViewController.m */; }; + B04B69D9F2DB76AC803A637A /* voyager@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C56541EDCEFDB922783385B5 /* voyager@2x.png */; }; + B10925DA2A2A723A398910C4 /* step6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C0E7585025B57F969D8C3CCD /* step6@2x.png */; }; + B2B799F6704A2FEFE0D9C9A6 /* CameraViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A36E26A0818D4F0DF21051 /* CameraViewController.m */; }; + B2F17E89F79ECFAB73A3199A /* DemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C7AD415580B4A6B35532456A /* DemoAppDelegate.m */; }; + B5A196301B3B0A4DC81243F2 /* h1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B05E27C8BB92E89D2DC78AC /* h1.png */; }; + BBA68BA0DD2166869D252187 /* glow-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = 57D0C4A29B66857C926387F0 /* glow-marker.png */; }; + BCAC1722DD65725FF71AA311 /* MarkerLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C3E84ED0331DFB2A7082CA36 /* MarkerLayerViewController.m */; }; + C369F8AAC5E93F4F5B00101A /* GroundOverlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8038AEC0AF9CBD2EBB975F54 /* GroundOverlayViewController.m */; }; + C4D64EB836EDD354E4B2018F /* IndoorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DA013030BC14C994AEA2428 /* IndoorViewController.m */; }; + CA5A224929A41D039C8E6F09 /* botswana.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C186E84CB691DD6239C5E57 /* botswana.png */; }; + CC839BBBD61B9C68F486F311 /* PaddingBehaviorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3679BC5053A9702AE4FC85B3 /* PaddingBehaviorViewController.m */; }; + CD26C5EC9D66CFD72C86EAC2 /* step6.png in Resources */ = {isa = PBXBuildFile; fileRef = F64D45825D2647898331A1FF /* step6.png */; }; + D433812D70CBD35A158CD8D5 /* step5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AB708C911CD9B99ADBB07D08 /* step5@2x.png */; }; + D50D986C76882A5D0DA41F35 /* boat.png in Resources */ = {isa = PBXBuildFile; fileRef = 2B049CFC81E59949D0184B8B /* boat.png */; }; + D79140F5C9786132C652F82B /* FitBoundsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 721936633CF79A85B5EF0E92 /* FitBoundsViewController.m */; }; + DE1AA3D31A2214448C20F8B9 /* CustomMarkersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DC77B503E93E88F6E254A170 /* CustomMarkersViewController.m */; }; + E15028A581780CEF233A75DC /* step1.png in Resources */ = {isa = PBXBuildFile; fileRef = D66EF243066A58A0D10280D4 /* step1.png */; }; + E1C8C766EEF5F4658A00AA2D /* SnapshotReadyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15E621C7788D69B720052601 /* SnapshotReadyViewController.m */; }; + E2E45E7204B5F6D67AEF3D05 /* australia-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 9F4CB893BCACB294FBCEC850 /* australia-large.png */; }; + E3EC2EE7839A2643991FBD84 /* VisibleRegionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A0518A8C9E543FFBA7F8305E /* VisibleRegionViewController.m */; }; + E4606BC764074DC9EE1A5E4E /* step7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E3C8118FBF6DF1D4996693 /* step7@2x.png */; }; + E569618FA3968C8E0D38DB22 /* australia-large@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A1D521E4FF1F8F85E084ED60 /* australia-large@2x.png */; }; + E6CFCE211B63AC011C822218 /* GradientPolylinesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B4378F4DBE15BB0E32690CE /* GradientPolylinesViewController.m */; }; + E77BADB514BB35DC002C5875 /* step8@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E5AF68BBC86BA530755A20 /* step8@2x.png */; }; + EA2A60FD3CC92A4054D4E706 /* TileLayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CEA86A42848E5BAA7B523FB /* TileLayerViewController.m */; }; + ED4617FD4C66219840E42297 /* popup_santa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E2E2B19EF6846F007A7A909 /* popup_santa@2x.png */; }; + EFFB937E7FB26F7BA147DD18 /* argentina.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B80BDCF78F436799462F76 /* argentina.png */; }; + F3031AA62E3127D164A980F5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DBB8C9AD891A00824AE32343 /* LaunchScreen.storyboard */; }; + F489F581F708F97B4896711C /* StructuredGeocoderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AAFE928C9FDAA1B5703AE31 /* StructuredGeocoderViewController.m */; }; + F6AD7FEFAF0440DF650DEEBE /* step4.png in Resources */ = {isa = PBXBuildFile; fileRef = 99C6A64731FB5249BA53255D /* step4.png */; }; + FC1036CCE836DC9AA06A213E /* IndoorMuseumNavigationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1318E0A2BA2A41F2E8759CFE /* IndoorMuseumNavigationViewController.m */; }; + FC3BB569234A28CAAC9F8F79 /* FixedPanoramaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C762E469D796AFF83D3516EF /* FixedPanoramaViewController.m */; }; +/* 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 = ""; }; + 141DC0E7977DE53BB4C0ACE6 /* UIViewController+GMSToastMessages.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+GMSToastMessages.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 = ""; }; + 1EAB5489D23C2A1DDF2B6E5B /* DemoSceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoSceneDelegate.h; 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 = ""; }; + 3679BC5053A9702AE4FC85B3 /* PaddingBehaviorViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PaddingBehaviorViewController.m; 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 = ""; }; + 56200E1874E08933C65BFE11 /* PaddingBehaviorViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PaddingBehaviorViewController.h; 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 = ""; }; + A3171A5C5E5441DDA8BE9E40 /* StampedPolylinesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StampedPolylinesViewController.m; sourceTree = ""; }; + A3AE3B168663EA43D3F2F259 /* step3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step3@2x.png"; sourceTree = ""; }; + A646368ABCDC53E0A583B14D /* StampedPolylinesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StampedPolylinesViewController.h; 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 = ""; }; + 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 = ""; }; + D1C3943A9C5721FCF5F4D901 /* SampleListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SampleListViewController.m; sourceTree = ""; }; + D30CF0DFCD652D6DF10187D7 /* MarkerLayerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkerLayerViewController.h; sourceTree = ""; }; + D40C920E07F055501B87FF4B /* DemoSceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoSceneDelegate.m; 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 = ""; }; + ED3C5E3C9750588FA9547A34 /* SampleListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SampleListViewController.h; 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 = ""; }; + F63E5BE6BF5B9E3D7AF192E0 /* UIViewController+GMSToastMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIViewController+GMSToastMessages.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 = ( + 7EB0308A1EF8F6ADBD6DEF79 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1D27564BB990E3F72332953D = { + isa = PBXGroup; + children = ( + 3F84FF5646DF0F79669A6A34 /* Source */, + 9F91B9CA1785E3DD586E3F93 /* Frameworks */, + 9C667AD7285A7D36180D29BE /* Products */, + ); + sourceTree = ""; + }; + 3F84FF5646DF0F79669A6A34 /* Source */ = { + isa = PBXGroup; + children = ( + FDE7AC21E7296871E2078A29 /* GoogleMapsDemos */, + ); + name = Source; + 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 = ""; + }; + 9F91B9CA1785E3DD586E3F93 /* 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 = ""; + }; + EA7DB0420CFC5F22D6F956A3 /* 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 */, + 56200E1874E08933C65BFE11 /* PaddingBehaviorViewController.h */, + 3679BC5053A9702AE4FC85B3 /* PaddingBehaviorViewController.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 */, + A646368ABCDC53E0A583B14D /* StampedPolylinesViewController.h */, + A3171A5C5E5441DDA8BE9E40 /* StampedPolylinesViewController.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 = ""; + }; + FDE7AC21E7296871E2078A29 /* GoogleMapsDemos */ = { + isa = PBXGroup; + children = ( + E9C287B2214772B64F89F90B /* Resources */, + EA7DB0420CFC5F22D6F956A3 /* Samples */, + 02A7C56A409A0CB977458251 /* DemoAppDelegate.h */, + C7AD415580B4A6B35532456A /* DemoAppDelegate.m */, + 1EAB5489D23C2A1DDF2B6E5B /* DemoSceneDelegate.h */, + D40C920E07F055501B87FF4B /* DemoSceneDelegate.m */, + B53B4C2097A6AD4A98746495 /* MapsDemoAssets.xcassets */, + FCA64CCA86165B04BDDE0A93 /* SDKDemoAPIKey.h */, + ED3C5E3C9750588FA9547A34 /* SampleListViewController.h */, + D1C3943A9C5721FCF5F4D901 /* SampleListViewController.m */, + F63E5BE6BF5B9E3D7AF192E0 /* UIViewController+GMSToastMessages.h */, + 141DC0E7977DE53BB4C0ACE6 /* UIViewController+GMSToastMessages.m */, + 21267D205F7EC280F26D97ED /* main.m */, + ); + path = GoogleMapsDemos; + 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 = { + }; + buildConfigurationList = 80C3BB6A64A9375104C7ACB9 /* Build configuration list for PBXProject "GoogleMapsDemos" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + en, + Base, + ); + mainGroup = 1D27564BB990E3F72332953D; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F934453EF090BCCB93E78E83 /* GoogleMapsDemos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C434996613C0A2FED463783D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 500FA4390A29E0ADB39E21FB /* step5.png in Resources */, + A4A326C09602C12DE4851136 /* step1@2x.png in Resources */, + F6AD7FEFAF0440DF650DEEBE /* step4.png in Resources */, + EFFB937E7FB26F7BA147DD18 /* argentina.png in Resources */, + D50D986C76882A5D0DA41F35 /* boat.png in Resources */, + 1CEF3F4702DB008F654D8E7A /* aeroplane@2x.png in Resources */, + CD26C5EC9D66CFD72C86EAC2 /* step6.png in Resources */, + 5653C21AEB869C92653B83A4 /* step7.png in Resources */, + 32CC144A6B022DB1926852B5 /* aeroplane.png in Resources */, + A330C5C1305B6AFDE8549C54 /* botswana-large.png in Resources */, + 13970FC2D7013CA5C00E5AAE /* step3.png in Resources */, + ABE214D988BB427F2881A8BC /* step2.png in Resources */, + ED4617FD4C66219840E42297 /* popup_santa@2x.png in Resources */, + BBA68BA0DD2166869D252187 /* glow-marker.png in Resources */, + E15028A581780CEF233A75DC /* step1.png in Resources */, + 84A8BFF7EC2AFE5239DB222E /* step3@2x.png in Resources */, + 3B647C56A107E00BC4815B1D /* australia.png in Resources */, + E4606BC764074DC9EE1A5E4E /* step7@2x.png in Resources */, + 0EEC555F800FEE8497BCF084 /* arrow@2x.png in Resources */, + 89C85AA304C7FDE1A446A292 /* glow-marker@2x.png in Resources */, + D433812D70CBD35A158CD8D5 /* step5@2x.png in Resources */, + E569618FA3968C8E0D38DB22 /* australia-large@2x.png in Resources */, + 796FBC17DC9D867374704425 /* arrow.png in Resources */, + 7EEF5B03C2175CD1DB86E5DC /* boat@2x.png in Resources */, + 79CD6A3123D613E24B9E5983 /* x29@2x.png in Resources */, + 41C136BCC76621603A3D6C41 /* spitfire.png in Resources */, + A7729B5E46B7F73B703649AE /* h1@2x.png in Resources */, + 138233AB6895BE7AA2387050 /* spitfire@2x.png in Resources */, + B5A196301B3B0A4DC81243F2 /* h1.png in Resources */, + 81ECE58D29B8027F342FF401 /* voyager.png in Resources */, + 9A48AFB4E51FCDD215B5044C /* x29.png in Resources */, + B04B69D9F2DB76AC803A637A /* voyager@2x.png in Resources */, + 57F58315D4A973991A3DBAD5 /* bulgaria.png in Resources */, + 6C6DF0AAB9B807C20C81DE55 /* bulgaria-large.png in Resources */, + 79AF7A74C389B8C21C24C3B3 /* argentina-large.png in Resources */, + 132C53B3FD3703D3BBF50E62 /* step2@2x.png in Resources */, + 31291E8440EE6B0EA8727463 /* popup_santa.png in Resources */, + B10925DA2A2A723A398910C4 /* step6@2x.png in Resources */, + E77BADB514BB35DC002C5875 /* step8@2x.png in Resources */, + 17C0BD6F820FEECF2CE7E1C7 /* step8.png in Resources */, + E2E45E7204B5F6D67AEF3D05 /* australia-large.png in Resources */, + CA5A224929A41D039C8E6F09 /* botswana.png in Resources */, + AB52000C1C24D163BE4A67B3 /* step4@2x.png in Resources */, + 787F22327F1D4EC202A9EAE5 /* newark_nj_1922.jpg in Resources */, + 8B63BA635C061A8717C43123 /* mapstyle-night.json in Resources */, + 742226EE8345C56F9CEA4F91 /* mapstyle-retro.json in Resources */, + 1BE7A8A4782B8A1826594BD3 /* mapstyle-silver.json in Resources */, + 851C3F39F91242ABBBBACB3F /* track.json in Resources */, + 3DCB19D95A2A16E3CA3C212B /* museum-exhibits.json in Resources */, + F3031AA62E3127D164A980F5 /* LaunchScreen.storyboard in Resources */, + 59D9F1FE2A4075B9712E7CB2 /* MapsDemoAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 06DE6F27AD1DD8E5163683B6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4197B152B2E4390B2BBBE582 /* SampleListViewController.m in Sources */, + 1B3176D3A4C8E9B9CB2C2847 /* StampedPolylinesViewController.m in Sources */, + 1B47A3534FDA95B9195AF9CF /* PolygonsViewController.m in Sources */, + 7CCC94E11616DA5545E72B3E /* AnimatedUIViewMarkerViewController.m in Sources */, + 220C39F471CD6096CEFD2DBD /* MyLocationViewController.m in Sources */, + B2B799F6704A2FEFE0D9C9A6 /* CameraViewController.m in Sources */, + FC3BB569234A28CAAC9F8F79 /* FixedPanoramaViewController.m in Sources */, + E3EC2EE7839A2643991FBD84 /* VisibleRegionViewController.m in Sources */, + DE1AA3D31A2214448C20F8B9 /* CustomMarkersViewController.m in Sources */, + B017677EAFEB65C012D48EB6 /* GestureControlViewController.m in Sources */, + 6AD348D342E913F10F6ECCA0 /* StyledMapViewController.m in Sources */, + 52E9330C842BD359492ACEA5 /* PolylinesViewController.m in Sources */, + EA2A60FD3CC92A4054D4E706 /* TileLayerViewController.m in Sources */, + ACEDBFBF671E55BE4E10F7E6 /* Samples.m in Sources */, + A9CDA3862243CE449C79CE39 /* PanoramaViewController.m in Sources */, + CC839BBBD61B9C68F486F311 /* PaddingBehaviorViewController.m in Sources */, + 8E09643452E1A4859A13F4F1 /* MarkersViewController.m in Sources */, + 92679F9EBB1FEF1EE105E353 /* TrafficMapViewController.m in Sources */, + C4D64EB836EDD354E4B2018F /* IndoorViewController.m in Sources */, + 2329D94E802AF61BCF5980CF /* GeocoderViewController.m in Sources */, + 9D688B947F1C938893B92EDD /* MapLayerViewController.m in Sources */, + BCAC1722DD65725FF71AA311 /* MarkerLayerViewController.m in Sources */, + 1E4688E75E502DB5FF5FFFFF /* FrameRateViewController.m in Sources */, + 8341C52DCC4E08F94F330D32 /* MapZoomViewController.m in Sources */, + AD515D1D593A2141499A01BE /* MapTypesViewController.m in Sources */, + F489F581F708F97B4896711C /* StructuredGeocoderViewController.m in Sources */, + 456E667D0D25E81DFAFEADBD /* AnimatedCurrentLocationViewController.m in Sources */, + 34794834CD5C7B6CAC3167CD /* CustomIndoorViewController.m in Sources */, + 501E837B49B7D885F3EBE16F /* BasicMapViewController.m in Sources */, + E1C8C766EEF5F4658A00AA2D /* SnapshotReadyViewController.m in Sources */, + 281CB228E4BBB37DB2158754 /* MarkerEventsViewController.m in Sources */, + FC1036CCE836DC9AA06A213E /* IndoorMuseumNavigationViewController.m in Sources */, + 3456EEAA20A663D3B60BF0EF /* MarkerInfoWindowViewController.m in Sources */, + D79140F5C9786132C652F82B /* FitBoundsViewController.m in Sources */, + E6CFCE211B63AC011C822218 /* GradientPolylinesViewController.m in Sources */, + 0B6400E7F31AE43CABFE27A8 /* DoubleMapViewController.m in Sources */, + C369F8AAC5E93F4F5B00101A /* GroundOverlayViewController.m in Sources */, + 923880C43B9DEE1EFD7D230F /* main.m in Sources */, + 29851A2D3061D70713AC839C /* UIViewController+GMSToastMessages.m in Sources */, + B2F17E89F79ECFAB73A3199A /* DemoAppDelegate.m in Sources */, + 80B2E0765CDEFB62C191FCE7 /* DemoSceneDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2723CC697F2C564456B7C001 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = x86_64; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = ./GoogleMapsDemos/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h new file mode 100755 index 00000000..3d33bab7 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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(nonatomic, nullable) id servicesHandle; + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m new file mode 100755 index 00000000..6ad4734d --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoAppDelegate.m @@ -0,0 +1,60 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/DemoAppDelegate.h" + +#import +#import "GoogleMapsDemos/DemoSceneDelegate.h" +#import "GoogleMapsDemos/SDKDemoAPIKey.h" + +@implementation DemoAppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + NSLog(@"Build version: %s", __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]; + + // Metal is the preferred renderer. + [GMSServices setMetalRendererEnabled:YES]; + self.servicesHandle = [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]); + + return YES; +} + +- (UISceneConfiguration *)application:(UIApplication *)application + configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession + options:(UISceneConnectionOptions *)options { + UISceneConfiguration *configuration = + [UISceneConfiguration configurationWithName:@"Default Configuration" + sessionRole:connectingSceneSession.role]; + configuration.delegateClass = [DemoSceneDelegate class]; + return configuration; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.h new file mode 100755 index 00000000..e07c2548 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.h @@ -0,0 +1,25 @@ +/* + * Copyright 2022 Google LLC. 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 + +NS_ASSUME_NONNULL_BEGIN + +@interface DemoSceneDelegate : UIResponder +@property(nonatomic, nullable) UIWindow *window; +@property(nonatomic, nullable) UISplitViewController *splitViewController; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.m new file mode 100755 index 00000000..2faf2b40 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/DemoSceneDelegate.m @@ -0,0 +1,47 @@ +/* + * Copyright 2022 Google LLC. 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 "GoogleMapsDemos/DemoSceneDelegate.h" + +#import "GoogleMapsDemos/SampleListViewController.h" + +@implementation DemoSceneDelegate + +- (void)scene:(UIScene *)scene + willConnectToSession:(UISceneSession *)session + options:(UISceneConnectionOptions *)connectionOptions { + if (![scene isKindOfClass:[UIWindowScene class]]) { + return; + } + UIWindowScene *windowScene = (UIWindowScene *)scene; + self.window = [[UIWindow alloc] initWithWindowScene:windowScene]; + + SampleListViewController *sampleListViewController = [[SampleListViewController alloc] init]; + + UINavigationController *rootNavigationController = + [[UINavigationController alloc] initWithRootViewController:sampleListViewController]; + + UIViewController *detailController = [[UIViewController alloc] init]; + + self.splitViewController = [[UISplitViewController alloc] init]; + self.splitViewController.delegate = sampleListViewController; + self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; + self.splitViewController.viewControllers = @[ rootNavigationController, detailController ]; + + self.window.rootViewController = self.splitViewController; + [self.window makeKeyAndVisible]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist new file mode 100755 index 00000000..d5172fef --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.example.GoogleMapsDemos + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 00000000..59e3d6e9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,103 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "Maps-SDK-Demo-App_120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "Maps-SDK-Demo-App_180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "Maps-SDK-Demo-App_76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "Maps-SDK-Demo-App_152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "Maps-SDK-Demo-App_167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png new file mode 100755 index 00000000..fa908bbb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png new file mode 100755 index 00000000..b60865e6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png new file mode 100755 index 00000000..6a5a948e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png new file mode 100755 index 00000000..cd6d1593 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png new file mode 100755 index 00000000..90b28d14 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json new file mode 100755 index 00000000..2d92bd53 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MapsDemoAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h new file mode 100755 index 00000000..78f7a0f0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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 MasterViewController : UITableViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m new file mode 100755 index 00000000..56d403bb --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/MasterViewController.m @@ -0,0 +1,130 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/MasterViewController.h" + +#import "GoogleMapsDemos/Samples/Samples.h" +#import + + +typedef NSMutableArray *> *> DemoSamplesArray; + +@implementation MasterViewController { + NSArray *_demos; + NSArray *_demoSections; + CLLocationManager *_locationManager; + BOOL _shouldCollapseDetailViewController; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + _shouldCollapseDetailViewController = YES; + self.title = NSLocalizedString(@"Maps SDK Demos", @"Maps SDK Demos"); + self.title = [NSString stringWithFormat:@"%@: %@", self.title, [GMSServices SDKLongVersion]]; + + self.tableView.autoresizingMask = + UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + self.tableView.accessibilityIdentifier = @"SamplesTableView"; + + _demoSections = [Samples loadSections]; + _demos = [Samples loadDemos]; +} + +#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]; + } + + cell.accessoryType = self.splitViewController.collapsed + ? UITableViewCellAccessoryDisclosureIndicator + : UITableViewCellAccessoryNone; + + NSDictionary *demo = [[_demos objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]; + cell.textLabel.text = [demo objectForKey:@"title"]; + cell.detailTextLabel.text = [demo objectForKey:@"description"]; + cell.accessibilityLabel = [demo objectForKey:@"title"]; + + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + _shouldCollapseDetailViewController = NO; + [self loadDemo:indexPath.section atIndex:indexPath.row]; +} + +#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]; + + if (controller != nil) { + controller.title = [demo objectForKey:@"title"]; + + UINavigationController *navController = + [[UINavigationController alloc] initWithRootViewController:controller]; + navController.navigationBar.translucent = NO; + [self showDetailViewController:navController sender:nil]; + + controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem; + controller.navigationItem.leftItemsSupplementBackButton = YES; + } +} + +#pragma mark - UISplitViewControllerDelegate methods + +- (UIViewController *)primaryViewControllerForCollapsingSplitViewController: + (UISplitViewController *)splitViewController { + [self.tableView reloadData]; + return nil; +} + +- (UIViewController *)primaryViewControllerForExpandingSplitViewController: + (UISplitViewController *)splitViewController { + [self.tableView reloadData]; + return nil; +} + +- (BOOL)splitViewController:(UISplitViewController *)splitViewController + collapseSecondaryViewController:(UIViewController *)secondaryViewController + ontoPrimaryViewController:(UIViewController *)primaryViewController { + return _shouldCollapseDetailViewController; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard new file mode 100755 index 00000000..8c740c7b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/LaunchScreen.storyboard @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png new file mode 100755 index 00000000..fff81970 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png new file mode 100755 index 00000000..ce36c63a Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/h1@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png new file mode 100755 index 00000000..5c76dc9c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png new file mode 100755 index 00000000..a09b75cc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/spitfire@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png new file mode 100755 index 00000000..d657f22f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png new file mode 100755 index 00000000..b2a668eb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/voyager@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png new file mode 100755 index 00000000..0edd3f13 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png new file mode 100755 index 00000000..eda3d15e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/Museum-Icons/x29@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png new file mode 100755 index 00000000..5114ee49 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png new file mode 100755 index 00000000..5c5012ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/aeroplane@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ar.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png new file mode 100755 index 00000000..b75247ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina-large.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png new file mode 100755 index 00000000..9095376a Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/argentina.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png new file mode 100755 index 00000000..8d8c3f7f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png new file mode 100755 index 00000000..4b0ff7ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/arrow@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png new file mode 100755 index 00000000..787aed5c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png new file mode 100755 index 00000000..15d4d2af Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia-large@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png new file mode 100755 index 00000000..12afbb94 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/australia.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png new file mode 100755 index 00000000..67221da3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png new file mode 100755 index 00000000..3f316d36 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/boat@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png new file mode 100755 index 00000000..c1504917 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana-large.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png new file mode 100755 index 00000000..a006d99b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/botswana.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png new file mode 100755 index 00000000..0107da02 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria-large.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png new file mode 100755 index 00000000..04cdb294 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/bulgaria.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ca.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/cs.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/da.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/de.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/el.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/en_GB.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/es.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/fr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png new file mode 100755 index 00000000..eb0f5961 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png new file mode 100755 index 00000000..e415c3f0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/glow-marker@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/he.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/hu.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/id.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/it.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ja.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ko.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-night.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-night.json new file mode 100755 index 00000000..1cbd6162 --- /dev/null +++ b/ios/App/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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-retro.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-retro.json new file mode 100755 index 00000000..f6a16e82 --- /dev/null +++ b/ios/App/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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-silver.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/mapstyle-silver.json new file mode 100755 index 00000000..340e5d62 --- /dev/null +++ b/ios/App/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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ms.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/museum-exhibits.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/museum-exhibits.json new file mode 100755 index 00000000..25b0a5db --- /dev/null +++ b/ios/App/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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nb.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg new file mode 100755 index 00000000..1f4ae595 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/newark_nj_1922.jpg differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/nl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png new file mode 100755 index 00000000..f2968efa Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png new file mode 100755 index 00000000..3f908289 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/popup_santa@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/pt_PT.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ro.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/ru.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png new file mode 100755 index 00000000..1cac6970 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png new file mode 100755 index 00000000..8d99108f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step1@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png new file mode 100755 index 00000000..18ee7f2b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png new file mode 100755 index 00000000..5c37b1db Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step2@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png new file mode 100755 index 00000000..795b90f1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png new file mode 100755 index 00000000..950d7543 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step3@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png new file mode 100755 index 00000000..3d7416b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png new file mode 100755 index 00000000..7ae50e54 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step4@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png new file mode 100755 index 00000000..3a8bd1e0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png new file mode 100755 index 00000000..236f3a0f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step5@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png new file mode 100755 index 00000000..c6580e6f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png new file mode 100755 index 00000000..2bed812d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step6@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png new file mode 100755 index 00000000..4e171786 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png new file mode 100755 index 00000000..88932e69 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step7@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png new file mode 100755 index 00000000..7eefde75 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png new file mode 100755 index 00000000..6f49e3d8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/step8@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/sv.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/th.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/tr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/track.json b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/track.json new file mode 100755 index 00000000..f2cc108b --- /dev/null +++ b/ios/App/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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/uk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/vi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_CN.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Resources/zh_TW.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h new file mode 100755 index 00000000..f8d64954 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SDKDemoAPIKey.h @@ -0,0 +1,27 @@ +/* + * Copyright 2016 Google LLC. 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 + +/** + * 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.h new file mode 100755 index 00000000..fbe9649a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2016 Google LLC. 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 SampleListViewController + : UITableViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.m new file mode 100755 index 00000000..a94a61b1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/SampleListViewController.m @@ -0,0 +1,181 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/SampleListViewController.h" + +#import +#import "GoogleMapsDemos/Samples/Samples.h" + +typedef NSMutableArray *> *> DemoSamplesArray; + +@implementation SampleListViewController { + NSArray *> *> *_demos; + NSArray *> *> *_filteredDemos; + NSArray *_demoSections; + NSArray *_filteredDemoSections; + CLLocationManager *_locationManager; + BOOL _shouldCollapseDetailViewController; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + _shouldCollapseDetailViewController = YES; + self.title = NSLocalizedString(@"Maps SDK Demos", @"Maps SDK Demos"); + self.title = [NSString stringWithFormat:@"%@: %@", self.title, [GMSServices SDKLongVersion]]; + + self.tableView.autoresizingMask = + UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + self.tableView.accessibilityIdentifier = @"SamplesTableView"; + + _demoSections = [Samples loadSections]; + _demos = [Samples loadDemos]; + + _filteredDemos = _demos.copy; + _filteredDemoSections = _demoSections.copy; + + UISearchController *searchController = + [[UISearchController alloc] initWithSearchResultsController:nil]; + searchController.searchResultsUpdater = self; + searchController.searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone; + self.navigationItem.searchController = searchController; +} + +#pragma mark - UITableViewController + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return _filteredDemoSections.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 35.0; +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { + return _filteredDemoSections[section]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + NSArray *> *demosInSection = _filteredDemos[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]; + } + + cell.accessoryType = self.splitViewController.collapsed + ? UITableViewCellAccessoryDisclosureIndicator + : UITableViewCellAccessoryNone; + + NSDictionary *demo = [self demoAtIndexPath:indexPath]; + cell.textLabel.text = [demo objectForKey:@"title"]; + cell.detailTextLabel.text = [demo objectForKey:@"description"]; + cell.accessibilityLabel = [demo objectForKey:@"title"]; + + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + _shouldCollapseDetailViewController = NO; + NSDictionary *demo = [self demoAtIndexPath:indexPath]; + [self loadDemo:demo]; +} + +#pragma mark - Private methods + +- (void)loadDemo:(NSDictionary *)demo { + UIViewController *controller = [[[demo objectForKey:@"controller"] alloc] init]; + + if (controller != nil) { + controller.title = [demo objectForKey:@"title"]; + + UINavigationController *navController = + [[UINavigationController alloc] initWithRootViewController:controller]; + navController.navigationBar.translucent = NO; + [self showDetailViewController:navController sender:nil]; + + controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem; + controller.navigationItem.leftItemsSupplementBackButton = YES; + } +} + +- (NSDictionary *)demoAtIndexPath:(NSIndexPath *)indexPath { + return _filteredDemos[indexPath.section][indexPath.row]; +} + +#pragma mark - UISplitViewControllerDelegate methods + +- (UIViewController *)primaryViewControllerForCollapsingSplitViewController: + (UISplitViewController *)splitViewController { + [self.tableView reloadData]; + return nil; +} + +- (UIViewController *)primaryViewControllerForExpandingSplitViewController: + (UISplitViewController *)splitViewController { + [self.tableView reloadData]; + return nil; +} + +- (BOOL)splitViewController:(UISplitViewController *)splitViewController + collapseSecondaryViewController:(UIViewController *)secondaryViewController + ontoPrimaryViewController:(UIViewController *)primaryViewController { + return _shouldCollapseDetailViewController; +} + +#pragma mark - UISearchResultsUpdating methods + +- (void)updateSearchResultsForSearchController:(UISearchController *)searchController { + NSCharacterSet *whitespaceCharacterSet = [NSCharacterSet whitespaceCharacterSet]; + NSString *text = searchController.searchBar.text; + NSString *filterString = [text stringByTrimmingCharactersInSet:whitespaceCharacterSet]; + + if ([filterString length] != 0) { + NSPredicate *predicate = [NSPredicate + predicateWithFormat: + @"title CONTAINS[cd] %@ OR className CONTAINS[cd] %@ OR description CONTAINS[cd] %@", + filterString, filterString, filterString]; + + NSMutableArray *> *> *filteredDemos = + [NSMutableArray array]; + NSMutableArray *filteredDemoSections = [NSMutableArray array]; + + [_demos enumerateObjectsUsingBlock:^(id demosInSection, NSUInteger index, BOOL *stop) { + NSArray *> *filteredDemo = + [demosInSection filteredArrayUsingPredicate:predicate]; + if ([filteredDemo count] != 0) { + [filteredDemos addObject:filteredDemo]; + [filteredDemoSections addObject:_demoSections[index]]; + } + }]; + + _filteredDemos = filteredDemos.copy; + _filteredDemoSections = filteredDemoSections.copy; + + } else { + _filteredDemos = _demos.copy; + _filteredDemoSections = _demoSections.copy; + } + + [self.tableView reloadData]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h new file mode 100755 index 00000000..ac72077a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2016 Google LLC. 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 AnimatedCurrentLocationViewController : UIViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m new file mode 100755 index 00000000..5939026e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.m @@ -0,0 +1,101 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h" + +#import + +@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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h new file mode 100755 index 00000000..0dce9e8b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m new file mode 100755 index 00000000..53756327 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.m @@ -0,0 +1,133 @@ +/* + * Copyright 2016 Google LLC. 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 "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 + name:UIApplicationWillEnterForegroundNotification + object:nil]; +} + +- (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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h new file mode 100755 index 00000000..9edc891a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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 BasicMapViewController : UIViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m new file mode 100755 index 00000000..e134c7b9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/BasicMapViewController.m @@ -0,0 +1,54 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/BasicMapViewController.h" + +#import + +@implementation BasicMapViewController { + UILabel *_statusLabel; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Seattle coordinates + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.6089945 + longitude:-122.3410462 + zoom:14]; + 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h new file mode 100755 index 00000000..b8f9b1a3 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m new file mode 100755 index 00000000..6f6b5e44 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CameraViewController.m @@ -0,0 +1,72 @@ +/* + * Copyright 2016 Google LLC. 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 "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:(NSTimer *)timer { + 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h new file mode 100755 index 00000000..52140480 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m new file mode 100755 index 00000000..5ef75ce4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomIndoorViewController.m @@ -0,0 +1,150 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/CustomIndoorViewController.h" + +#import + +@interface CustomIndoorViewController () + +@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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h new file mode 100755 index 00000000..c63fd375 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m new file mode 100755 index 00000000..97c43f17 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/CustomMarkersViewController.m @@ -0,0 +1,125 @@ +/* + * Copyright 2016 Google LLC. 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 "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; + + // Reset count on view load + kMarkerCount = 0; +} + +- (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)); + __weak __typeof__(self) weakSelf = self; + dispatch_after(popTime, dispatch_get_main_queue(), ^(void) { + __typeof__(self) strongSelf = weakSelf; + if (strongSelf) { + GMSVisibleRegion region = [strongSelf->_mapView.projection visibleRegion]; + GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithRegion:region]; + [strongSelf 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]; + + // Reset count on clear + kMarkerCount = 0; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h new file mode 100755 index 00000000..d612fbf3 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m new file mode 100755 index 00000000..ff561108 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/DoubleMapViewController.m @@ -0,0 +1,73 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h new file mode 100755 index 00000000..b38b0f58 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m new file mode 100755 index 00000000..9b9ff0a4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FitBoundsViewController.m @@ -0,0 +1,91 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h new file mode 100755 index 00000000..900b02ee --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m new file mode 100755 index 00000000..a86304e0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FixedPanoramaViewController.m @@ -0,0 +1,41 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h new file mode 100755 index 00000000..940dbb0f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m new file mode 100755 index 00000000..1c5333ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/FrameRateViewController.m @@ -0,0 +1,89 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h new file mode 100755 index 00000000..6fec7499 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m new file mode 100755 index 00000000..62b5930a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GeocoderViewController.m @@ -0,0 +1,71 @@ +/* + * Copyright 2016 Google LLC. 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 "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. + __weak __typeof__(self) weakSelf = self; + GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response, NSError *error) { + [weakSelf handleResponse:response coordinate:coordinate error:error]; + }; + [_geocoder reverseGeocodeCoordinate:coordinate completionHandler:handler]; +} + +- (void)handleResponse:(nullable GMSReverseGeocodeResponse *)response + coordinate:(CLLocationCoordinate2D)coordinate + error:(nullable NSError *)error { + GMSAddress *address = response.firstResult; + if (address) { + NSLog(@"Geocoder result: %@", address); + + GMSMarker *marker = [GMSMarker markerWithPosition:address.coordinate]; + NSArray *lines = [address lines]; + + marker.title = [lines firstObject]; + if (lines.count > 1) { + marker.snippet = [lines objectAtIndex:1]; + } + + marker.appearAnimation = kGMSMarkerAnimationPop; + marker.map = _mapView; + } else { + NSLog(@"Could not reverse geocode point (%f,%f): %@", coordinate.latitude, coordinate.longitude, + error); + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h new file mode 100755 index 00000000..f103e5d2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m new file mode 100755 index 00000000..78ed83da --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GestureControlViewController.m @@ -0,0 +1,70 @@ +/* + * Copyright 2016 Google LLC. 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 "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; + _mapView.accessibilityIdentifier = @"gestureControlDemoMapView"; + + 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h new file mode 100755 index 00000000..3142b72d --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m new file mode 100755 index 00000000..5859ced9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GradientPolylinesViewController.m @@ -0,0 +1,87 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h new file mode 100755 index 00000000..e220bf44 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m new file mode 100755 index 00000000..8f2d1095 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/GroundOverlayViewController.m @@ -0,0 +1,60 @@ +/* + * Copyright 2016 Google LLC. 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 "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); + + // 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]; + GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest + coordinate:northEast]; + + // 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h new file mode 100755 index 00000000..867c3e48 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2016 Google LLC. 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 + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m new file mode 100755 index 00000000..ee8cdee9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.m @@ -0,0 +1,123 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h" + +#import + +@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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h new file mode 100755 index 00000000..d4f5a67a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m new file mode 100755 index 00000000..66bfac03 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/IndoorViewController.m @@ -0,0 +1,93 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/IndoorViewController.h" + +#import + +static NSString *const kNormalType = @"Normal"; +static NSString *const kRetroType = @"Retro"; +static NSString *const kGrayscaleType = @"Grayscale"; +static NSString *const kNightType = @"Night"; + +@interface IndoorViewController () +@end + +@implementation IndoorViewController { + GMSMapView *_mapView; + UIBarButtonItem *_barButtonItem; + GMSMapStyle *_retroStyle; + GMSMapStyle *_grayscaleStyle; + GMSMapStyle *_nightStyle; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + 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]; + + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318 + longitude:-122.403874 + zoom:18]; + + _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; + + UIBarButtonItem *styleButton = [[UIBarButtonItem alloc] initWithTitle:@"Style" + style:UIBarButtonItemStylePlain + target:self + action:@selector(changeMapStyle:)]; + self.navigationItem.rightBarButtonItem = styleButton; + + self.view = _mapView; +} + +- (UIAlertAction *_Nonnull)actionWithTitle:(nonnull NSString *)title + style:(nullable GMSMapStyle *)style { + __weak __typeof__(self) weakSelf = self; + return [UIAlertAction actionWithTitle:title + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *_Nonnull action) { + __strong __typeof__(self) strongSelf = weakSelf; + if (strongSelf) { + strongSelf->_mapView.mapStyle = style; + } + }]; +} + +- (void)changeMapStyle:(UIBarButtonItem *)sender { + UIAlertController *alert = + [UIAlertController alertControllerWithTitle:@"Select map style" + message:nil + preferredStyle:UIAlertControllerStyleActionSheet]; + [alert addAction:[self actionWithTitle:kRetroType style:_retroStyle]]; + [alert addAction:[self actionWithTitle:kGrayscaleType style:_grayscaleStyle]]; + [alert addAction:[self actionWithTitle:kNightType style:_nightStyle]]; + [alert addAction:[self actionWithTitle:kNormalType style:nil]]; + [alert addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:nil]]; + alert.popoverPresentationController.barButtonItem = sender; + [self presentViewController:alert animated:YES completion:nil]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h new file mode 100755 index 00000000..f2f9f6e6 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m new file mode 100755 index 00000000..3aea721f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapLayerViewController.m @@ -0,0 +1,89 @@ +/* + * Copyright 2016 Google LLC. 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 "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; + + GMSMapView *mapView = _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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h new file mode 100755 index 00000000..c879adce --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m new file mode 100755 index 00000000..51e45be7 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapTypesViewController.m @@ -0,0 +1,71 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h new file mode 100755 index 00000000..dadb9a16 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m new file mode 100755 index 00000000..7eef40a5 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MapZoomViewController.m @@ -0,0 +1,84 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h new file mode 100755 index 00000000..86ed1307 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m new file mode 100755 index 00000000..58d69c29 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerEventsViewController.m @@ -0,0 +1,78 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h new file mode 100755 index 00000000..299a9a23 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m new file mode 100755 index 00000000..0d0fb7f0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerInfoWindowViewController.m @@ -0,0 +1,96 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h" + +#import "GoogleMapsDemos/UIViewController+GMSToastMessages.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 gms_showToastWithMessage:message]; +} + +- (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker { + NSString *message = + [NSString stringWithFormat:@"Info window for marker %@ long pressed.", marker.title]; + [self gms_showToastWithMessage:message]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h new file mode 100755 index 00000000..952bee39 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m new file mode 100755 index 00000000..9f5a5de0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkerLayerViewController.m @@ -0,0 +1,149 @@ +/* + * Copyright 2016 Google LLC. 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 "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); + + // If this marker is flat, implicitly trigger a change in rotation, which will finish quickly. + if (marker.flat) { + marker.rotation = heading; + } + + // 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]; + +} + +- (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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h new file mode 100755 index 00000000..3cce920e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m new file mode 100755 index 00000000..429964bb --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MarkersViewController.m @@ -0,0 +1,88 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/MarkersViewController.h" + +#import + +@implementation MarkersViewController { + GMSMarker *_sydneyMarker; + GMSMarker *_melbourneMarker; + GMSMarker *_fadeInMarker; +} + +- (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; + + _fadeInMarker = [[GMSMarker alloc] init]; + _fadeInMarker.title = @"Australia"; + _fadeInMarker.position = CLLocationCoordinate2DMake(-29.9959, 145.0719); + _fadeInMarker.appearAnimation = kGMSMarkerAnimationFadeIn; + _fadeInMarker.icon = [UIImage imageNamed:@"australia"]; + + // 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; + } 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; + + if (_fadeInMarker.map) { + _fadeInMarker.map = nil; + } else { + _fadeInMarker.map = (GMSMapView *)self.view; + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h new file mode 100755 index 00000000..4a6a2c2b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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 MyLocationViewController : UIViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m new file mode 100755 index 00000000..1d599dea --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/MyLocationViewController.m @@ -0,0 +1,84 @@ +/* + * Copyright 2016 Google LLC. 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 "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.delegate = self; + _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. + GMSMapView *mapView = _mapView; + dispatch_async(dispatch_get_main_queue(), ^{ + mapView.myLocationEnabled = YES; + }); +} + +- (void)mapView:(GMSMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location { + NSString *message = [NSString stringWithFormat:@"My Location Dot Tapped at: [lat: %f, lng: %f]", + location.latitude, location.longitude]; + UIAlertController *alertController = + [UIAlertController alertControllerWithTitle:@"Location Tapped" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]; + [alertController addAction:okAction]; + [self presentViewController:alertController animated:YES completion:nil]; +} + +- (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 received, then jump to that location. + _firstLocationUpdate = YES; + CLLocation *location = [change objectForKey:NSKeyValueChangeNewKey]; + _mapView.camera = [GMSCameraPosition cameraWithTarget:location.coordinate zoom:14]; + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.h new file mode 100755 index 00000000..0b62aadc --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2017 Google LLC. 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 PaddingBehaviorViewController : UIViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.m new file mode 100755 index 00000000..0db8f09f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PaddingBehaviorViewController.m @@ -0,0 +1,143 @@ +/* + * Copyright 2017 Google LLC. 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 "GoogleMapsDemos/Samples/PaddingBehaviorViewController.h" + +#import + +static CLLocationCoordinate2D kPanoramaNear = {40.761388, -73.978133}; + +@interface PaddingBehaviorViewController () + +@end + +@implementation PaddingBehaviorViewController { + GMSMapView *_mapView; + GMSPanoramaView *_panoramaView; + + UILabel *_statusLabel; + UIButton *_changeBehaviorButton; + UIButton *_toggleFrameButton; + UIBarButtonItem *_toggleViewButton; + + BOOL _hasShrunk; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 + longitude:151.2086 + zoom:6]; + _mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera]; + _mapView.padding = UIEdgeInsetsMake(0, 20, 40, 60); + _mapView.delegate = self; + _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + [self.view addSubview:_mapView]; + + // Add status label. + _statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 0, 0, 30)]; + _statusLabel.textColor = [UIColor brownColor]; + _statusLabel.textAlignment = NSTextAlignmentLeft; + _statusLabel.text = @"Behavior: Always"; + [_statusLabel sizeToFit]; + + // Add behavior modifier button. + _changeBehaviorButton = [UIButton buttonWithType:UIButtonTypeSystem]; + _changeBehaviorButton.frame = CGRectMake(30, 30, 0, 0); + [_changeBehaviorButton setTitle:@"Next Behavior" forState:UIControlStateNormal]; + [_changeBehaviorButton sizeToFit]; + [_changeBehaviorButton addTarget:self + action:@selector(nextBehavior) + forControlEvents:UIControlEventTouchUpInside]; + + // Add frame animation button. + _toggleViewButton = [[UIBarButtonItem alloc] initWithTitle:@"Toggle View" + style:UIBarButtonItemStylePlain + target:self + action:@selector(toggleViewType)]; + self.navigationItem.rightBarButtonItem = _toggleViewButton; + + // Add change view type button. + _toggleFrameButton = [UIButton buttonWithType:UIButtonTypeSystem]; + _toggleFrameButton.frame = CGRectMake(30, 60, 0, 0); + [_toggleFrameButton setTitle:@"Animate Frame" forState:UIControlStateNormal]; + [_toggleFrameButton sizeToFit]; + [_toggleFrameButton addTarget:self + action:@selector(toggleFrame) + forControlEvents:UIControlEventTouchUpInside]; + + [_mapView addSubview:_statusLabel]; + [_mapView addSubview:_changeBehaviorButton]; + [_mapView addSubview:_toggleFrameButton]; + + _hasShrunk = NO; + + // Pre-load PanoramaView + _panoramaView = [GMSPanoramaView panoramaWithFrame:self.view.bounds nearCoordinate:kPanoramaNear]; + _panoramaView.autoresizingMask = + UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; +} + +#pragma mark - Button Click Handlers + +- (void)toggleFrame { + CGSize size = self.view.bounds.size; + CGPoint point = self.view.bounds.origin; + [UIView animateWithDuration:2.0 + animations:^{ + if (self->_hasShrunk) { + self->_mapView.frame = self.view.bounds; + self->_panoramaView.frame = self->_mapView.frame; + } else { + self->_mapView.frame = + CGRectMake(point.x, point.y, size.width / 2, size.height / 2); + self->_panoramaView.frame = self->_mapView.frame; + } + self->_hasShrunk = !self->_hasShrunk; + [self.view setNeedsLayout]; + [self.view layoutIfNeeded]; + }]; +} + +- (void)toggleViewType { + if ([self.view.subviews containsObject:_mapView]) { + [_mapView removeFromSuperview]; + [self.view addSubview:_panoramaView]; + [_panoramaView addSubview:_toggleFrameButton]; + } else { + [_panoramaView removeFromSuperview]; + [self.view addSubview:_mapView]; + [_mapView addSubview:_toggleFrameButton]; + } +} + +- (void)nextBehavior { + switch (_mapView.paddingAdjustmentBehavior) { + case kGMSMapViewPaddingAdjustmentBehaviorAlways: + _mapView.paddingAdjustmentBehavior = kGMSMapViewPaddingAdjustmentBehaviorAutomatic; + _statusLabel.text = @"Behavior: Automatic"; + break; + case kGMSMapViewPaddingAdjustmentBehaviorAutomatic: + _mapView.paddingAdjustmentBehavior = kGMSMapViewPaddingAdjustmentBehaviorNever; + _statusLabel.text = @"Behavior: Never"; + break; + case kGMSMapViewPaddingAdjustmentBehaviorNever: + _mapView.paddingAdjustmentBehavior = kGMSMapViewPaddingAdjustmentBehaviorAlways; + _statusLabel.text = @"Behavior: Always"; + break; + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h new file mode 100755 index 00000000..1dfd2855 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m new file mode 100755 index 00000000..3fe97a9a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PanoramaViewController.m @@ -0,0 +1,80 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h new file mode 100755 index 00000000..af7e87aa --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.h @@ -0,0 +1,22 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m new file mode 100755 index 00000000..fc88a186 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolygonsViewController.m @@ -0,0 +1,281 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/PolygonsViewController.h" + +#import + +@interface PolygonsViewController () + +@property(nonatomic) GMSPolygon *polygonOfNewYork; +@property(nonatomic) GMSPolygon *polygonOfNorthCarolina; + +@end + +@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 + + self.view = mapView; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + // Create renderer related objects after view appears, so a renderer will be available; otherwise, + // behavior is undefined (may result in null ptr derefs). + GMSMapView *mapView = (GMSMapView *)self.view; + + // 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; + self.polygonOfNewYork = polygon; + + // 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.polygonOfNorthCarolina = polygon; +} + +- (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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h new file mode 100755 index 00000000..6cb22f50 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m new file mode 100755 index 00000000..e393459e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/PolylinesViewController.m @@ -0,0 +1,98 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/PolylinesViewController.h" + +#import + +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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h new file mode 100755 index 00000000..969a2210 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.h @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google LLC. 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)viewControllerClass + withTitle:(NSString *)title + andDescription:(NSString *)description; +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m new file mode 100755 index 00000000..21b6e688 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/Samples.m @@ -0,0 +1,153 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/Samples.h" + +#import "GoogleMapsDemos/Samples/AnimatedCurrentLocationViewController.h" +#import "GoogleMapsDemos/Samples/AnimatedUIViewMarkerViewController.h" +#import "GoogleMapsDemos/Samples/BasicMapViewController.h" +#import "GoogleMapsDemos/Samples/CameraViewController.h" +#import "GoogleMapsDemos/Samples/CustomIndoorViewController.h" +#import "GoogleMapsDemos/Samples/CustomMarkersViewController.h" +#import "GoogleMapsDemos/Samples/DoubleMapViewController.h" +#import "GoogleMapsDemos/Samples/FitBoundsViewController.h" +#import "GoogleMapsDemos/Samples/FixedPanoramaViewController.h" +#import "GoogleMapsDemos/Samples/FrameRateViewController.h" +#import "GoogleMapsDemos/Samples/GeocoderViewController.h" +#import "GoogleMapsDemos/Samples/GestureControlViewController.h" +#import "GoogleMapsDemos/Samples/GradientPolylinesViewController.h" +#import "GoogleMapsDemos/Samples/GroundOverlayViewController.h" +#import "GoogleMapsDemos/Samples/IndoorMuseumNavigationViewController.h" +#import "GoogleMapsDemos/Samples/IndoorViewController.h" +#import "GoogleMapsDemos/Samples/MapLayerViewController.h" +#import "GoogleMapsDemos/Samples/MapTypesViewController.h" +#import "GoogleMapsDemos/Samples/MapZoomViewController.h" +#import "GoogleMapsDemos/Samples/MarkerEventsViewController.h" +#import "GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h" +#import "GoogleMapsDemos/Samples/MarkerLayerViewController.h" +#import "GoogleMapsDemos/Samples/MarkersViewController.h" +#import "GoogleMapsDemos/Samples/MyLocationViewController.h" +#import "GoogleMapsDemos/Samples/PaddingBehaviorViewController.h" +#import "GoogleMapsDemos/Samples/PanoramaViewController.h" +#import "GoogleMapsDemos/Samples/PolygonsViewController.h" +#import "GoogleMapsDemos/Samples/PolylinesViewController.h" +#import "GoogleMapsDemos/Samples/SnapshotReadyViewController.h" +#import "GoogleMapsDemos/Samples/StampedPolylinesViewController.h" +#import "GoogleMapsDemos/Samples/StructuredGeocoderViewController.h" +#import "GoogleMapsDemos/Samples/StyledMapViewController.h" +#import "GoogleMapsDemos/Samples/TileLayerViewController.h" +#import "GoogleMapsDemos/Samples/TrafficMapViewController.h" +#import "GoogleMapsDemos/Samples/VisibleRegionViewController.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:[StampedPolylinesViewController class] + withTitle:@"Stamped Polylines" + 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], + [self newDemo:[PaddingBehaviorViewController class] + withTitle:@"Padding Behavior" + andDescription:nil], + [self newDemo:[StyledMapViewController class] withTitle:@"Styled Map" 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)viewControllerClass + withTitle:(NSString *)title + andDescription:(NSString *)description { + return + [[NSDictionary alloc] initWithObjectsAndKeys:viewControllerClass, @"controller", title, + @"title", NSStringFromClass(viewControllerClass), + @"className", description, @"description", nil]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h new file mode 100755 index 00000000..ceaa9c13 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m new file mode 100755 index 00000000..fcd9faaf --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/SnapshotReadyViewController.m @@ -0,0 +1,110 @@ +/* + * Copyright 2016 Google LLC. 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 "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. + UILabel *statusLabel = _statusLabel; + 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.h new file mode 100755 index 00000000..1b40f821 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2020 Google LLC. 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 StampedPolylinesViewController : UIViewController + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.m new file mode 100755 index 00000000..be90cae0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StampedPolylinesViewController.m @@ -0,0 +1,76 @@ +/* + * Copyright 2020 Google LLC. 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 "GoogleMapsDemos/Samples/StampedPolylinesViewController.h" + +#import + +NS_ASSUME_NONNULL_BEGIN + +static const double kSeattleLatitudeDegrees = 47.6089945; +static const double kSeattleLongitudeDegrees = -122.3410462; +static const double kZoom = 14; +static const double kStrokeWidth = 20; + +@implementation StampedPolylinesViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + GMSCameraPosition *defaultCamera = [GMSCameraPosition cameraWithLatitude:kSeattleLatitudeDegrees + longitude:kSeattleLongitudeDegrees + zoom:kZoom]; + + GMSMapView *map = [GMSMapView mapWithFrame:self.view.bounds camera:defaultCamera]; + map.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + [self.view addSubview:map]; + + // Make a texture stamped polyline. + GMSMutablePath *path = [GMSMutablePath path]; + [path addLatitude:kSeattleLatitudeDegrees + 0.003 longitude:kSeattleLongitudeDegrees - 0.003]; + [path addLatitude:kSeattleLatitudeDegrees - 0.005 longitude:kSeattleLongitudeDegrees - 0.005]; + [path addLatitude:kSeattleLatitudeDegrees - 0.007 longitude:kSeattleLongitudeDegrees + 0.001]; + + UIImage *_Nonnull stamp = (UIImage *_Nonnull)[UIImage imageNamed:@"voyager"]; + GMSStrokeStyle *solidStroke = [GMSStrokeStyle solidColor:[UIColor redColor]]; + solidStroke.stampStyle = [GMSTextureStyle textureStyleWithImage:stamp]; + + GMSPolyline *texturePolyline = [GMSPolyline polylineWithPath:path]; + texturePolyline.map = map; + texturePolyline.strokeWidth = kStrokeWidth; + texturePolyline.spans = @[ [GMSStyleSpan spanWithStyle:solidStroke] ]; + + // Make a gradient texture polyline. + GMSMutablePath *texturePath = [GMSMutablePath path]; + [texturePath addLatitude:kSeattleLatitudeDegrees - 0.012 longitude:kSeattleLongitudeDegrees]; + [texturePath addLatitude:kSeattleLatitudeDegrees - 0.012 + longitude:kSeattleLongitudeDegrees - 0.008]; + + UIImage *_Nonnull textureStamp = (UIImage *_Nonnull)[UIImage imageNamed:@"aeroplane"]; + + GMSStrokeStyle *gradientStroke = [GMSStrokeStyle gradientFromColor:[UIColor magentaColor] + toColor:[UIColor greenColor]]; + gradientStroke.stampStyle = [GMSTextureStyle textureStyleWithImage:textureStamp]; + + GMSPolyline *gradientTexturePolyline = [GMSPolyline polylineWithPath:texturePath]; + gradientTexturePolyline.strokeWidth = kStrokeWidth * 1.5; + gradientTexturePolyline.spans = @[ [GMSStyleSpan spanWithStyle:gradientStroke] ]; + gradientTexturePolyline.zIndex = 1; + gradientTexturePolyline.map = map; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h new file mode 100755 index 00000000..4e655fc5 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m new file mode 100755 index 00000000..d105a9c8 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StructuredGeocoderViewController.m @@ -0,0 +1,91 @@ +/* + * Copyright 2016 Google LLC. 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 "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. + __weak __typeof__(self) weakSelf = self; + GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response, NSError *error) { + [weakSelf handleResponse:response coordinate:coordinate error:error]; + }; + [_geocoder reverseGeocodeCoordinate:coordinate completionHandler:handler]; +} + +#pragma mark - StructuredGeocoderViewController Private Category + +- (void)handleResponse:(nullable GMSReverseGeocodeResponse *)response + coordinate:(CLLocationCoordinate2D)coordinate + error:(nullable 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); + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h new file mode 100755 index 00000000..c744eb51 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m new file mode 100755 index 00000000..46b74002 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/StyledMapViewController.m @@ -0,0 +1,122 @@ +/* + * Copyright 2016 Google LLC. 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 "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"; + +@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:UIBarButtonItemStylePlain + target:self + action:@selector(changeMapStyle:)]; + self.navigationItem.rightBarButtonItem = styleButton; + self.navigationItem.title = kRetroType; +} + +- (UIAlertAction *_Nonnull)actionWithTitle:(nonnull NSString *)title + style:(nullable GMSMapStyle *)style { + __weak __typeof__(self) weakSelf = self; + return [UIAlertAction actionWithTitle:title + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *_Nonnull action) { + __strong __typeof__(self) strongSelf = weakSelf; + if (strongSelf) { + strongSelf->_mapView.mapStyle = style; + strongSelf.navigationItem.title = title; + } + }]; +} + +- (void)changeMapStyle:(UIBarButtonItem *)sender { + UIAlertController *alert = + [UIAlertController alertControllerWithTitle:@"Select map style" + message:nil + preferredStyle:UIAlertControllerStyleActionSheet]; + [alert addAction:[self actionWithTitle:kRetroType style:_retroStyle]]; + [alert addAction:[self actionWithTitle:kGrayscaleType style:_grayscaleStyle]]; + [alert addAction:[self actionWithTitle:kNightType style:_nightStyle]]; + [alert addAction:[self actionWithTitle:kNormalType style:nil]]; + [alert addAction:[self actionWithTitle:kNoPOIsType style:_noPOIsStyle]]; + [alert addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:nil]]; + alert.popoverPresentationController.barButtonItem = sender; + [self presentViewController:alert animated:YES completion:nil]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h new file mode 100755 index 00000000..adc40857 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m new file mode 100755 index 00000000..0eec3fdc --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TileLayerViewController.m @@ -0,0 +1,75 @@ +/* + * Copyright 2016 Google LLC. 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 "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%ld_%lu_%lu_%lu.png", + (long)floor, (unsigned long)zoom, (unsigned long)x, (unsigned long)y]; + return [NSURL URLWithString:url]; + }; + _tileLayer = [GMSURLTileLayer tileLayerWithURLConstructor:urls]; + _tileLayer.map = _mapView; + _floor = floor; + } +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h new file mode 100755 index 00000000..ddbc9c63 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m new file mode 100755 index 00000000..9140c414 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/TrafficMapViewController.m @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Google LLC. 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 "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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h new file mode 100755 index 00000000..1f5c6b05 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.h @@ -0,0 +1,20 @@ +/* + * Copyright 2016 Google LLC. 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/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m new file mode 100755 index 00000000..2116f072 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/Samples/VisibleRegionViewController.m @@ -0,0 +1,74 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/Samples/VisibleRegionViewController.h" + +#import + +static const 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) { + self->_overlay.frame = + CGRectMake(0, size.height - kOverlayHeight, size.width, kOverlayHeight); + self->_mapView.padding = UIEdgeInsetsMake(0, 0, kOverlayHeight, 0); + } else { + self->_overlay.frame = + CGRectMake(0, self->_mapView.bounds.size.height, size.width, 0); + self->_mapView.padding = UIEdgeInsetsZero; + } + }]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.h b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.h new file mode 100755 index 00000000..93161f43 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.h @@ -0,0 +1,26 @@ +/* + * Copyright 2016 Google LLC. 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 + +NS_ASSUME_NONNULL_BEGIN + +@interface UIViewController (GMSToastMessages) + +- (void)gms_showToastWithMessage:(NSString*)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.m new file mode 100755 index 00000000..8e4072c2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/UIViewController+GMSToastMessages.m @@ -0,0 +1,36 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/UIViewController+GMSToastMessages.h" + +@implementation UIViewController (GMSToastMessages) + +- (void)gms_showToastWithMessage:(NSString *)message { + UIAlertController *toast = + [UIAlertController alertControllerWithTitle:nil + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [self presentViewController:toast + animated:YES + completion:^{ + const int kDuration = 2; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, kDuration * NSEC_PER_SEC), + dispatch_get_main_queue(), ^{ + [toast dismissViewControllerAnimated:YES completion:nil]; + }); + }]; +} + +@end diff --git a/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m new file mode 100755 index 00000000..34d59f6c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/GoogleMapsDemos/main.m @@ -0,0 +1,24 @@ +/* + * Copyright 2016 Google LLC. 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 "GoogleMapsDemos/DemoAppDelegate.h" + +int main(int argc, char *argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([DemoAppDelegate class])); + } +} diff --git a/ios/App/Pods/GoogleMaps/Example/Podfile b/ios/App/Pods/GoogleMaps/Example/Podfile new file mode 100755 index 00000000..09251e9b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Example/Podfile @@ -0,0 +1,6 @@ +source 'https://github.com/CocoaPods/Specs.git' + +target 'GoogleMapsDemos' do + platform :ios, '13.0' + pod 'GoogleMaps', '= 7.4.0' +end diff --git a/ios/App/Pods/GoogleMaps/Example/README.GoogleMapsDemos b/ios/App/Pods/GoogleMaps/Example/README.GoogleMapsDemos new file mode 100755 index 00000000..96171d4b --- /dev/null +++ b/ios/App/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 9.0 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/Info.plist new file mode 100644 index 00000000..c3641108 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/Info.plist @@ -0,0 +1,40 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + GoogleMaps.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + LibraryIdentifier + ios-arm64 + LibraryPath + GoogleMaps.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/GoogleMaps b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/GoogleMaps new file mode 100644 index 00000000..668f3a84 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/GoogleMaps differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h new file mode 100755 index 00000000..6c4656e0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h @@ -0,0 +1,32 @@ +// +// GMSAccessibilityLabels.h +// Google Maps SDK for iOS +// +// Copyright 2022 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * 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; + +/** + * Accessibility identifier for the "out of quota" error label. + * + * @related GMSMapView + */ +extern NSString *const kGMSAccessiblityOutOfQuota; diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAddress.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAddress.h new file mode 100755 index 00000000..ba3c546f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSAddress.h @@ -0,0 +1,72 @@ +// +// GMSAddress.h +// Google Maps SDK for iOS +// +// Copyright 2014 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 not be instantiated directly unless under testing circumstances. Obtain an + * instance 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCALayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCALayer.h new file mode 100755 index 00000000..f6ee0d88 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCALayer.h @@ -0,0 +1,20 @@ +// +// GMSCALayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraPosition.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraPosition.h new file mode 100755 index 00000000..d3c3347a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraPosition.h @@ -0,0 +1,158 @@ +// +// GMSCameraPosition.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) + */ +- (instancetype)initWithTarget:(CLLocationCoordinate2D)target + zoom:(float)zoom + bearing:(CLLocationDirection)bearing + viewingAngle:(double)viewingAngle; + +/** + * Convenience initializer 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). + * + * @param target Location on the earth towards which the camera points. + * @param zoom The zoom level near the center of the screen. + */ +- (instancetype)initWithTarget:(CLLocationCoordinate2D)target zoom:(float)zoom; + +/** + * Convenience initializer for GMSCameraPosition for a particular latitidue, longitude 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). + * + * @param latitude The latitude component of the location towards which the camera points. + * @param longitude The latitude component of the location towards which the camera points. + * @param zoom The zoom level near the center of the screen. + */ +- (instancetype)initWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + zoom:(float)zoom; + +/** + * Convenience initializer for GMSCameraPosition, with latitude/longitude and all other camera + * properties as per -initWithTarget:zoom:bearing:viewingAngle:. + * + * @param latitude The latitude component of the location towards which the camera points. + * @param longitude The latitude component of the location 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) + */ +- (instancetype)initWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + 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) CLLocationCoordinate2D target; +@property(nonatomic) float zoom; +@property(nonatomic) CLLocationDirection bearing; +@property(nonatomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraUpdate.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraUpdate.h new file mode 100755 index 00000000..87049fc0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCameraUpdate.h @@ -0,0 +1,99 @@ +// +// GMSCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCircle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCircle.h new file mode 100755 index 00000000..60ea1e56 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCircle.h @@ -0,0 +1,53 @@ +// +// GMSCircle.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" + +NS_ASSUME_NONNULL_BEGIN + +/** A circle on the Earth's surface (spherical cap). */ +@interface GMSCircle : GMSOverlay + +/** Position on Earth of circle center. Ignores invalid positions. */ +@property(nonatomic) CLLocationCoordinate2D position; + +/** Radius of the circle in meters; must be positive. */ +@property(nonatomic) 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) CGFloat strokeWidth; + +/** The color of this circle's outline. The default value is black. */ +@property(nonatomic, nullable) UIColor *strokeColor; + +/** + * The interior of the circle is painted with fillColor. The default value is nil, resulting in no + * fill. + */ +@property(nonatomic, nullable) UIColor *fillColor; + +/** + * Convenience constructor for GMSCircle for a particular position and radius. Other properties will + * have default values. An invalid position will result in an overlay object that cannot be drawn on + * the map. + */ ++ (instancetype)circleWithPosition:(CLLocationCoordinate2D)position + radius:(CLLocationDistance)radius; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h new file mode 100755 index 00000000..c7a797a4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h @@ -0,0 +1,36 @@ +// +// GMSCoordinateBounds+GoogleMaps.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeocoder.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeocoder.h new file mode 100755 index 00000000..2d30a1e6 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeocoder.h @@ -0,0 +1,71 @@ +// +// GMSGeocoder.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSAddress.h" + +@class GMSReverseGeocodeResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** + * \defgroup GeocoderErrorCode GMSGeocoderErrorCode + * @{ + */ + +/** GMSGeocoder error codes, embedded in NSError. */ +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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeometryUtils.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeometryUtils.h new file mode 100755 index 00000000..71137afe --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGeometryUtils.h @@ -0,0 +1,235 @@ +// +// GMSGeometryUtils.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGroundOverlay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGroundOverlay.h new file mode 100755 index 00000000..575962ca --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSGroundOverlay.h @@ -0,0 +1,85 @@ +// +// GMSGroundOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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) 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, nullable) UIImage *icon; + +/** + * Sets the opacity of the ground overlay, between 0 (completely transparent) and 1 (default) + * inclusive. + */ +@property(nonatomic) 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) CLLocationDirection bearing; + +/** + * The 2D bounds on the Earth in which |icon| is drawn. Changing this value will adjust |position| + * accordingly. + */ +@property(nonatomic, 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorBuilding.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorBuilding.h new file mode 100755 index 00000000..af0b6445 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorBuilding.h @@ -0,0 +1,42 @@ +// +// GMSIndoorBuilding.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSIndoorLevel; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorDisplay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorDisplay.h new file mode 100755 index 00000000..29592c30 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorDisplay.h @@ -0,0 +1,66 @@ +// +// GMSIndoorDisplay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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, 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, nullable) GMSIndoorLevel *activeLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorLevel.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorLevel.h new file mode 100755 index 00000000..c518724f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSIndoorLevel.h @@ -0,0 +1,33 @@ +// +// GMSIndoorLevel.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 + +- (instancetype)init NS_UNAVAILABLE; + +/** 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapID.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapID.h new file mode 100755 index 00000000..1ecf536c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapID.h @@ -0,0 +1,29 @@ +// +// GMSMapID.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** An opaque identifier for a custom map configuration. */ +@interface GMSMapID : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Creates a new mapID with the given string value. */ +- (instancetype)initWithIdentifier:(NSString *)identifier NS_DESIGNATED_INITIALIZER; + +/** Creates a new mapID with the given string value. */ ++ (instancetype)mapIDWithIdentifier:(NSString *)identifier + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapLayer.h new file mode 100755 index 00000000..a9ffaead --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapLayer.h @@ -0,0 +1,111 @@ +// +// GMSMapLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) CLLocationDegrees cameraLatitude; +@property(nonatomic) CLLocationDegrees cameraLongitude; +@property(nonatomic) CLLocationDirection cameraBearing; +@property(nonatomic) float cameraZoomLevel; +@property(nonatomic) double cameraViewingAngle; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapStyle.h new file mode 100755 index 00000000..99afd624 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapStyle.h @@ -0,0 +1,55 @@ +// +// GMSMapStyle.h +// Google Maps SDK for iOS +// +// Copyright 2016 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 + +/** + * Calculates a hash value for the given string. + * @param string The string to use to calculate the hash value. + * @return The hash value. + * @note The current implementation uses an MD5 hash, which is sufficient for uniquifying styles. + */ +NSUInteger GMSStyleHashForString(NSString *string); + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView+Animation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView+Animation.h new file mode 100755 index 00000000..d8d52d0c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView+Animation.h @@ -0,0 +1,61 @@ +// +// GMSMapView+Animation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView.h new file mode 100755 index 00000000..fb60b7ad --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMapView.h @@ -0,0 +1,483 @@ +// +// GMSMapView.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSMapLayer.h" + +@class GMSCameraPosition; +@class GMSCameraUpdate; +@class GMSCoordinateBounds; +@class GMSIndoorDisplay; +@class GMSMapID; +@class GMSMapStyle; +@class GMSMapView; +@class GMSMarker; +@class GMSOverlay; +@class GMSProjection; +@class GMSUISettings; + +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 mapView The map view that was tapped. + * @param gesture If YES, this is occurring 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 the My Location Dot is tapped. + * + * @param mapView The map view that was tapped. + * @param location The location of the user when the location dot was tapped. + */ +- (void)mapView:(GMSMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location; + +/** 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 + +/** + * \defgroup MapViewType GMSMapViewType + * @{ + */ + +/** + * Display types for 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), + +}; + +/**@}*/ + +/** + * \defgroup FrameRate GMSFrameRate + * @{ + */ + +/** Rendering frame rates for 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, +}; + +/**@}*/ + +/** + * \defgroup MapViewPaddingAdjustmentBehavior GMSMapViewPaddingAdjustmentBehavior + * @{ + */ + +/** Constants indicating how safe area insets are added to padding. */ +typedef NS_ENUM(NSUInteger, GMSMapViewPaddingAdjustmentBehavior) { + /** Always include the safe area insets in the padding. */ + kGMSMapViewPaddingAdjustmentBehaviorAlways, + + /** + * When the padding value is smaller than the safe area inset for a particular edge, use the safe + * area value for layout, else use padding. + */ + kGMSMapViewPaddingAdjustmentBehaviorAutomatic, + + /** + * Never include the safe area insets in the padding. This was the behavior prior to version 2.5. + */ + kGMSMapViewPaddingAdjustmentBehaviorNever, +}; + +/**@}*/ + +/** + * 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, 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, 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, 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, getter=isTrafficEnabled) BOOL trafficEnabled; + +/** Controls the type of map tiles that should be displayed. Defaults to kGMSTypeNormal. */ +@property(nonatomic) GMSMapViewType mapType; + +/** + * Controls the style of the map. + * + * A non-nil mapStyle will only apply if mapType is Normal. + */ +@property(nonatomic, nullable) GMSMapStyle *mapStyle; + +/** + * Minimum zoom (the farthest the camera may be zoomed out). Defaults to kGMSMinZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, readonly) float minZoom; + +/** + * Maximum zoom (the closest the camera may be to the Earth). Defaults to kGMSMaxZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, 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, 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, getter=isIndoorEnabled) BOOL indoorEnabled; + +/** + * Gets the GMSIndoorDisplay instance which allows to observe or control aspects of indoor data + * display. + */ +@property(nonatomic, readonly) GMSIndoorDisplay *indoorDisplay; + +/** Gets the GMSUISettings object, which controls user interface settings for the map. */ +@property(nonatomic, 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) UIEdgeInsets padding; + +/** + * Controls how safe area insets are added to the padding values. Like padding, safe area insets + * position map controls such as the compass, my location button and floor picker within the device + * safe area. + * + * Defaults to kGMSMapViewPaddingAdjustmentBehaviorAlways. + */ +@property(nonatomic) GMSMapViewPaddingAdjustmentBehavior paddingAdjustmentBehavior; + +/** + * 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 UIAccessibility 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) 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 map view with a frame and camera target. */ ++ (instancetype)mapWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera; + +/** Convenience initializer to build and return a map view with a frame, map ID, and camera target. + */ ++ (instancetype)mapWithFrame:(CGRect)frame + mapID:(GMSMapID *)mapID + camera:(GMSCameraPosition *)camera + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +/** Builds and returns a map view, with a frame and camera target. */ +- (instancetype)initWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera; + +/** Builds and returns a map view with a frame, map ID, and camera target. */ +- (instancetype)initWithFrame:(CGRect)frame + mapID:(GMSMapID *)mapID + 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarker.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarker.h new file mode 100755 index 00000000..6665de2c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarker.h @@ -0,0 +1,155 @@ +// +// GMSMarker.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSMarkerAnimation.h" +#import "GMSOverlay.h" + +@class GMSMarkerLayer; +@class GMSPanoramaView; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) 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, 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, 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) 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) 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) 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) CGPoint infoWindowAnchor; + +/** + * Controls the animation used when this marker is placed on a GMSMapView (default + * kGMSMarkerAnimationNone, no animation). + */ +@property(nonatomic) GMSMarkerAnimation appearAnimation; + +/** Controls whether this marker can be dragged interactively (default NO). */ +@property(nonatomic, 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, 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) CLLocationDegrees rotation; + +/** Sets the opacity of the marker, between 0 (completely transparent) and 1 (default) inclusive. */ +@property(nonatomic) float opacity; + +/** Provides the Core Animation layer for this GMSMarker. */ +@property(nonatomic, 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerAnimation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerAnimation.h new file mode 100755 index 00000000..96763430 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerAnimation.h @@ -0,0 +1,34 @@ +// +// GMSMarkerAnimation.h +// Google Maps SDK for iOS +// +// Copyright 2021 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * \defgroup MarkerAnimation GMSMarkerAnimation + * @{ + */ + +/** Animation types for GMSMarker. */ +typedef NS_ENUM(NSUInteger, GMSMarkerAnimation) { + /** No animation (default). */ + kGMSMarkerAnimationNone = 0, + + /** The marker will pop from its groundAnchor when added. */ + kGMSMarkerAnimationPop, + + /** The marker will fade in when added. */ + kGMSMarkerAnimationFadeIn, +}; + +/**@}*/ + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerLayer.h new file mode 100755 index 00000000..5b023ca1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMarkerLayer.h @@ -0,0 +1,47 @@ +// +// GMSMarkerLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOverlayLayer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSMarkerLayer is a subclass of GMSOverlayLayer, 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 : GMSOverlayLayer + +/** Latitude, part of |position| on GMSMarker. */ +@property(nonatomic) CLLocationDegrees latitude; + +/** Longitude, part of |position| on GMSMarker. */ +@property(nonatomic) CLLocationDegrees longitude; + +/** Rotation, as per GMSMarker. */ +@property(nonatomic) CLLocationDegrees rotation; + +/** Opacity, as per GMSMarker. */ +@property(atomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMutablePath.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMutablePath.h new file mode 100755 index 00000000..dbf74f07 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSMutablePath.h @@ -0,0 +1,59 @@ +// +// GMSMutablePath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSPath.h" + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOrientation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOrientation.h new file mode 100755 index 00000000..f6f471f9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOrientation.h @@ -0,0 +1,50 @@ +// +// GMSOrientation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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. Type used to represent + * the direction in degrees from 0 to 359.9. True north is 0, east is 90, + * south is 180, and west is 270. + */ + 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. A positive value looks up and a negative value looks down. + */ + 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlay.h new file mode 100755 index 00000000..929e04c2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlay.h @@ -0,0 +1,66 @@ +// +// GMSOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSMapView; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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, 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) 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, nullable) id userData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlayLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlayLayer.h new file mode 100755 index 00000000..56fc3d42 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSOverlayLayer.h @@ -0,0 +1,30 @@ +// +// GMSOverlayLayer.h +// Google Maps SDK for iOS +// +// Copyright 2018 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSOverlayLayer is a custom subclass of CALayer, and an abstract baseclass for GMSOverlay layers + * that allow custom animations. + * + * Note that this CALayer or any subclass are 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. + * + * This is an implementation detail and it should not be instantiated directly. + */ +@interface GMSOverlayLayer : CALayer + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanorama.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanorama.h new file mode 100755 index 00000000..fad95519 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanorama.h @@ -0,0 +1,34 @@ +// +// GMSPanorama.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSPanoramaLink; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCamera.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCamera.h new file mode 100755 index 00000000..e20eedca --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCamera.h @@ -0,0 +1,77 @@ +// +// GMSPanoramaCamera.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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, 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, readonly) float zoom; + +/** The camera orientation, which groups together heading and pitch. */ +@property(nonatomic, readonly) GMSOrientation orientation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h new file mode 100755 index 00000000..11360a93 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h @@ -0,0 +1,37 @@ +// +// GMSPanoramaCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLayer.h new file mode 100755 index 00000000..ca1115f4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLayer.h @@ -0,0 +1,57 @@ +// +// GMSPanoramaLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) CLLocationDirection cameraHeading; +@property(nonatomic) double cameraPitch; +@property(nonatomic) float cameraZoom; +@property(nonatomic) double cameraFOV; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLink.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLink.h new file mode 100755 index 00000000..40d458e2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaLink.h @@ -0,0 +1,27 @@ +// +// GMSPanoramaLink.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaService.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaService.h new file mode 100755 index 00000000..6aecdc60 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaService.h @@ -0,0 +1,83 @@ +// +// GMSPanoramaService.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSPanoramaSource.h" + +@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; + +/** + * Similar to requestPanoramaNearCoordinate:callback: but allows specifying the panorama source type + * near the given |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + source:(GMSPanoramaSource)source + callback:(GMSPanoramaCallback)callback; + +/** + * Similar to requestPanoramaNearCoordinate:callback: but allows specifying a search radius (meters) + * and the panorama source type near the given |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source + 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaSource.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaSource.h new file mode 100755 index 00000000..2f57b6b1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaSource.h @@ -0,0 +1,31 @@ +// +// GMSPanoramaSource.h +// Google Maps SDK for iOS +// +// Copyright 2017 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * \defgroup PanoramaSource GMSPanoramaSource + * @{ + */ + +/** + * Source types for Panoramas. Used to specify the source of a StreetView Panorama. + * + * This API is experimental. Results may not always match expectations. + */ +typedef NS_ENUM(NSUInteger, GMSPanoramaSource) { + /** Panoramas of locations either inside or outside. */ + kGMSPanoramaSourceDefault = 0, + + /** Panoramas of locations outside. */ + kGMSPanoramaSourceOutside, +}; + +/**@}*/ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaView.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaView.h new file mode 100755 index 00000000..9c03e515 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPanoramaView.h @@ -0,0 +1,286 @@ +// +// GMSPanoramaView.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOrientation.h" +#import "GMSPanoramaLayer.h" +#import "GMSPanoramaSource.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, 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) 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) 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) BOOL navigationGestures; + +/** + * Controls whether the tappable navigation links are hidden or visible (default). Hidden navigation + * links cannot be tapped. + */ +@property(nonatomic) BOOL navigationLinksHidden; + +/** Controls whether the street name overlays are hidden or visible (default). */ +@property(nonatomic) BOOL streetNamesHidden; + +/** + * Controls the panorama's camera. Setting a new camera here jumps to the new camera value, with no + * animation. + */ +@property(nonatomic) 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; + +/** + * Similar to moveNearCoordinate: but allows specifying a source near |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate source:(GMSPanoramaSource)source; + +/** + * Similar to moveNearCoordinate: but allows specifying a search radius (meters) around + * |coordinate| and a source. + * + * This API is experimental and may not always filter by source. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source; + +/** + * 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; + +/** + * Convenience constructor for GMSPanoramaView, which searches for and displays a GMSPanorama near + * |coordinate|. This performs a similar action to that of moveNearCoordinate:source, and will call + * the same delegate methods. + * + * This API is experimental and may not always filter by source. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame + nearCoordinate:(CLLocationCoordinate2D)coordinate + source:(GMSPanoramaSource)source; +/** + * Convenience constructor for GMSPanoramaView, which searches for and displays a GMSPanorama near + * |coordinate|. This performs a similar action to that of moveNearCoordinate:radius:source, and + * will call the same delegate methods. + * + * This API is experimental and may not always filter by source. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame + nearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPath.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPath.h new file mode 100755 index 00000000..08ce3273 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPath.h @@ -0,0 +1,111 @@ +// +// GMSPath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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; + +/** + * \defgroup LengthKind GMSLengthKind + * @{ + */ + +/** + * GMSLengthKind indicates the type of a length value, which can be geodesic (in meters), rhumb + * length (in meters) and projected length (in GMSMapPoint units). + */ +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 +}; + +/**@}*/ + +/** This category is needed in order to have the declaration of GMSLengthKind after GMSPath. */ +@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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygon.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygon.h new file mode 100755 index 00000000..ce4fff69 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygon.h @@ -0,0 +1,59 @@ +// +// GMSPolygon.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" + +@class GMSPath; +@class GMSPolygonLayer; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) CGFloat strokeWidth; + +/** The color of the polygon outline. Defaults to nil. */ +@property(nonatomic, nullable) UIColor *strokeColor; + +/** The fill color. Defaults to blueColor. */ +@property(nonatomic, nullable) UIColor *fillColor; + +/** Whether this polygon should be rendered with geodesic correction. */ +@property(nonatomic) BOOL geodesic; + +/** Provides the Core Animation layer for this GMSPolygon. */ +@property(nonatomic, readonly) GMSPolygonLayer *layer; + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygonLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygonLayer.h new file mode 100755 index 00000000..926d4c81 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolygonLayer.h @@ -0,0 +1,49 @@ +// +// GMSPolygonLayer.h +// Google Maps SDK for iOS +// +// Copyright 2018 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOverlayLayer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSPolygonLayer is a subclass of GMSOverlayLayer, available on a per-polygon basis, that allows + * animation of several properties of its associated GMSPolygon. + * + * 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 GMSPolygonLayer : GMSOverlayLayer + +/** The width of the polygon outline in screen points. */ +@property(nonatomic) CGFloat strokeWidth; + +/** + * The color of the polygon outline. This is an assign property, there is an expectation for the + * GMSPolygon to own the reference if necessary. + */ +@property(nonatomic, assign, nullable) CGColorRef strokeColor; + +/** + * The fill color. This is an assign property, there is an expectation for the GMSPolygon to own the + * reference if necessary. + */ +@property(nonatomic, assign, nullable) CGColorRef fillColor; + +@end + +extern NSString *const kGMSPolygonLayerStrokeWidth; +extern NSString *const kGMSPolygonLayerStrokeColor; +extern NSString *const kGMSPolygonLayerFillColor; + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolyline.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolyline.h new file mode 100755 index 00000000..bedcc4fb --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSPolyline.h @@ -0,0 +1,55 @@ +// +// GMSPolyline.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" +#import "GMSStyleSpan.h" + +@class GMSPath; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) CGFloat strokeWidth; + +/** The UIColor used to render the polyline. Defaults to [UIColor blueColor]. */ +@property(nonatomic) UIColor *strokeColor; + +/** Whether this line should be rendered with geodesic correction. */ +@property(nonatomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSProjection.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSProjection.h new file mode 100755 index 00000000..33e0029f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSProjection.h @@ -0,0 +1,74 @@ +// +// GMSProjection.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 unless under testing conditions. Instead, obtain + * it 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSServices.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSServices.h new file mode 100755 index 00000000..17e8ec0f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSServices.h @@ -0,0 +1,94 @@ +// +// GMSServices.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Service class for the Google Maps SDK for iOS. + * + * This class is not thread safe. All methods should only be invoked on the main thread. + */ +@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 Cloud Platform 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; + +/** + * Provides your API options to the Google Maps SDK for iOS. Pass an array containing an NSString + * for each option. These options apply to all maps. + * + * This may be called exactly once by your application and must be called before any iOS Maps SDK + * object is initialized. + * + * @return YES if all the APIOptions were successfully provided. + */ ++ (BOOL)provideAPIOptions:(NSArray *)APIOptions; + +/** + * Enables the map to render using Metal instead of OpenGL. + * + * The rendering might look very slightly different between renderers. The default is @c NO and + * value must be updated before the services instance is initialized. + * + * This property must be set from the main thread. + */ ++ (void)setMetalRendererEnabled:(BOOL)enabled; + +/** + * Enables reporting of abnormal SDK terminations such as the app crashes while the SDK is still + * running. This allows Google to improve SDK stability when applicable. The default is @c YES and + * value must be updated before the services instance is initialized. + * + * This property must be set from the main thread. + */ ++ (void)setAbnormalTerminationReportingEnabled:(BOOL)enabled; + +/** + * 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. For example, "1.0.0". */ ++ (NSString *)SDKVersion; + +/** + * Returns the long version for this release of the Google Maps SDK for iOS. For example, "1.0.0 + * (102.1)". + */ ++ (NSString *)SDKLongVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStampStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStampStyle.h new file mode 100755 index 00000000..320df456 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStampStyle.h @@ -0,0 +1,56 @@ +// +// GMSStampStyle.h +// Google Maps SDK for iOS +// +// Copyright 2020 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * The abstract base class for polyline styles that draw a repeating image over a @c GMSStyleSpan. + */ +@interface GMSStampStyle : NSObject + +/** + * The image or texture that will repeated over a stroke. + * Note that this image will be compressed into a square - so for best results have a square image. + * The rendered stamps will be the width of the line that the GMSStrokeStyle is set on. The image + * will be oriented with the top of the image towards the start point, and the bottom of the image + * towards the end point. For example, if the underlying line has two points and the start point is + * directly above the endpoint, the stamp will appear in an upright orientation. + */ +@property(nonatomic, readonly) UIImage *stampImage; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** A polyline style that draws a repeating image over a @c GMSStyleSpan. */ +@interface GMSTextureStyle : GMSStampStyle + +/** + * Returns a texture stamp style with the given image. + * + * @param image A @c UIImage object to use as the stamp image. + * @return An initialized texture stamp style. + */ ++ (instancetype)textureStyleWithImage:(UIImage *)image + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +/** + * Returns an initialized texture stamp style with the given image. + * + * @param image A @c UIImage object to use as the stamp image. + * @return An initialized texture stamp style. + */ +- (instancetype)initWithImage:(UIImage *)image NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStrokeStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStrokeStyle.h new file mode 100755 index 00000000..901535dd --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStrokeStyle.h @@ -0,0 +1,35 @@ +// +// GMSStrokeStyle.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSStampStyle; + +NS_ASSUME_NONNULL_BEGIN + +/** Describes the drawing style for one-dimensional entities such as polylines. */ +@interface GMSStrokeStyle : NSObject + +/** + * A repeated image over the stroke to allow a user to set a 2D texture on top of a stroke. + * If the image has transparent or semi-transparent portions, the underlying stroke color will show + * through in those places. Solid portions of the stamp will completely cover the base stroke. + */ +@property(nonatomic, strong, nullable) GMSStampStyle *stampStyle; + +/** 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStyleSpan.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStyleSpan.h new file mode 100755 index 00000000..2603e464 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSStyleSpan.h @@ -0,0 +1,52 @@ +// +// GMSStyleSpan.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSStrokeStyle.h" + +NS_ASSUME_NONNULL_BEGIN + +/** 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSSyncTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSSyncTileLayer.h new file mode 100755 index 00000000..40541907 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSSyncTileLayer.h @@ -0,0 +1,35 @@ +// +// GMSSyncTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSTileLayer.h new file mode 100755 index 00000000..9af72f75 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSTileLayer.h @@ -0,0 +1,101 @@ +// +// GMSTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 GMSTileOverlay. + */ +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) 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) NSInteger tileSize; + +/** + * Specifies the opacity of the tile layer. This provides a multiplier for the alpha channel of tile + * images. + */ +@property(nonatomic) float opacity; + +/** Specifies whether the tiles should fade in. Default YES. */ +@property(nonatomic) BOOL fadeIn; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSUISettings.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSUISettings.h new file mode 100755 index 00000000..ace96504 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSUISettings.h @@ -0,0 +1,91 @@ +// +// GMSUISettings.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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) 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) 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) 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) 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) 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) 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) BOOL indoorPicker; + +/** + * Controls whether rotate and zoom gestures can be performed off-center and scrolled around + * (default YES). + */ +@property(nonatomic) BOOL allowScrollGesturesDuringRotateOrZoom; + +@end diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSURLTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSURLTileLayer.h new file mode 100755 index 00000000..2618d976 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GMSURLTileLayer.h @@ -0,0 +1,56 @@ +// +// GMSURLTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GoogleMaps.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GoogleMaps.h new file mode 100644 index 00000000..9d1b7257 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Headers/GoogleMaps.h @@ -0,0 +1,46 @@ +#import "GMSIndoorBuilding.h" +#import "GMSIndoorLevel.h" +#import "GMSAccessibilityLabels.h" +#import "GMSAddress.h" +#import "GMSCALayer.h" +#import "GMSCameraPosition.h" +#import "GMSCameraUpdate.h" +#import "GMSCircle.h" +#import "GMSCoordinateBounds+GoogleMaps.h" +#import "GMSGeocoder.h" +#import "GMSGeometryUtils.h" +#import "GMSGroundOverlay.h" +#import "GMSIndoorDisplay.h" +#import "GMSMapID.h" +#import "GMSMapLayer.h" +#import "GMSMapStyle.h" +#import "GMSMapView+Animation.h" +#import "GMSMapView.h" +#import "GMSMarker.h" +#import "GMSMarkerAnimation.h" +#import "GMSMarkerLayer.h" +#import "GMSMutablePath.h" +#import "GMSOrientation.h" +#import "GMSOverlay.h" +#import "GMSOverlayLayer.h" +#import "GMSPanorama.h" +#import "GMSPanoramaCamera.h" +#import "GMSPanoramaCameraUpdate.h" +#import "GMSPanoramaLayer.h" +#import "GMSPanoramaLink.h" +#import "GMSPanoramaService.h" +#import "GMSPanoramaSource.h" +#import "GMSPanoramaView.h" +#import "GMSPath.h" +#import "GMSPolygon.h" +#import "GMSPolygonLayer.h" +#import "GMSPolyline.h" +#import "GMSProjection.h" +#import "GMSServices.h" +#import "GMSStampStyle.h" +#import "GMSStrokeStyle.h" +#import "GMSStyleSpan.h" +#import "GMSSyncTileLayer.h" +#import "GMSTileLayer.h" +#import "GMSUISettings.h" +#import "GMSURLTileLayer.h" diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Modules/module.modulemap new file mode 100644 index 00000000..38ca6666 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Modules/module.modulemap @@ -0,0 +1,23 @@ +framework module GoogleMaps { + umbrella header "GoogleMaps.h" + export * + module * { export * } + link "m" + link "z" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreImage" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "Metal" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car new file mode 100755 index 00000000..fbbf25cd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom new file mode 100755 index 00000000..deaabbc4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom new file mode 100755 index 00000000..3a83243c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom new file mode 100755 index 00000000..2ba69475 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist new file mode 100755 index 00000000..c62ca0f5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car new file mode 100755 index 00000000..53c78e92 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf new file mode 100755 index 00000000..2aca5f5f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png new file mode 100755 index 00000000..852182ef Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png new file mode 100755 index 00000000..be8282a8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png new file mode 100755 index 00000000..680ef5df Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png new file mode 100755 index 00000000..af7815cc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png new file mode 100755 index 00000000..d6e9e8fe Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png new file mode 100755 index 00000000..668d8fe8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib new file mode 100755 index 00000000..748109ba Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib new file mode 100755 index 00000000..b813071c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png new file mode 100755 index 00000000..a3d86c40 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png new file mode 100755 index 00000000..37dcbef3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png new file mode 100755 index 00000000..09129cd2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist new file mode 100755 index 00000000..12ff3f53 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf new file mode 100755 index 00000000..4717d70c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings new file mode 100755 index 00000000..7d5d573b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png new file mode 100755 index 00000000..cec89b6e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png new file mode 100755 index 00000000..7a3d29d0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png new file mode 100755 index 00000000..74eace5e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png new file mode 100755 index 00000000..11fee99e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png new file mode 100755 index 00000000..a73d1d6e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png new file mode 100755 index 00000000..df8c234e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png new file mode 100755 index 00000000..dccbf03d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png new file mode 100755 index 00000000..c09a65f7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png new file mode 100755 index 00000000..379be629 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings new file mode 100755 index 00000000..7fd197d3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings new file mode 100755 index 00000000..c1f92991 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings new file mode 100755 index 00000000..4803e47f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png new file mode 100755 index 00000000..7f7c2fed Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings new file mode 100755 index 00000000..94a75ba8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings new file mode 100755 index 00000000..8030d8f1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings new file mode 100755 index 00000000..5c98926b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings new file mode 100755 index 00000000..d4d625cb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings new file mode 100755 index 00000000..28e15b50 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings new file mode 100755 index 00000000..28e15b50 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings new file mode 100755 index 00000000..8a93b819 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings new file mode 100755 index 00000000..7f18b50c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings new file mode 100755 index 00000000..339bbb98 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings new file mode 100755 index 00000000..7e1faf62 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings new file mode 100755 index 00000000..f121b386 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings new file mode 100755 index 00000000..e73adca3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings new file mode 100755 index 00000000..2eed3af7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png new file mode 100755 index 00000000..c44be9a2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..afe4d23c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..6bbadd2f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..eef5bffc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..fb7a1ed5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..d73437bf Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png new file mode 100755 index 00000000..db933c80 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png new file mode 100755 index 00000000..65fee675 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png new file mode 100755 index 00000000..a765b86d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png new file mode 100755 index 00000000..01a79a69 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png new file mode 100755 index 00000000..90542c30 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png new file mode 100755 index 00000000..21d2e709 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png new file mode 100755 index 00000000..3aaa92b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png new file mode 100755 index 00000000..9cb93b78 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png new file mode 100755 index 00000000..15d18be3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..3d59b085 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..f478c9bd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png new file mode 100755 index 00000000..06a98828 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..db9bc9a2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..44a93a86 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..453bc6ee Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..f0f0e904 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..a60770ca Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png new file mode 100755 index 00000000..bd408df8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..c8c176de Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..c70a31a1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..81b60288 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..f631de5f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..e07bccee Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png new file mode 100755 index 00000000..2bf7984e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png new file mode 100755 index 00000000..565195fb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png new file mode 100755 index 00000000..4be8cb32 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png new file mode 100755 index 00000000..dccdcfd4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png new file mode 100755 index 00000000..ccb840e4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png new file mode 100755 index 00000000..0300f62e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings new file mode 100755 index 00000000..73141967 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings new file mode 100755 index 00000000..d78248fd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings new file mode 100755 index 00000000..1495ebdc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings new file mode 100755 index 00000000..3b9711da Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings new file mode 100755 index 00000000..ee6a254f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings new file mode 100755 index 00000000..ab0f769c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings new file mode 100755 index 00000000..17b3913e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings new file mode 100755 index 00000000..a00271f9 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings new file mode 100755 index 00000000..6d2a46ca Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings new file mode 100755 index 00000000..a3b68054 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings new file mode 100755 index 00000000..21c77cbc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings new file mode 100755 index 00000000..3294963e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png new file mode 100755 index 00000000..23c22ba5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png new file mode 100755 index 00000000..05120207 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings new file mode 100755 index 00000000..55b8a3b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings new file mode 100755 index 00000000..55b8a3b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings new file mode 100755 index 00000000..738f6e1b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings new file mode 100755 index 00000000..709dc67d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png new file mode 100755 index 00000000..b6ba5ec0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png new file mode 100755 index 00000000..08672e68 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png new file mode 100755 index 00000000..ba0b0a55 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png new file mode 100755 index 00000000..6317a5c3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png new file mode 100755 index 00000000..45a66a47 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png new file mode 100755 index 00000000..ed0424b5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png new file mode 100755 index 00000000..b2efb5d4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png new file mode 100755 index 00000000..664e9f65 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png new file mode 100755 index 00000000..dabc3522 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings new file mode 100755 index 00000000..7f1499bb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings new file mode 100755 index 00000000..79508966 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings new file mode 100755 index 00000000..eb0c5f62 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings new file mode 100755 index 00000000..2741a27d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings new file mode 100755 index 00000000..5d3434a6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings new file mode 100755 index 00000000..9fa3dc97 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings new file mode 100755 index 00000000..d6436541 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings new file mode 100755 index 00000000..0e549e1d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings new file mode 100755 index 00000000..19927a81 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings new file mode 100755 index 00000000..c165157d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings new file mode 100755 index 00000000..22f6eb1f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings new file mode 100755 index 00000000..fc14ec8b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings new file mode 100755 index 00000000..eb0695c4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist new file mode 100755 index 00000000..5be3ddfb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png new file mode 100755 index 00000000..c8e4a419 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png new file mode 100755 index 00000000..3e8fdcae Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png new file mode 100755 index 00000000..1d8aee7b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png new file mode 100755 index 00000000..61897145 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png new file mode 100755 index 00000000..8abc3f78 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png new file mode 100755 index 00000000..7c35f064 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png new file mode 100755 index 00000000..c74eda99 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png new file mode 100755 index 00000000..a640b5ac Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png new file mode 100755 index 00000000..a4ecc4ba Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz new file mode 100755 index 00000000..10549273 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/GoogleMaps b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/GoogleMaps new file mode 100644 index 00000000..6c0b9db9 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/GoogleMaps differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h new file mode 100755 index 00000000..6c4656e0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAccessibilityLabels.h @@ -0,0 +1,32 @@ +// +// GMSAccessibilityLabels.h +// Google Maps SDK for iOS +// +// Copyright 2022 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * 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; + +/** + * Accessibility identifier for the "out of quota" error label. + * + * @related GMSMapView + */ +extern NSString *const kGMSAccessiblityOutOfQuota; diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAddress.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAddress.h new file mode 100755 index 00000000..ba3c546f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSAddress.h @@ -0,0 +1,72 @@ +// +// GMSAddress.h +// Google Maps SDK for iOS +// +// Copyright 2014 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 not be instantiated directly unless under testing circumstances. Obtain an + * instance 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCALayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCALayer.h new file mode 100755 index 00000000..f6ee0d88 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCALayer.h @@ -0,0 +1,20 @@ +// +// GMSCALayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraPosition.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraPosition.h new file mode 100755 index 00000000..d3c3347a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraPosition.h @@ -0,0 +1,158 @@ +// +// GMSCameraPosition.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) + */ +- (instancetype)initWithTarget:(CLLocationCoordinate2D)target + zoom:(float)zoom + bearing:(CLLocationDirection)bearing + viewingAngle:(double)viewingAngle; + +/** + * Convenience initializer 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). + * + * @param target Location on the earth towards which the camera points. + * @param zoom The zoom level near the center of the screen. + */ +- (instancetype)initWithTarget:(CLLocationCoordinate2D)target zoom:(float)zoom; + +/** + * Convenience initializer for GMSCameraPosition for a particular latitidue, longitude 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). + * + * @param latitude The latitude component of the location towards which the camera points. + * @param longitude The latitude component of the location towards which the camera points. + * @param zoom The zoom level near the center of the screen. + */ +- (instancetype)initWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + zoom:(float)zoom; + +/** + * Convenience initializer for GMSCameraPosition, with latitude/longitude and all other camera + * properties as per -initWithTarget:zoom:bearing:viewingAngle:. + * + * @param latitude The latitude component of the location towards which the camera points. + * @param longitude The latitude component of the location 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) + */ +- (instancetype)initWithLatitude:(CLLocationDegrees)latitude + longitude:(CLLocationDegrees)longitude + 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) CLLocationCoordinate2D target; +@property(nonatomic) float zoom; +@property(nonatomic) CLLocationDirection bearing; +@property(nonatomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraUpdate.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraUpdate.h new file mode 100755 index 00000000..87049fc0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCameraUpdate.h @@ -0,0 +1,99 @@ +// +// GMSCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCircle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCircle.h new file mode 100755 index 00000000..60ea1e56 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCircle.h @@ -0,0 +1,53 @@ +// +// GMSCircle.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" + +NS_ASSUME_NONNULL_BEGIN + +/** A circle on the Earth's surface (spherical cap). */ +@interface GMSCircle : GMSOverlay + +/** Position on Earth of circle center. Ignores invalid positions. */ +@property(nonatomic) CLLocationCoordinate2D position; + +/** Radius of the circle in meters; must be positive. */ +@property(nonatomic) 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) CGFloat strokeWidth; + +/** The color of this circle's outline. The default value is black. */ +@property(nonatomic, nullable) UIColor *strokeColor; + +/** + * The interior of the circle is painted with fillColor. The default value is nil, resulting in no + * fill. + */ +@property(nonatomic, nullable) UIColor *fillColor; + +/** + * Convenience constructor for GMSCircle for a particular position and radius. Other properties will + * have default values. An invalid position will result in an overlay object that cannot be drawn on + * the map. + */ ++ (instancetype)circleWithPosition:(CLLocationCoordinate2D)position + radius:(CLLocationDistance)radius; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h new file mode 100755 index 00000000..c7a797a4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSCoordinateBounds+GoogleMaps.h @@ -0,0 +1,36 @@ +// +// GMSCoordinateBounds+GoogleMaps.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeocoder.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeocoder.h new file mode 100755 index 00000000..2d30a1e6 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeocoder.h @@ -0,0 +1,71 @@ +// +// GMSGeocoder.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSAddress.h" + +@class GMSReverseGeocodeResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** + * \defgroup GeocoderErrorCode GMSGeocoderErrorCode + * @{ + */ + +/** GMSGeocoder error codes, embedded in NSError. */ +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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeometryUtils.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeometryUtils.h new file mode 100755 index 00000000..71137afe --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGeometryUtils.h @@ -0,0 +1,235 @@ +// +// GMSGeometryUtils.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGroundOverlay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGroundOverlay.h new file mode 100755 index 00000000..575962ca --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSGroundOverlay.h @@ -0,0 +1,85 @@ +// +// GMSGroundOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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) 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, nullable) UIImage *icon; + +/** + * Sets the opacity of the ground overlay, between 0 (completely transparent) and 1 (default) + * inclusive. + */ +@property(nonatomic) 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) CLLocationDirection bearing; + +/** + * The 2D bounds on the Earth in which |icon| is drawn. Changing this value will adjust |position| + * accordingly. + */ +@property(nonatomic, 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorBuilding.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorBuilding.h new file mode 100755 index 00000000..af0b6445 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorBuilding.h @@ -0,0 +1,42 @@ +// +// GMSIndoorBuilding.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSIndoorLevel; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorDisplay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorDisplay.h new file mode 100755 index 00000000..29592c30 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorDisplay.h @@ -0,0 +1,66 @@ +// +// GMSIndoorDisplay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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, 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, nullable) GMSIndoorLevel *activeLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorLevel.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorLevel.h new file mode 100755 index 00000000..c518724f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSIndoorLevel.h @@ -0,0 +1,33 @@ +// +// GMSIndoorLevel.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 + +- (instancetype)init NS_UNAVAILABLE; + +/** 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapID.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapID.h new file mode 100755 index 00000000..1ecf536c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapID.h @@ -0,0 +1,29 @@ +// +// GMSMapID.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** An opaque identifier for a custom map configuration. */ +@interface GMSMapID : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Creates a new mapID with the given string value. */ +- (instancetype)initWithIdentifier:(NSString *)identifier NS_DESIGNATED_INITIALIZER; + +/** Creates a new mapID with the given string value. */ ++ (instancetype)mapIDWithIdentifier:(NSString *)identifier + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapLayer.h new file mode 100755 index 00000000..a9ffaead --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapLayer.h @@ -0,0 +1,111 @@ +// +// GMSMapLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) CLLocationDegrees cameraLatitude; +@property(nonatomic) CLLocationDegrees cameraLongitude; +@property(nonatomic) CLLocationDirection cameraBearing; +@property(nonatomic) float cameraZoomLevel; +@property(nonatomic) double cameraViewingAngle; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapStyle.h new file mode 100755 index 00000000..99afd624 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapStyle.h @@ -0,0 +1,55 @@ +// +// GMSMapStyle.h +// Google Maps SDK for iOS +// +// Copyright 2016 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 + +/** + * Calculates a hash value for the given string. + * @param string The string to use to calculate the hash value. + * @return The hash value. + * @note The current implementation uses an MD5 hash, which is sufficient for uniquifying styles. + */ +NSUInteger GMSStyleHashForString(NSString *string); + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView+Animation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView+Animation.h new file mode 100755 index 00000000..d8d52d0c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView+Animation.h @@ -0,0 +1,61 @@ +// +// GMSMapView+Animation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView.h new file mode 100755 index 00000000..fb60b7ad --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMapView.h @@ -0,0 +1,483 @@ +// +// GMSMapView.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + + +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#if __has_feature(modules) +@import GoogleMapsBase; +#else +#import +#endif +#import "GMSMapLayer.h" + +@class GMSCameraPosition; +@class GMSCameraUpdate; +@class GMSCoordinateBounds; +@class GMSIndoorDisplay; +@class GMSMapID; +@class GMSMapStyle; +@class GMSMapView; +@class GMSMarker; +@class GMSOverlay; +@class GMSProjection; +@class GMSUISettings; + +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 mapView The map view that was tapped. + * @param gesture If YES, this is occurring 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 the My Location Dot is tapped. + * + * @param mapView The map view that was tapped. + * @param location The location of the user when the location dot was tapped. + */ +- (void)mapView:(GMSMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location; + +/** 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 + +/** + * \defgroup MapViewType GMSMapViewType + * @{ + */ + +/** + * Display types for 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), + +}; + +/**@}*/ + +/** + * \defgroup FrameRate GMSFrameRate + * @{ + */ + +/** Rendering frame rates for 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, +}; + +/**@}*/ + +/** + * \defgroup MapViewPaddingAdjustmentBehavior GMSMapViewPaddingAdjustmentBehavior + * @{ + */ + +/** Constants indicating how safe area insets are added to padding. */ +typedef NS_ENUM(NSUInteger, GMSMapViewPaddingAdjustmentBehavior) { + /** Always include the safe area insets in the padding. */ + kGMSMapViewPaddingAdjustmentBehaviorAlways, + + /** + * When the padding value is smaller than the safe area inset for a particular edge, use the safe + * area value for layout, else use padding. + */ + kGMSMapViewPaddingAdjustmentBehaviorAutomatic, + + /** + * Never include the safe area insets in the padding. This was the behavior prior to version 2.5. + */ + kGMSMapViewPaddingAdjustmentBehaviorNever, +}; + +/**@}*/ + +/** + * 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, 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, 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, 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, getter=isTrafficEnabled) BOOL trafficEnabled; + +/** Controls the type of map tiles that should be displayed. Defaults to kGMSTypeNormal. */ +@property(nonatomic) GMSMapViewType mapType; + +/** + * Controls the style of the map. + * + * A non-nil mapStyle will only apply if mapType is Normal. + */ +@property(nonatomic, nullable) GMSMapStyle *mapStyle; + +/** + * Minimum zoom (the farthest the camera may be zoomed out). Defaults to kGMSMinZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, readonly) float minZoom; + +/** + * Maximum zoom (the closest the camera may be to the Earth). Defaults to kGMSMaxZoomLevel. Modified + * with -setMinZoom:maxZoom:. + */ +@property(nonatomic, 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, 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, getter=isIndoorEnabled) BOOL indoorEnabled; + +/** + * Gets the GMSIndoorDisplay instance which allows to observe or control aspects of indoor data + * display. + */ +@property(nonatomic, readonly) GMSIndoorDisplay *indoorDisplay; + +/** Gets the GMSUISettings object, which controls user interface settings for the map. */ +@property(nonatomic, 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) UIEdgeInsets padding; + +/** + * Controls how safe area insets are added to the padding values. Like padding, safe area insets + * position map controls such as the compass, my location button and floor picker within the device + * safe area. + * + * Defaults to kGMSMapViewPaddingAdjustmentBehaviorAlways. + */ +@property(nonatomic) GMSMapViewPaddingAdjustmentBehavior paddingAdjustmentBehavior; + +/** + * 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 UIAccessibility 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) 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 map view with a frame and camera target. */ ++ (instancetype)mapWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera; + +/** Convenience initializer to build and return a map view with a frame, map ID, and camera target. + */ ++ (instancetype)mapWithFrame:(CGRect)frame + mapID:(GMSMapID *)mapID + camera:(GMSCameraPosition *)camera + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +/** Builds and returns a map view, with a frame and camera target. */ +- (instancetype)initWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera; + +/** Builds and returns a map view with a frame, map ID, and camera target. */ +- (instancetype)initWithFrame:(CGRect)frame + mapID:(GMSMapID *)mapID + 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarker.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarker.h new file mode 100755 index 00000000..6665de2c --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarker.h @@ -0,0 +1,155 @@ +// +// GMSMarker.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSMarkerAnimation.h" +#import "GMSOverlay.h" + +@class GMSMarkerLayer; +@class GMSPanoramaView; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) 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, 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, 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) 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) 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) 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) CGPoint infoWindowAnchor; + +/** + * Controls the animation used when this marker is placed on a GMSMapView (default + * kGMSMarkerAnimationNone, no animation). + */ +@property(nonatomic) GMSMarkerAnimation appearAnimation; + +/** Controls whether this marker can be dragged interactively (default NO). */ +@property(nonatomic, 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, 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) CLLocationDegrees rotation; + +/** Sets the opacity of the marker, between 0 (completely transparent) and 1 (default) inclusive. */ +@property(nonatomic) float opacity; + +/** Provides the Core Animation layer for this GMSMarker. */ +@property(nonatomic, 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerAnimation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerAnimation.h new file mode 100755 index 00000000..96763430 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerAnimation.h @@ -0,0 +1,34 @@ +// +// GMSMarkerAnimation.h +// Google Maps SDK for iOS +// +// Copyright 2021 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * \defgroup MarkerAnimation GMSMarkerAnimation + * @{ + */ + +/** Animation types for GMSMarker. */ +typedef NS_ENUM(NSUInteger, GMSMarkerAnimation) { + /** No animation (default). */ + kGMSMarkerAnimationNone = 0, + + /** The marker will pop from its groundAnchor when added. */ + kGMSMarkerAnimationPop, + + /** The marker will fade in when added. */ + kGMSMarkerAnimationFadeIn, +}; + +/**@}*/ + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerLayer.h new file mode 100755 index 00000000..5b023ca1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMarkerLayer.h @@ -0,0 +1,47 @@ +// +// GMSMarkerLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOverlayLayer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSMarkerLayer is a subclass of GMSOverlayLayer, 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 : GMSOverlayLayer + +/** Latitude, part of |position| on GMSMarker. */ +@property(nonatomic) CLLocationDegrees latitude; + +/** Longitude, part of |position| on GMSMarker. */ +@property(nonatomic) CLLocationDegrees longitude; + +/** Rotation, as per GMSMarker. */ +@property(nonatomic) CLLocationDegrees rotation; + +/** Opacity, as per GMSMarker. */ +@property(atomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMutablePath.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMutablePath.h new file mode 100755 index 00000000..dbf74f07 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSMutablePath.h @@ -0,0 +1,59 @@ +// +// GMSMutablePath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSPath.h" + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOrientation.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOrientation.h new file mode 100755 index 00000000..f6f471f9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOrientation.h @@ -0,0 +1,50 @@ +// +// GMSOrientation.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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. Type used to represent + * the direction in degrees from 0 to 359.9. True north is 0, east is 90, + * south is 180, and west is 270. + */ + 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. A positive value looks up and a negative value looks down. + */ + 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlay.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlay.h new file mode 100755 index 00000000..929e04c2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlay.h @@ -0,0 +1,66 @@ +// +// GMSOverlay.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSMapView; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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, 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) 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, nullable) id userData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlayLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlayLayer.h new file mode 100755 index 00000000..56fc3d42 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSOverlayLayer.h @@ -0,0 +1,30 @@ +// +// GMSOverlayLayer.h +// Google Maps SDK for iOS +// +// Copyright 2018 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSOverlayLayer is a custom subclass of CALayer, and an abstract baseclass for GMSOverlay layers + * that allow custom animations. + * + * Note that this CALayer or any subclass are 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. + * + * This is an implementation detail and it should not be instantiated directly. + */ +@interface GMSOverlayLayer : CALayer + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanorama.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanorama.h new file mode 100755 index 00000000..fad95519 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanorama.h @@ -0,0 +1,34 @@ +// +// GMSPanorama.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSPanoramaLink; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCamera.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCamera.h new file mode 100755 index 00000000..e20eedca --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCamera.h @@ -0,0 +1,77 @@ +// +// GMSPanoramaCamera.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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, 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, readonly) float zoom; + +/** The camera orientation, which groups together heading and pitch. */ +@property(nonatomic, readonly) GMSOrientation orientation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h new file mode 100755 index 00000000..11360a93 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaCameraUpdate.h @@ -0,0 +1,37 @@ +// +// GMSPanoramaCameraUpdate.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLayer.h new file mode 100755 index 00000000..ca1115f4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLayer.h @@ -0,0 +1,57 @@ +// +// GMSPanoramaLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) CLLocationDirection cameraHeading; +@property(nonatomic) double cameraPitch; +@property(nonatomic) float cameraZoom; +@property(nonatomic) double cameraFOV; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLink.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLink.h new file mode 100755 index 00000000..40d458e2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaLink.h @@ -0,0 +1,27 @@ +// +// GMSPanoramaLink.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaService.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaService.h new file mode 100755 index 00000000..6aecdc60 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaService.h @@ -0,0 +1,83 @@ +// +// GMSPanoramaService.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSPanoramaSource.h" + +@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; + +/** + * Similar to requestPanoramaNearCoordinate:callback: but allows specifying the panorama source type + * near the given |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + source:(GMSPanoramaSource)source + callback:(GMSPanoramaCallback)callback; + +/** + * Similar to requestPanoramaNearCoordinate:callback: but allows specifying a search radius (meters) + * and the panorama source type near the given |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source + 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaSource.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaSource.h new file mode 100755 index 00000000..2f57b6b1 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaSource.h @@ -0,0 +1,31 @@ +// +// GMSPanoramaSource.h +// Google Maps SDK for iOS +// +// Copyright 2017 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +/** + * \defgroup PanoramaSource GMSPanoramaSource + * @{ + */ + +/** + * Source types for Panoramas. Used to specify the source of a StreetView Panorama. + * + * This API is experimental. Results may not always match expectations. + */ +typedef NS_ENUM(NSUInteger, GMSPanoramaSource) { + /** Panoramas of locations either inside or outside. */ + kGMSPanoramaSourceDefault = 0, + + /** Panoramas of locations outside. */ + kGMSPanoramaSourceOutside, +}; + +/**@}*/ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaView.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaView.h new file mode 100755 index 00000000..9c03e515 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPanoramaView.h @@ -0,0 +1,286 @@ +// +// GMSPanoramaView.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOrientation.h" +#import "GMSPanoramaLayer.h" +#import "GMSPanoramaSource.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, 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) 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) 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) BOOL navigationGestures; + +/** + * Controls whether the tappable navigation links are hidden or visible (default). Hidden navigation + * links cannot be tapped. + */ +@property(nonatomic) BOOL navigationLinksHidden; + +/** Controls whether the street name overlays are hidden or visible (default). */ +@property(nonatomic) BOOL streetNamesHidden; + +/** + * Controls the panorama's camera. Setting a new camera here jumps to the new camera value, with no + * animation. + */ +@property(nonatomic) 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; + +/** + * Similar to moveNearCoordinate: but allows specifying a source near |coordinate|. + * + * This API is experimental and may not always filter by source. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate source:(GMSPanoramaSource)source; + +/** + * Similar to moveNearCoordinate: but allows specifying a search radius (meters) around + * |coordinate| and a source. + * + * This API is experimental and may not always filter by source. + */ +- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source; + +/** + * 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; + +/** + * Convenience constructor for GMSPanoramaView, which searches for and displays a GMSPanorama near + * |coordinate|. This performs a similar action to that of moveNearCoordinate:source, and will call + * the same delegate methods. + * + * This API is experimental and may not always filter by source. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame + nearCoordinate:(CLLocationCoordinate2D)coordinate + source:(GMSPanoramaSource)source; +/** + * Convenience constructor for GMSPanoramaView, which searches for and displays a GMSPanorama near + * |coordinate|. This performs a similar action to that of moveNearCoordinate:radius:source, and + * will call the same delegate methods. + * + * This API is experimental and may not always filter by source. + */ ++ (instancetype)panoramaWithFrame:(CGRect)frame + nearCoordinate:(CLLocationCoordinate2D)coordinate + radius:(NSUInteger)radius + source:(GMSPanoramaSource)source; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPath.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPath.h new file mode 100755 index 00000000..08ce3273 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPath.h @@ -0,0 +1,111 @@ +// +// GMSPath.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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; + +/** + * \defgroup LengthKind GMSLengthKind + * @{ + */ + +/** + * GMSLengthKind indicates the type of a length value, which can be geodesic (in meters), rhumb + * length (in meters) and projected length (in GMSMapPoint units). + */ +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 +}; + +/**@}*/ + +/** This category is needed in order to have the declaration of GMSLengthKind after GMSPath. */ +@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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygon.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygon.h new file mode 100755 index 00000000..ce4fff69 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygon.h @@ -0,0 +1,59 @@ +// +// GMSPolygon.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" + +@class GMSPath; +@class GMSPolygonLayer; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) CGFloat strokeWidth; + +/** The color of the polygon outline. Defaults to nil. */ +@property(nonatomic, nullable) UIColor *strokeColor; + +/** The fill color. Defaults to blueColor. */ +@property(nonatomic, nullable) UIColor *fillColor; + +/** Whether this polygon should be rendered with geodesic correction. */ +@property(nonatomic) BOOL geodesic; + +/** Provides the Core Animation layer for this GMSPolygon. */ +@property(nonatomic, readonly) GMSPolygonLayer *layer; + +/** + * 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygonLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygonLayer.h new file mode 100755 index 00000000..926d4c81 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolygonLayer.h @@ -0,0 +1,49 @@ +// +// GMSPolygonLayer.h +// Google Maps SDK for iOS +// +// Copyright 2018 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import +#import + +#import "GMSOverlayLayer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * GMSPolygonLayer is a subclass of GMSOverlayLayer, available on a per-polygon basis, that allows + * animation of several properties of its associated GMSPolygon. + * + * 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 GMSPolygonLayer : GMSOverlayLayer + +/** The width of the polygon outline in screen points. */ +@property(nonatomic) CGFloat strokeWidth; + +/** + * The color of the polygon outline. This is an assign property, there is an expectation for the + * GMSPolygon to own the reference if necessary. + */ +@property(nonatomic, assign, nullable) CGColorRef strokeColor; + +/** + * The fill color. This is an assign property, there is an expectation for the GMSPolygon to own the + * reference if necessary. + */ +@property(nonatomic, assign, nullable) CGColorRef fillColor; + +@end + +extern NSString *const kGMSPolygonLayerStrokeWidth; +extern NSString *const kGMSPolygonLayerStrokeColor; +extern NSString *const kGMSPolygonLayerFillColor; + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolyline.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolyline.h new file mode 100755 index 00000000..bedcc4fb --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSPolyline.h @@ -0,0 +1,55 @@ +// +// GMSPolyline.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSOverlay.h" +#import "GMSStyleSpan.h" + +@class GMSPath; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 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) CGFloat strokeWidth; + +/** The UIColor used to render the polyline. Defaults to [UIColor blueColor]. */ +@property(nonatomic) UIColor *strokeColor; + +/** Whether this line should be rendered with geodesic correction. */ +@property(nonatomic) 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSProjection.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSProjection.h new file mode 100755 index 00000000..33e0029f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSProjection.h @@ -0,0 +1,74 @@ +// +// GMSProjection.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 unless under testing conditions. Instead, obtain + * it 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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSServices.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSServices.h new file mode 100755 index 00000000..17e8ec0f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSServices.h @@ -0,0 +1,94 @@ +// +// GMSServices.h +// Google Maps SDK for iOS +// +// Copyright 2012 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Service class for the Google Maps SDK for iOS. + * + * This class is not thread safe. All methods should only be invoked on the main thread. + */ +@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 Cloud Platform 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; + +/** + * Provides your API options to the Google Maps SDK for iOS. Pass an array containing an NSString + * for each option. These options apply to all maps. + * + * This may be called exactly once by your application and must be called before any iOS Maps SDK + * object is initialized. + * + * @return YES if all the APIOptions were successfully provided. + */ ++ (BOOL)provideAPIOptions:(NSArray *)APIOptions; + +/** + * Enables the map to render using Metal instead of OpenGL. + * + * The rendering might look very slightly different between renderers. The default is @c NO and + * value must be updated before the services instance is initialized. + * + * This property must be set from the main thread. + */ ++ (void)setMetalRendererEnabled:(BOOL)enabled; + +/** + * Enables reporting of abnormal SDK terminations such as the app crashes while the SDK is still + * running. This allows Google to improve SDK stability when applicable. The default is @c YES and + * value must be updated before the services instance is initialized. + * + * This property must be set from the main thread. + */ ++ (void)setAbnormalTerminationReportingEnabled:(BOOL)enabled; + +/** + * 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. For example, "1.0.0". */ ++ (NSString *)SDKVersion; + +/** + * Returns the long version for this release of the Google Maps SDK for iOS. For example, "1.0.0 + * (102.1)". + */ ++ (NSString *)SDKLongVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStampStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStampStyle.h new file mode 100755 index 00000000..320df456 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStampStyle.h @@ -0,0 +1,56 @@ +// +// GMSStampStyle.h +// Google Maps SDK for iOS +// +// Copyright 2020 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * The abstract base class for polyline styles that draw a repeating image over a @c GMSStyleSpan. + */ +@interface GMSStampStyle : NSObject + +/** + * The image or texture that will repeated over a stroke. + * Note that this image will be compressed into a square - so for best results have a square image. + * The rendered stamps will be the width of the line that the GMSStrokeStyle is set on. The image + * will be oriented with the top of the image towards the start point, and the bottom of the image + * towards the end point. For example, if the underlying line has two points and the start point is + * directly above the endpoint, the stamp will appear in an upright orientation. + */ +@property(nonatomic, readonly) UIImage *stampImage; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +/** A polyline style that draws a repeating image over a @c GMSStyleSpan. */ +@interface GMSTextureStyle : GMSStampStyle + +/** + * Returns a texture stamp style with the given image. + * + * @param image A @c UIImage object to use as the stamp image. + * @return An initialized texture stamp style. + */ ++ (instancetype)textureStyleWithImage:(UIImage *)image + NS_SWIFT_UNAVAILABLE("Use initializer instead"); + +/** + * Returns an initialized texture stamp style with the given image. + * + * @param image A @c UIImage object to use as the stamp image. + * @return An initialized texture stamp style. + */ +- (instancetype)initWithImage:(UIImage *)image NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStrokeStyle.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStrokeStyle.h new file mode 100755 index 00000000..901535dd --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStrokeStyle.h @@ -0,0 +1,35 @@ +// +// GMSStrokeStyle.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +@class GMSStampStyle; + +NS_ASSUME_NONNULL_BEGIN + +/** Describes the drawing style for one-dimensional entities such as polylines. */ +@interface GMSStrokeStyle : NSObject + +/** + * A repeated image over the stroke to allow a user to set a 2D texture on top of a stroke. + * If the image has transparent or semi-transparent portions, the underlying stroke color will show + * through in those places. Solid portions of the stamp will completely cover the base stroke. + */ +@property(nonatomic, strong, nullable) GMSStampStyle *stampStyle; + +/** 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStyleSpan.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStyleSpan.h new file mode 100755 index 00000000..2603e464 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSStyleSpan.h @@ -0,0 +1,52 @@ +// +// GMSStyleSpan.h +// Google Maps SDK for iOS +// +// Copyright 2019 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/terms +// + +#import + +#import "GMSStrokeStyle.h" + +NS_ASSUME_NONNULL_BEGIN + +/** 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 + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSSyncTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSSyncTileLayer.h new file mode 100755 index 00000000..40541907 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSSyncTileLayer.h @@ -0,0 +1,35 @@ +// +// GMSSyncTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSTileLayer.h new file mode 100755 index 00000000..9af72f75 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSTileLayer.h @@ -0,0 +1,101 @@ +// +// GMSTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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 GMSTileOverlay. + */ +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) 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) NSInteger tileSize; + +/** + * Specifies the opacity of the tile layer. This provides a multiplier for the alpha channel of tile + * images. + */ +@property(nonatomic) float opacity; + +/** Specifies whether the tiles should fade in. Default YES. */ +@property(nonatomic) BOOL fadeIn; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSUISettings.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSUISettings.h new file mode 100755 index 00000000..ace96504 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSUISettings.h @@ -0,0 +1,91 @@ +// +// GMSUISettings.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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) 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) 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) 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) 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) 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) 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) 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) BOOL indoorPicker; + +/** + * Controls whether rotate and zoom gestures can be performed off-center and scrolled around + * (default YES). + */ +@property(nonatomic) BOOL allowScrollGesturesDuringRotateOrZoom; + +@end diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSURLTileLayer.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSURLTileLayer.h new file mode 100755 index 00000000..2618d976 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GMSURLTileLayer.h @@ -0,0 +1,56 @@ +// +// GMSURLTileLayer.h +// Google Maps SDK for iOS +// +// Copyright 2013 Google LLC +// +// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of +// Service: https://cloud.google.com/maps-platform/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/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GoogleMaps.h b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GoogleMaps.h new file mode 100644 index 00000000..9d1b7257 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Headers/GoogleMaps.h @@ -0,0 +1,46 @@ +#import "GMSIndoorBuilding.h" +#import "GMSIndoorLevel.h" +#import "GMSAccessibilityLabels.h" +#import "GMSAddress.h" +#import "GMSCALayer.h" +#import "GMSCameraPosition.h" +#import "GMSCameraUpdate.h" +#import "GMSCircle.h" +#import "GMSCoordinateBounds+GoogleMaps.h" +#import "GMSGeocoder.h" +#import "GMSGeometryUtils.h" +#import "GMSGroundOverlay.h" +#import "GMSIndoorDisplay.h" +#import "GMSMapID.h" +#import "GMSMapLayer.h" +#import "GMSMapStyle.h" +#import "GMSMapView+Animation.h" +#import "GMSMapView.h" +#import "GMSMarker.h" +#import "GMSMarkerAnimation.h" +#import "GMSMarkerLayer.h" +#import "GMSMutablePath.h" +#import "GMSOrientation.h" +#import "GMSOverlay.h" +#import "GMSOverlayLayer.h" +#import "GMSPanorama.h" +#import "GMSPanoramaCamera.h" +#import "GMSPanoramaCameraUpdate.h" +#import "GMSPanoramaLayer.h" +#import "GMSPanoramaLink.h" +#import "GMSPanoramaService.h" +#import "GMSPanoramaSource.h" +#import "GMSPanoramaView.h" +#import "GMSPath.h" +#import "GMSPolygon.h" +#import "GMSPolygonLayer.h" +#import "GMSPolyline.h" +#import "GMSProjection.h" +#import "GMSServices.h" +#import "GMSStampStyle.h" +#import "GMSStrokeStyle.h" +#import "GMSStyleSpan.h" +#import "GMSSyncTileLayer.h" +#import "GMSTileLayer.h" +#import "GMSUISettings.h" +#import "GMSURLTileLayer.h" diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Modules/module.modulemap new file mode 100644 index 00000000..38ca6666 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Modules/module.modulemap @@ -0,0 +1,23 @@ +framework module GoogleMaps { + umbrella header "GoogleMaps.h" + export * + module * { export * } + link "m" + link "z" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreImage" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "Metal" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car new file mode 100755 index 00000000..fbbf25cd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Assets.car differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom new file mode 100755 index 00000000..deaabbc4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom new file mode 100755 index 00000000..3a83243c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom new file mode 100755 index 00000000..2ba69475 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileVersionID.mom differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist new file mode 100755 index 00000000..c62ca0f5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car new file mode 100755 index 00000000..53c78e92 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Assets.car differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf new file mode 100755 index 00000000..2aca5f5f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/DroidSansMerged-Regular.ttf differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png new file mode 100755 index 00000000..852182ef Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png new file mode 100755 index 00000000..be8282a8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png new file mode 100755 index 00000000..680ef5df Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavNightModeSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png new file mode 100755 index 00000000..af7815cc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png new file mode 100755 index 00000000..d6e9e8fe Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png new file mode 100755 index 00000000..668d8fe8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSNavSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib new file mode 100755 index 00000000..748109ba Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib new file mode 100755 index 00000000..b813071c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSShadersSim.metallib differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png new file mode 100755 index 00000000..a3d86c40 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-1x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png new file mode 100755 index 00000000..37dcbef3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png new file mode 100755 index 00000000..09129cd2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/GMSSprites-0-3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist new file mode 100755 index 00000000..12ff3f53 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf new file mode 100755 index 00000000..4717d70c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Tharlon-Regular.ttf differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings new file mode 100755 index 00000000..7d5d573b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ar.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png new file mode 100755 index 00000000..cec89b6e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png new file mode 100755 index 00000000..7a3d29d0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png new file mode 100755 index 00000000..74eace5e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_background@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png new file mode 100755 index 00000000..11fee99e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png new file mode 100755 index 00000000..a73d1d6e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png new file mode 100755 index 00000000..df8c234e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png new file mode 100755 index 00000000..dccbf03d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_compass_night@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png new file mode 100755 index 00000000..c09a65f7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png new file mode 100755 index 00000000..379be629 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/button_my_location@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings new file mode 100755 index 00000000..7fd197d3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ca.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings new file mode 100755 index 00000000..c1f92991 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/cs.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings new file mode 100755 index 00000000..4803e47f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/da.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png new file mode 100755 index 00000000..7f7c2fed Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/dav_one_way_16_256.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings new file mode 100755 index 00000000..94a75ba8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/de.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings new file mode 100755 index 00000000..8030d8f1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/el.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings new file mode 100755 index 00000000..5c98926b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_AU.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_GB.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings new file mode 100755 index 00000000..c03b33c7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/en_IN.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings new file mode 100755 index 00000000..d4d625cb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings new file mode 100755 index 00000000..28e15b50 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_419.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings new file mode 100755 index 00000000..28e15b50 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/es_MX.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings new file mode 100755 index 00000000..8a93b819 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings new file mode 100755 index 00000000..7f18b50c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings new file mode 100755 index 00000000..339bbb98 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/fr_CA.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings new file mode 100755 index 00000000..7e1faf62 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/he.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings new file mode 100755 index 00000000..f121b386 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings new file mode 100755 index 00000000..e73adca3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings new file mode 100755 index 00000000..2eed3af7 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/hu.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png new file mode 100755 index 00000000..c44be9a2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..afe4d23c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..6bbadd2f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..eef5bffc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..fb7a1ed5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..d73437bf Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_closed_place_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png new file mode 100755 index 00000000..db933c80 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png new file mode 100755 index 00000000..65fee675 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png new file mode 100755 index 00000000..a765b86d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png new file mode 100755 index 00000000..01a79a69 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png new file mode 100755 index 00000000..90542c30 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png new file mode 100755 index 00000000..21d2e709 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png new file mode 100755 index 00000000..3aaa92b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png new file mode 100755 index 00000000..9cb93b78 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_compass_needle_large@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png new file mode 100755 index 00000000..15d18be3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..3d59b085 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..f478c9bd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_border_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png new file mode 100755 index 00000000..06a98828 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..db9bc9a2 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..44a93a86 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..453bc6ee Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..f0f0e904 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..a60770ca Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_checkpoint_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png new file mode 100755 index 00000000..bd408df8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png new file mode 100755 index 00000000..c8c176de Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png new file mode 100755 index 00000000..c70a31a1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png new file mode 100755 index 00000000..81b60288 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png new file mode 100755 index 00000000..f631de5f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png new file mode 100755 index 00000000..e07bccee Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_covid_medical_waypoint_alert_night_32pt@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png new file mode 100755 index 00000000..2bf7984e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png new file mode 100755 index 00000000..565195fb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png new file mode 100755 index 00000000..4be8cb32 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_location_off@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png new file mode 100755 index 00000000..dccdcfd4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png new file mode 100755 index 00000000..ccb840e4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png new file mode 100755 index 00000000..0300f62e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ic_qu_direction_mylocation@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings new file mode 100755 index 00000000..73141967 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/id.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings new file mode 100755 index 00000000..d78248fd Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/it.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings new file mode 100755 index 00000000..1495ebdc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ja.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings new file mode 100755 index 00000000..3b9711da Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ka.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings new file mode 100755 index 00000000..ee6a254f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ko.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings new file mode 100755 index 00000000..ab0f769c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lt.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings new file mode 100755 index 00000000..17b3913e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/lv.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings new file mode 100755 index 00000000..a00271f9 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ms.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings new file mode 100755 index 00000000..6d2a46ca Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/my.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings new file mode 100755 index 00000000..a3b68054 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nb.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings new file mode 100755 index 00000000..21c77cbc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/nl.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings new file mode 100755 index 00000000..3294963e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pl.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png new file mode 100755 index 00000000..23c22ba5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png new file mode 100755 index 00000000..05120207 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/polyline_colors_texture_dim.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings new file mode 100755 index 00000000..55b8a3b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings new file mode 100755 index 00000000..55b8a3b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_BR.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings new file mode 100755 index 00000000..738f6e1b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/pt_PT.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings new file mode 100755 index 00000000..709dc67d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ro.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png new file mode 100755 index 00000000..b6ba5ec0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_1-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png new file mode 100755 index 00000000..08672e68 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_128-32.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png new file mode 100755 index 00000000..ba0b0a55 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_16-4.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png new file mode 100755 index 00000000..6317a5c3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_2-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png new file mode 100755 index 00000000..45a66a47 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_256-64.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png new file mode 100755 index 00000000..ed0424b5 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_32-8.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png new file mode 100755 index 00000000..b2efb5d4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_4-1.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png new file mode 100755 index 00000000..664e9f65 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_64-16.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png new file mode 100755 index 00000000..dabc3522 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/road_8-2.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings new file mode 100755 index 00000000..7f1499bb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/ru.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings new file mode 100755 index 00000000..79508966 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sk.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings new file mode 100755 index 00000000..eb0c5f62 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sq.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings new file mode 100755 index 00000000..2741a27d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings new file mode 100755 index 00000000..5d3434a6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sv.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings new file mode 100755 index 00000000..9fa3dc97 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/sw.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings new file mode 100755 index 00000000..d6436541 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/th.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings new file mode 100755 index 00000000..0e549e1d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/tr.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings new file mode 100755 index 00000000..19927a81 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/uk.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings new file mode 100755 index 00000000..c165157d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/vi.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings new file mode 100755 index 00000000..22f6eb1f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_CN.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings new file mode 100755 index 00000000..fc14ec8b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_HK.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings new file mode 100755 index 00000000..eb0695c4 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/zh_TW.lproj/GMSCore.strings differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist new file mode 100755 index 00000000..5be3ddfb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png new file mode 100755 index 00000000..c8e4a419 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png new file mode 100755 index 00000000..3e8fdcae Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png new file mode 100755 index 00000000..1d8aee7b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_left@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png new file mode 100755 index 00000000..61897145 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png new file mode 100755 index 00000000..8abc3f78 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png new file mode 100755 index 00000000..7c35f064 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/bubble_right@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png new file mode 100755 index 00000000..c74eda99 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png new file mode 100755 index 00000000..a640b5ac Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png new file mode 100755 index 00000000..a4ecc4ba Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/ic_error@3x.png differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz new file mode 100755 index 00000000..10549273 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle/oss_licenses_maps.txt.gz differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/Info.plist b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/Info.plist new file mode 100644 index 00000000..bcfe930e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/Info.plist @@ -0,0 +1,40 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64 + LibraryPath + GoogleMapsCore.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + GoogleMapsCore.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/GoogleMapsCore b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/GoogleMapsCore new file mode 100644 index 00000000..609cfc7a Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/GoogleMapsCore differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/Modules/module.modulemap new file mode 100644 index 00000000..7e481676 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64/GoogleMapsCore.framework/Modules/module.modulemap @@ -0,0 +1,21 @@ +framework module GoogleMapsCore { + export * + link "m" + link "z" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreImage" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "Metal" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/GoogleMapsCore b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/GoogleMapsCore new file mode 100644 index 00000000..d6ef9507 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/GoogleMapsCore differ diff --git a/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/Modules/module.modulemap b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/Modules/module.modulemap new file mode 100644 index 00000000..7e481676 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator/GoogleMapsCore.framework/Modules/module.modulemap @@ -0,0 +1,21 @@ +framework module GoogleMapsCore { + export * + link "m" + link "z" + link framework "CoreData" + link framework "CoreFoundation" + link framework "CoreGraphics" + link framework "CoreImage" + link framework "CoreLocation" + link framework "CoreTelephony" + link framework "CoreText" + link framework "Foundation" + link framework "GLKit" + link framework "ImageIO" + link framework "Metal" + link framework "OpenGLES" + link framework "QuartzCore" + link framework "Security" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/ios/App/Pods/GoogleMaps/README.md b/ios/App/Pods/GoogleMaps/README.md new file mode 100755 index 00000000..f0b12a78 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/README.md @@ -0,0 +1,60 @@ +# 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. + +# Installation + +1. Before you can use the Google Maps SDK for iOS, follow these [setup instructions](https://developers.google.com/maps/documentation/ios-sdk/cloud-setup) to set up a project and get an API key. You will need to add the API key to your code in order to build your app with the Maps SDK for iOS. + +1. To integrate Google Maps SDK for iOS into your Xcode project using CocoaPods, +specify it in your `Podfile`, for example: + + ``` + source 'https://github.com/CocoaPods/Specs.git' + platform :ios, '13.0' + target 'YOUR_APPLICATION_TARGET_NAME_HERE' do + pod 'GoogleMaps', '7.1.0' + end + ``` + + Then, run the following command: + + ``` + $ pod install + ``` + +1. Follow additional steps in the ["Set up an Xcode project"](https://developers.google.com/maps/documentation/ios-sdk/config) guide to add your API key to your project, import classes, and add a map. + +# Resources + +* *Guides*: Read the [documentation](https://developers.google.com/maps/documentation/ios-sdk/) for full use of the SDK. +* *Tutorial videos*: Watch code walkthroughs and useful tips on our [YouTube channel](https://www.youtube.com/playlist?list=PL2rFahu9sLJ3Rob1Vb5O4qX4U8-0FeXqJ). +* *Code samples*: In order to try out our demo app, use: + + ``` + $ pod try GoogleMaps + ``` + + and follow the instructions on our [samples documentation](https://developers.google.com/maps/documentation/ios-sdk/code-samples). + +* *Support*: Ask the community or get help from Google using the links on the Maps SDK for iOS [support page](https://developers.google.com/maps/documentation/ios-sdk/support). + +* *Report issues*: Use our issue tracker to [file a bug](https://issuetracker.google.com/issues/new?component=188833&template=789005) + or a [feature request](https://issuetracker.google.com/issues/new?component=188833&template=787421). + +# 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). +* Be sure to understand [usage and billing](https://developers.google.com/maps/documentation/ios-sdk/usage-and-billing) information related to use of the Maps SDK for iOS. +* 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. diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos.xcodeproj/project.pbxproj b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos.xcodeproj/project.pbxproj new file mode 100755 index 00000000..f0833870 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos.xcodeproj/project.pbxproj @@ -0,0 +1,597 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0000CCE582DF20F853E43502 /* CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 612E451B3A594633E32B3131 /* CameraViewController.swift */; }; + 02DF0DD4C3D8B5849C510C23 /* step6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 582E8D45A41BDDC81EA48DD7 /* step6@2x.png */; }; + 04E60E4743F55E6BFC17B7B3 /* bulgaria-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 27D56F2A707892084368A7E2 /* bulgaria-large.png */; }; + 05CF5A358A5758D0A61027A5 /* boat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D10973A4336C45EE56319A9B /* boat@2x.png */; }; + 07C43705738284E4921A680D /* step4.png in Resources */ = {isa = PBXBuildFile; fileRef = 17C7DF8FF79FD6CE7012853F /* step4.png */; }; + 0AA49E1F095C6DD67BBDC556 /* voyager@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FB44254CA7D0DECE9C14158D /* voyager@2x.png */; }; + 0B806397B1092EB141DCE52C /* DoubleMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD03041A5EAA400168D31F /* DoubleMapViewController.swift */; }; + 0F1EA55F7B0EAA26EB2060A2 /* SnapshotReadyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DB76DC4B0DC1CB6692AE61E /* SnapshotReadyViewController.swift */; }; + 11BF5BA8105198E326CF4F96 /* aeroplane.png in Resources */ = {isa = PBXBuildFile; fileRef = B26D6D4D0FD65566CA60C29A /* aeroplane.png */; }; + 156F720D1E526A533B03DD2B /* MarkerEventsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD93738C4D90134DB506ECFE /* MarkerEventsViewController.swift */; }; + 188F5FEB25C05500FFF796C4 /* SampleMapStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18764F42392A93B39C775AB /* SampleMapStyle.swift */; }; + 1E769ACDBCCB6DB84D5E3E8E /* h1.png in Resources */ = {isa = PBXBuildFile; fileRef = 996FCE46D4BD31A4E02C2473 /* h1.png */; }; + 20F35834239A135EC77A752C /* arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 221F6743F6F3DB331816D7D3 /* arrow@2x.png */; }; + 21AFA9E1157E41E761EDC099 /* newark_nj_1922.jpg in Resources */ = {isa = PBXBuildFile; fileRef = C37B898C1EEE5364AEE5EDAA /* newark_nj_1922.jpg */; }; + 26B8792B58E56800CA3D60ED /* step2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AD1D1A994D7ECBF890F0034A /* step2@2x.png */; }; + 293B8794611FD45B631FE20C /* step2.png in Resources */ = {isa = PBXBuildFile; fileRef = C5014E3BCF7EBF869B9F9BC7 /* step2.png */; }; + 2B28FB6F052E4609695C6CD5 /* PanoramaServiceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27175E880CA9EEC63374BD4 /* PanoramaServiceController.swift */; }; + 2C0E3A82E5EFE9F47DB9256F /* FrameRateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020DE40B5B1E19C53A7E1982 /* FrameRateViewController.swift */; }; + 2D218EA1029C3FB7A528179F /* spitfire.png in Resources */ = {isa = PBXBuildFile; fileRef = 87E37B0AEBC49DF8A0F89492 /* spitfire.png */; }; + 2E3A841E83BC75E113066610 /* boat.png in Resources */ = {isa = PBXBuildFile; fileRef = EB1DB9C65356269FB0E9805F /* boat.png */; }; + 33F23B3B99CCD40567D80076 /* MapZoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C9B924A31846136307374FE /* MapZoomViewController.swift */; }; + 362C49E4DB90848A82AA5F1B /* museum-exhibits.json in Resources */ = {isa = PBXBuildFile; fileRef = AFCF3BFD151B8E93B8704001 /* museum-exhibits.json */; }; + 3888570B6E197983F2249FCD /* PaddingBehaviorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6181B3AED573910BA0F2D6B /* PaddingBehaviorViewController.swift */; }; + 3C0A5FE1143A58DBEA18A599 /* IndoorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E35664DD7AE7235688F9964 /* IndoorViewController.swift */; }; + 3D3F2A8EA739004B1489A792 /* step8.png in Resources */ = {isa = PBXBuildFile; fileRef = EFD1B4A1869A5ED24977724F /* step8.png */; }; + 41B7BD6313F16FFB24A404B2 /* step7.png in Resources */ = {isa = PBXBuildFile; fileRef = ED3D93ABBF24BFEF78629B0D /* step7.png */; }; + 4773BB1B2EBD65AEC32F9E7C /* step3.png in Resources */ = {isa = PBXBuildFile; fileRef = E8E67F17F84C0169D05D684B /* step3.png */; }; + 4788C5C048ACF0FC15C2A75A /* Samples.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8CA03ED74DC7887D70CCA6 /* Samples.swift */; }; + 47F0AC7126A1B045383D2D1E /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4886CC72C988DDBC1F268FD3 /* SceneDelegate.swift */; }; + 4A9E3BF5489DCA1C7A200A64 /* mapstyle-retro.json in Resources */ = {isa = PBXBuildFile; fileRef = 8E0F7227CD83A68A40D74050 /* mapstyle-retro.json */; }; + 4A9F5DDF75B725448DB6B0EF /* PanoramaViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDABCFB71E0D9B75FA2091CF /* PanoramaViewController.swift */; }; + 4D932F94F684532C309EB4BF /* step7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C96B86B64A6F458F79250076 /* step7@2x.png */; }; + 4EA38ACBC98F34B1F0AF5BDD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 922338CA529F228A03DE6422 /* UIKit.framework */; }; + 4F01A0839D992FC9F724CD85 /* mapstyle-silver.json in Resources */ = {isa = PBXBuildFile; fileRef = 30CF698467FA9E7F200017B3 /* mapstyle-silver.json */; }; + 5016E68430C4B4F06ACA1596 /* SampleListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83F342A6AF95FF580F924D74 /* SampleListViewController.swift */; }; + 51B06A8BE3A738B98EC2B2B3 /* botswana-large.png in Resources */ = {isa = PBXBuildFile; fileRef = F531ABFE1A21DA26444A02BC /* botswana-large.png */; }; + 550FE98EC9032009D39A6EA1 /* FixedPanoramaViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1730B1B4AD1EF5754F84355B /* FixedPanoramaViewController.swift */; }; + 58C1F1AFB8E52C5A7D70FD54 /* aeroplane@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EAC16DE0E8CC752D17EB04A /* aeroplane@2x.png */; }; + 6305177FAABE60AC55BDC3E4 /* bulgaria.png in Resources */ = {isa = PBXBuildFile; fileRef = 713A9415F77D646F9547193B /* bulgaria.png */; }; + 63AA012E2D9D55A712B7B766 /* MarkerLayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD5CD72476857CF2A348366 /* MarkerLayerViewController.swift */; }; + 6F974DAC19BC11133EBD3B64 /* StructuredGeocoderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A99C0C04795272C12DD9EF /* StructuredGeocoderViewController.swift */; }; + 6FE45DC6C071ABCD078807F7 /* SDKConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE91B8EA42AFFCEDA758CE06 /* SDKConstants.swift */; }; + 6FEFF5E13C84596B02FC5CEC /* step5.png in Resources */ = {isa = PBXBuildFile; fileRef = 24E559AA1425536C6D0ACF0D /* step5.png */; }; + 7148D5BB00ABDA10E0F0C5A4 /* SampleLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B919F5AC728E794E349D4A3 /* SampleLevel.swift */; }; + 71C2D64F6C0E6E8694320943 /* MarkerInfoWindowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AD61BF07E9A5511F02937FE /* MarkerInfoWindowViewController.swift */; }; + 76B15EA60EA7D5B327D47BF3 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24E0C7EAB68D8720DCB2CAC0 /* AppDelegate.swift */; }; + 793779D4C5EF17E64E9A6B88 /* BasicMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5AB6411A9C7E6CEDB98041D /* BasicMapViewController.swift */; }; + 7A2ADB0D632A94D7D60F67A7 /* VisibleRegionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B644212DDBA2509AD4CF5A /* VisibleRegionViewController.swift */; }; + 7C4EF58C8DA531E5FC32D9DD /* GeocoderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03D1BEF5B3B6C6A990EA98C5 /* GeocoderViewController.swift */; }; + 8679E8541C17881309FB5F11 /* MapsDemoAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1DE0C90254383DA8C437CD0A /* MapsDemoAssets.xcassets */; }; + 88135F34106D3360A5820F96 /* popup_santa.png in Resources */ = {isa = PBXBuildFile; fileRef = 2D48B3FFC6D573CF2673D451 /* popup_santa.png */; }; + 91D8C803DEDB4A701699AF8D /* glow-marker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0A676DB2BE6F08848CCC5F44 /* glow-marker@2x.png */; }; + 93DF8E1D616607C73D24D731 /* step5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8DCC6728BCC97657B2285199 /* step5@2x.png */; }; + 97DD9977EC5047161D0F7A40 /* GroundOverlayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 922B67562D8E4B0D00C7B4BB /* GroundOverlayViewController.swift */; }; + 9B820E7BA576743B85114CB7 /* GestureControlViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE84B21AF0FE670AF73B8015 /* GestureControlViewController.swift */; }; + 9DDFC10B53970CA1F0007AF5 /* MarkersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5ED4F2473A7C9EB8BA05986B /* MarkersViewController.swift */; }; + A1F2BF43DACC00B6B26249F8 /* mapstyle-night.json in Resources */ = {isa = PBXBuildFile; fileRef = 5DE971B436125DBE256A5FA5 /* mapstyle-night.json */; }; + A412E68F580DA7D80E303215 /* track.json in Resources */ = {isa = PBXBuildFile; fileRef = 3B0F56EA0940A859776C9DD3 /* track.json */; }; + A4FC0324F71E06035CB2BE88 /* popup_santa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8CE19F8126C25D885E758AC /* popup_santa@2x.png */; }; + A558875AEB68DDE9D1A63798 /* GradientPolylinesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72C6A03E42A9983A4FB4A7E3 /* GradientPolylinesViewController.swift */; }; + A586B9513453238497AB855A /* step4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8BE2B2F064E5D2B955799B90 /* step4@2x.png */; }; + ABF592027F3E684817715EDD /* PolylinesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784B90031ED0D2E68FA9EF93 /* PolylinesViewController.swift */; }; + AC10E7A466233271826AB625 /* spitfire@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 522113F4629950AB8239E18A /* spitfire@2x.png */; }; + AF7238FE8B018260C51578B6 /* StyledMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA1DB5D699D162AC375E1C9 /* StyledMapViewController.swift */; }; + B3F740B819DBAA1F4E651157 /* h1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4429DACE39F5B3E2E31B963D /* h1@2x.png */; }; + B6565F6882481535DAB5C86A /* voyager.png in Resources */ = {isa = PBXBuildFile; fileRef = 2A5B8956E7E8B6AF430CC416 /* voyager.png */; }; + B69D158DC43E0889B5BF1561 /* glow-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = F17F1884FB9429A59D92A98A /* glow-marker.png */; }; + B7345D33E5BF31A00280355C /* step1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF1488DDE60393FF03CF8A87 /* step1@2x.png */; }; + B9465AA9D8B047C4FF6EFF98 /* step1.png in Resources */ = {isa = PBXBuildFile; fileRef = 02A9E40F7B9F8AFC4EF0BB41 /* step1.png */; }; + B9A86B6A12CD89751A59B283 /* PolygonsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C54F70F6C6426F576247C16F /* PolygonsViewController.swift */; }; + BC338ACA3F71AD2AB5BB55E6 /* TrafficMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091BA2074B3B691B1AAD79F /* TrafficMapViewController.swift */; }; + BE232DD5D3AE0A5D14DA43F4 /* CustomMarkersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B8C82F193D6253A379BF3FD /* CustomMarkersViewController.swift */; }; + C29CA0E15834811100992B2E /* x29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6041A5D425D71CDF9418ABE /* x29@2x.png */; }; + C7EBC2EA4F8DE36B09BCB5C9 /* argentina-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 0EDDB89D7FC679C6141D5F7F /* argentina-large.png */; }; + C997DD044658258CF28058BB /* AnimatedCurrentLocationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2566CE33406BE9F4AE26CFC0 /* AnimatedCurrentLocationViewController.swift */; }; + CA20AF965D945AFC7DA5FB88 /* australia.png in Resources */ = {isa = PBXBuildFile; fileRef = 71F546CBD85FE306F988C2F0 /* australia.png */; }; + CBCC9C39BE2C3870BF2F29A8 /* australia-large@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2C8E6590B2109C88BF5DF3BF /* australia-large@2x.png */; }; + CC516093DCE57637E995CD6C /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = A29805B04CA5A5071F63E40F /* arrow.png */; }; + CE0349DCBBE305F2A475E6ED /* MapLayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DEB41AE386954E4085FAA85 /* MapLayerViewController.swift */; }; + D3E1235A287B63F1C8326B39 /* step3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B055CD3729E64D455BC5B034 /* step3@2x.png */; }; + D581AE7D87DF1D47CFB93CFA /* botswana.png in Resources */ = {isa = PBXBuildFile; fileRef = F838C1A5E413CE8D5CC1CA85 /* botswana.png */; }; + DC204BFAEB6DCDA7F7610536 /* GMSMapStyle+Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02A9A391184A7EAD7C072E62 /* GMSMapStyle+Bundle.swift */; }; + DEA4846A15B8330203AB1573 /* step6.png in Resources */ = {isa = PBXBuildFile; fileRef = 4864D7EE574742D69D0917F3 /* step6.png */; }; + DFBE1D0F69ADD7B44416635D /* MapTypesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2B29C49F7B36D477192D04 /* MapTypesViewController.swift */; }; + E31E402B435CE656EAF45BD6 /* CustomIndoorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B08A9836FC58ADF5E6C36DC /* CustomIndoorViewController.swift */; }; + E3D9CA39859BD1CDB3863347 /* FitBoundsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBE707A4130CDA88BBCC2DD4 /* FitBoundsViewController.swift */; }; + EFF3F2E5F34BAB29EBE27D38 /* MyLocationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A7916340031F78D38C594C4 /* MyLocationViewController.swift */; }; + F0AC2AA4D171EC887FE1532C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5CFB2179FECC8DF98666E98A /* LaunchScreen.storyboard */; }; + F1AECCBACB7BC8DDB3DB2887 /* IndoorMuseumNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E4201AB786148B34D7190E /* IndoorMuseumNavigationViewController.swift */; }; + F1E12C97E57BD8D71DA70360 /* TileLayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 962C5BE26208B06737B4653C /* TileLayerViewController.swift */; }; + F269AECF0CD0F37AAD2D09CD /* step8@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E604082110AE5DB05E1B7C5 /* step8@2x.png */; }; + F37349A51F746D3C2D991773 /* australia-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 73E9911385541153DF35EE99 /* australia-large.png */; }; + F49EEF61AEC832CE859F6B37 /* AnimatedUIViewMarkerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49E9C05F3A051F688CF7F4BF /* AnimatedUIViewMarkerViewController.swift */; }; + FE3B7D57BDD934A0FF2E3405 /* x29.png in Resources */ = {isa = PBXBuildFile; fileRef = 6E8E2784C6B7A0900490D68D /* x29.png */; }; + FF9199E04763094C5992E3BA /* argentina.png in Resources */ = {isa = PBXBuildFile; fileRef = 822521FD132C2E44D03EE0E8 /* argentina.png */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 020DE40B5B1E19C53A7E1982 /* FrameRateViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameRateViewController.swift; sourceTree = ""; }; + 02A9A391184A7EAD7C072E62 /* GMSMapStyle+Bundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GMSMapStyle+Bundle.swift"; sourceTree = ""; }; + 02A9E40F7B9F8AFC4EF0BB41 /* step1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step1.png; sourceTree = ""; }; + 03D1BEF5B3B6C6A990EA98C5 /* GeocoderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeocoderViewController.swift; sourceTree = ""; }; + 0A676DB2BE6F08848CCC5F44 /* glow-marker@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "glow-marker@2x.png"; sourceTree = ""; }; + 0EDDB89D7FC679C6141D5F7F /* argentina-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "argentina-large.png"; sourceTree = ""; }; + 1730B1B4AD1EF5754F84355B /* FixedPanoramaViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FixedPanoramaViewController.swift; sourceTree = ""; }; + 17C7DF8FF79FD6CE7012853F /* step4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step4.png; sourceTree = ""; }; + 1DE0C90254383DA8C437CD0A /* MapsDemoAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MapsDemoAssets.xcassets; sourceTree = ""; }; + 1EAC16DE0E8CC752D17EB04A /* aeroplane@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "aeroplane@2x.png"; sourceTree = ""; }; + 221F6743F6F3DB331816D7D3 /* arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "arrow@2x.png"; sourceTree = ""; }; + 24E0C7EAB68D8720DCB2CAC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 24E559AA1425536C6D0ACF0D /* step5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step5.png; sourceTree = ""; }; + 2566CE33406BE9F4AE26CFC0 /* AnimatedCurrentLocationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimatedCurrentLocationViewController.swift; sourceTree = ""; }; + 27D56F2A707892084368A7E2 /* bulgaria-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bulgaria-large.png"; sourceTree = ""; }; + 2A5B8956E7E8B6AF430CC416 /* voyager.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = voyager.png; sourceTree = ""; }; + 2C8E6590B2109C88BF5DF3BF /* australia-large@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "australia-large@2x.png"; sourceTree = ""; }; + 2D48B3FFC6D573CF2673D451 /* popup_santa.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = popup_santa.png; sourceTree = ""; }; + 30CF698467FA9E7F200017B3 /* mapstyle-silver.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-silver.json"; sourceTree = ""; }; + 3B0F56EA0940A859776C9DD3 /* track.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = track.json; sourceTree = ""; }; + 3B919F5AC728E794E349D4A3 /* SampleLevel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleLevel.swift; sourceTree = ""; }; + 3EA1DB5D699D162AC375E1C9 /* StyledMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyledMapViewController.swift; sourceTree = ""; }; + 4091BA2074B3B691B1AAD79F /* TrafficMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrafficMapViewController.swift; sourceTree = ""; }; + 4429DACE39F5B3E2E31B963D /* h1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "h1@2x.png"; sourceTree = ""; }; + 4864D7EE574742D69D0917F3 /* step6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step6.png; sourceTree = ""; }; + 4886CC72C988DDBC1F268FD3 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 49E9C05F3A051F688CF7F4BF /* AnimatedUIViewMarkerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimatedUIViewMarkerViewController.swift; sourceTree = ""; }; + 4A7916340031F78D38C594C4 /* MyLocationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyLocationViewController.swift; sourceTree = ""; }; + 4C9B924A31846136307374FE /* MapZoomViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapZoomViewController.swift; sourceTree = ""; }; + 4E35664DD7AE7235688F9964 /* IndoorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IndoorViewController.swift; sourceTree = ""; }; + 522113F4629950AB8239E18A /* spitfire@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "spitfire@2x.png"; sourceTree = ""; }; + 582E8D45A41BDDC81EA48DD7 /* step6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step6@2x.png"; sourceTree = ""; }; + 5B08A9836FC58ADF5E6C36DC /* CustomIndoorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomIndoorViewController.swift; sourceTree = ""; }; + 5B8C82F193D6253A379BF3FD /* CustomMarkersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomMarkersViewController.swift; sourceTree = ""; }; + 5CFB2179FECC8DF98666E98A /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + 5DB76DC4B0DC1CB6692AE61E /* SnapshotReadyViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotReadyViewController.swift; sourceTree = ""; }; + 5DE971B436125DBE256A5FA5 /* mapstyle-night.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-night.json"; sourceTree = ""; }; + 5ED4F2473A7C9EB8BA05986B /* MarkersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkersViewController.swift; sourceTree = ""; }; + 612E451B3A594633E32B3131 /* CameraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraViewController.swift; sourceTree = ""; }; + 63E4201AB786148B34D7190E /* IndoorMuseumNavigationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IndoorMuseumNavigationViewController.swift; sourceTree = ""; }; + 69B644212DDBA2509AD4CF5A /* VisibleRegionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisibleRegionViewController.swift; sourceTree = ""; }; + 6E8E2784C6B7A0900490D68D /* x29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = x29.png; sourceTree = ""; }; + 713A9415F77D646F9547193B /* bulgaria.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bulgaria.png; sourceTree = ""; }; + 71F546CBD85FE306F988C2F0 /* australia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = australia.png; sourceTree = ""; }; + 72C6A03E42A9983A4FB4A7E3 /* GradientPolylinesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GradientPolylinesViewController.swift; sourceTree = ""; }; + 73E9911385541153DF35EE99 /* australia-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "australia-large.png"; sourceTree = ""; }; + 784B90031ED0D2E68FA9EF93 /* PolylinesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PolylinesViewController.swift; sourceTree = ""; }; + 822521FD132C2E44D03EE0E8 /* argentina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = argentina.png; sourceTree = ""; }; + 83F342A6AF95FF580F924D74 /* SampleListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleListViewController.swift; sourceTree = ""; }; + 87E37B0AEBC49DF8A0F89492 /* spitfire.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spitfire.png; sourceTree = ""; }; + 8AD61BF07E9A5511F02937FE /* MarkerInfoWindowViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkerInfoWindowViewController.swift; sourceTree = ""; }; + 8BE2B2F064E5D2B955799B90 /* step4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step4@2x.png"; sourceTree = ""; }; + 8DCC6728BCC97657B2285199 /* step5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step5@2x.png"; sourceTree = ""; }; + 8E0F7227CD83A68A40D74050 /* mapstyle-retro.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "mapstyle-retro.json"; sourceTree = ""; }; + 8E604082110AE5DB05E1B7C5 /* step8@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step8@2x.png"; sourceTree = ""; }; + 922338CA529F228A03DE6422 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 922B67562D8E4B0D00C7B4BB /* GroundOverlayViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroundOverlayViewController.swift; sourceTree = ""; }; + 962C5BE26208B06737B4653C /* TileLayerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TileLayerViewController.swift; sourceTree = ""; }; + 996FCE46D4BD31A4E02C2473 /* h1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = h1.png; sourceTree = ""; }; + 9DEB41AE386954E4085FAA85 /* MapLayerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapLayerViewController.swift; sourceTree = ""; }; + A29805B04CA5A5071F63E40F /* arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow.png; sourceTree = ""; }; + A6181B3AED573910BA0F2D6B /* PaddingBehaviorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaddingBehaviorViewController.swift; sourceTree = ""; }; + ABD5CD72476857CF2A348366 /* MarkerLayerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkerLayerViewController.swift; sourceTree = ""; }; + AD1D1A994D7ECBF890F0034A /* step2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step2@2x.png"; sourceTree = ""; }; + AFCF3BFD151B8E93B8704001 /* museum-exhibits.json */ = {isa = PBXFileReference; lastKnownFileType = text; path = "museum-exhibits.json"; sourceTree = ""; }; + B055CD3729E64D455BC5B034 /* step3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step3@2x.png"; sourceTree = ""; }; + B26D6D4D0FD65566CA60C29A /* aeroplane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = aeroplane.png; sourceTree = ""; }; + BB018BB688C4953D45CED8CB /* GoogleMapsSwiftDemos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GoogleMapsSwiftDemos.app; sourceTree = BUILT_PRODUCTS_DIR; }; + C37B898C1EEE5364AEE5EDAA /* newark_nj_1922.jpg */ = {isa = PBXFileReference; lastKnownFileType = text; path = newark_nj_1922.jpg; sourceTree = ""; }; + C5014E3BCF7EBF869B9F9BC7 /* step2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step2.png; sourceTree = ""; }; + C54F70F6C6426F576247C16F /* PolygonsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PolygonsViewController.swift; sourceTree = ""; }; + C6041A5D425D71CDF9418ABE /* x29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "x29@2x.png"; sourceTree = ""; }; + C96B86B64A6F458F79250076 /* step7@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step7@2x.png"; sourceTree = ""; }; + CB2B29C49F7B36D477192D04 /* MapTypesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTypesViewController.swift; sourceTree = ""; }; + CBE707A4130CDA88BBCC2DD4 /* FitBoundsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FitBoundsViewController.swift; sourceTree = ""; }; + CBFD03041A5EAA400168D31F /* DoubleMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoubleMapViewController.swift; sourceTree = ""; }; + CD93738C4D90134DB506ECFE /* MarkerEventsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkerEventsViewController.swift; sourceTree = ""; }; + D10973A4336C45EE56319A9B /* boat@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "boat@2x.png"; sourceTree = ""; }; + D1A99C0C04795272C12DD9EF /* StructuredGeocoderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StructuredGeocoderViewController.swift; sourceTree = ""; }; + D27175E880CA9EEC63374BD4 /* PanoramaServiceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PanoramaServiceController.swift; sourceTree = ""; }; + DE91B8EA42AFFCEDA758CE06 /* SDKConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDKConstants.swift; sourceTree = ""; }; + DF1488DDE60393FF03CF8A87 /* step1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "step1@2x.png"; sourceTree = ""; }; + E18764F42392A93B39C775AB /* SampleMapStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleMapStyle.swift; sourceTree = ""; }; + E5AB6411A9C7E6CEDB98041D /* BasicMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BasicMapViewController.swift; sourceTree = ""; }; + E8E67F17F84C0169D05D684B /* step3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step3.png; sourceTree = ""; }; + EB1DB9C65356269FB0E9805F /* boat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boat.png; sourceTree = ""; }; + ED3D93ABBF24BFEF78629B0D /* step7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step7.png; sourceTree = ""; }; + EFD1B4A1869A5ED24977724F /* step8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = step8.png; sourceTree = ""; }; + F17F1884FB9429A59D92A98A /* glow-marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "glow-marker.png"; sourceTree = ""; }; + F531ABFE1A21DA26444A02BC /* botswana-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "botswana-large.png"; sourceTree = ""; }; + F838C1A5E413CE8D5CC1CA85 /* botswana.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = botswana.png; sourceTree = ""; }; + F8CE19F8126C25D885E758AC /* popup_santa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "popup_santa@2x.png"; sourceTree = ""; }; + FB44254CA7D0DECE9C14158D /* voyager@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "voyager@2x.png"; sourceTree = ""; }; + FDABCFB71E0D9B75FA2091CF /* PanoramaViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PanoramaViewController.swift; sourceTree = ""; }; + FE84B21AF0FE670AF73B8015 /* GestureControlViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestureControlViewController.swift; sourceTree = ""; }; + FE8CA03ED74DC7887D70CCA6 /* Samples.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Samples.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B4530C282FE2BDE3D1071779 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4EA38ACBC98F34B1F0AF5BDD /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 395189041FA097C5575D97CF /* Resources */ = { + isa = PBXGroup; + children = ( + 88CAE0CB38154A5CDE0ABF87 /* Museum-Icons */, + 5CFB2179FECC8DF98666E98A /* LaunchScreen.storyboard */, + B26D6D4D0FD65566CA60C29A /* aeroplane.png */, + 1EAC16DE0E8CC752D17EB04A /* aeroplane@2x.png */, + 0EDDB89D7FC679C6141D5F7F /* argentina-large.png */, + 822521FD132C2E44D03EE0E8 /* argentina.png */, + A29805B04CA5A5071F63E40F /* arrow.png */, + 221F6743F6F3DB331816D7D3 /* arrow@2x.png */, + 73E9911385541153DF35EE99 /* australia-large.png */, + 2C8E6590B2109C88BF5DF3BF /* australia-large@2x.png */, + 71F546CBD85FE306F988C2F0 /* australia.png */, + EB1DB9C65356269FB0E9805F /* boat.png */, + D10973A4336C45EE56319A9B /* boat@2x.png */, + F531ABFE1A21DA26444A02BC /* botswana-large.png */, + F838C1A5E413CE8D5CC1CA85 /* botswana.png */, + 27D56F2A707892084368A7E2 /* bulgaria-large.png */, + 713A9415F77D646F9547193B /* bulgaria.png */, + F17F1884FB9429A59D92A98A /* glow-marker.png */, + 0A676DB2BE6F08848CCC5F44 /* glow-marker@2x.png */, + 5DE971B436125DBE256A5FA5 /* mapstyle-night.json */, + 8E0F7227CD83A68A40D74050 /* mapstyle-retro.json */, + 30CF698467FA9E7F200017B3 /* mapstyle-silver.json */, + AFCF3BFD151B8E93B8704001 /* museum-exhibits.json */, + C37B898C1EEE5364AEE5EDAA /* newark_nj_1922.jpg */, + 2D48B3FFC6D573CF2673D451 /* popup_santa.png */, + F8CE19F8126C25D885E758AC /* popup_santa@2x.png */, + 02A9E40F7B9F8AFC4EF0BB41 /* step1.png */, + DF1488DDE60393FF03CF8A87 /* step1@2x.png */, + C5014E3BCF7EBF869B9F9BC7 /* step2.png */, + AD1D1A994D7ECBF890F0034A /* step2@2x.png */, + E8E67F17F84C0169D05D684B /* step3.png */, + B055CD3729E64D455BC5B034 /* step3@2x.png */, + 17C7DF8FF79FD6CE7012853F /* step4.png */, + 8BE2B2F064E5D2B955799B90 /* step4@2x.png */, + 24E559AA1425536C6D0ACF0D /* step5.png */, + 8DCC6728BCC97657B2285199 /* step5@2x.png */, + 4864D7EE574742D69D0917F3 /* step6.png */, + 582E8D45A41BDDC81EA48DD7 /* step6@2x.png */, + ED3D93ABBF24BFEF78629B0D /* step7.png */, + C96B86B64A6F458F79250076 /* step7@2x.png */, + EFD1B4A1869A5ED24977724F /* step8.png */, + 8E604082110AE5DB05E1B7C5 /* step8@2x.png */, + 3B0F56EA0940A859776C9DD3 /* track.json */, + ); + path = Resources; + sourceTree = ""; + }; + 77BA0496CE92FC06E4C6A5D5 /* GoogleMapsSwiftDemos */ = { + isa = PBXGroup; + children = ( + 395189041FA097C5575D97CF /* Resources */, + EFA8BDBE867496134E5B35DD /* Swift */, + 1DE0C90254383DA8C437CD0A /* MapsDemoAssets.xcassets */, + ); + path = GoogleMapsSwiftDemos; + sourceTree = ""; + }; + 8237F31C5C62148D587A20A9 /* Samples */ = { + isa = PBXGroup; + children = ( + 2566CE33406BE9F4AE26CFC0 /* AnimatedCurrentLocationViewController.swift */, + 49E9C05F3A051F688CF7F4BF /* AnimatedUIViewMarkerViewController.swift */, + E5AB6411A9C7E6CEDB98041D /* BasicMapViewController.swift */, + 612E451B3A594633E32B3131 /* CameraViewController.swift */, + 5B08A9836FC58ADF5E6C36DC /* CustomIndoorViewController.swift */, + 5B8C82F193D6253A379BF3FD /* CustomMarkersViewController.swift */, + CBFD03041A5EAA400168D31F /* DoubleMapViewController.swift */, + CBE707A4130CDA88BBCC2DD4 /* FitBoundsViewController.swift */, + 1730B1B4AD1EF5754F84355B /* FixedPanoramaViewController.swift */, + 020DE40B5B1E19C53A7E1982 /* FrameRateViewController.swift */, + 02A9A391184A7EAD7C072E62 /* GMSMapStyle+Bundle.swift */, + 03D1BEF5B3B6C6A990EA98C5 /* GeocoderViewController.swift */, + FE84B21AF0FE670AF73B8015 /* GestureControlViewController.swift */, + 72C6A03E42A9983A4FB4A7E3 /* GradientPolylinesViewController.swift */, + 922B67562D8E4B0D00C7B4BB /* GroundOverlayViewController.swift */, + 63E4201AB786148B34D7190E /* IndoorMuseumNavigationViewController.swift */, + 4E35664DD7AE7235688F9964 /* IndoorViewController.swift */, + 9DEB41AE386954E4085FAA85 /* MapLayerViewController.swift */, + CB2B29C49F7B36D477192D04 /* MapTypesViewController.swift */, + 4C9B924A31846136307374FE /* MapZoomViewController.swift */, + CD93738C4D90134DB506ECFE /* MarkerEventsViewController.swift */, + 8AD61BF07E9A5511F02937FE /* MarkerInfoWindowViewController.swift */, + ABD5CD72476857CF2A348366 /* MarkerLayerViewController.swift */, + 5ED4F2473A7C9EB8BA05986B /* MarkersViewController.swift */, + 4A7916340031F78D38C594C4 /* MyLocationViewController.swift */, + A6181B3AED573910BA0F2D6B /* PaddingBehaviorViewController.swift */, + D27175E880CA9EEC63374BD4 /* PanoramaServiceController.swift */, + FDABCFB71E0D9B75FA2091CF /* PanoramaViewController.swift */, + C54F70F6C6426F576247C16F /* PolygonsViewController.swift */, + 784B90031ED0D2E68FA9EF93 /* PolylinesViewController.swift */, + 3B919F5AC728E794E349D4A3 /* SampleLevel.swift */, + E18764F42392A93B39C775AB /* SampleMapStyle.swift */, + FE8CA03ED74DC7887D70CCA6 /* Samples.swift */, + 5DB76DC4B0DC1CB6692AE61E /* SnapshotReadyViewController.swift */, + D1A99C0C04795272C12DD9EF /* StructuredGeocoderViewController.swift */, + 3EA1DB5D699D162AC375E1C9 /* StyledMapViewController.swift */, + 962C5BE26208B06737B4653C /* TileLayerViewController.swift */, + 4091BA2074B3B691B1AAD79F /* TrafficMapViewController.swift */, + 69B644212DDBA2509AD4CF5A /* VisibleRegionViewController.swift */, + ); + path = Samples; + sourceTree = ""; + }; + 88CAE0CB38154A5CDE0ABF87 /* Museum-Icons */ = { + isa = PBXGroup; + children = ( + 996FCE46D4BD31A4E02C2473 /* h1.png */, + 4429DACE39F5B3E2E31B963D /* h1@2x.png */, + 87E37B0AEBC49DF8A0F89492 /* spitfire.png */, + 522113F4629950AB8239E18A /* spitfire@2x.png */, + 2A5B8956E7E8B6AF430CC416 /* voyager.png */, + FB44254CA7D0DECE9C14158D /* voyager@2x.png */, + 6E8E2784C6B7A0900490D68D /* x29.png */, + C6041A5D425D71CDF9418ABE /* x29@2x.png */, + ); + path = "Museum-Icons"; + sourceTree = ""; + }; + AC723F443153D968479E59F3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 922338CA529F228A03DE6422 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0ED9A279E12177F7FDFA2FF /* Source */ = { + isa = PBXGroup; + children = ( + 77BA0496CE92FC06E4C6A5D5 /* GoogleMapsSwiftDemos */, + ); + name = Source; + sourceTree = ""; + }; + D82B2453023AA1ECA43F9A8B = { + isa = PBXGroup; + children = ( + D0ED9A279E12177F7FDFA2FF /* Source */, + AC723F443153D968479E59F3 /* Frameworks */, + DD0B6FB690051F4443F4132B /* Products */, + ); + sourceTree = ""; + }; + DD0B6FB690051F4443F4132B /* Products */ = { + isa = PBXGroup; + children = ( + BB018BB688C4953D45CED8CB /* GoogleMapsSwiftDemos.app */, + ); + name = Products; + sourceTree = ""; + }; + EFA8BDBE867496134E5B35DD /* Swift */ = { + isa = PBXGroup; + children = ( + 8237F31C5C62148D587A20A9 /* Samples */, + 24E0C7EAB68D8720DCB2CAC0 /* AppDelegate.swift */, + DE91B8EA42AFFCEDA758CE06 /* SDKConstants.swift */, + 83F342A6AF95FF580F924D74 /* SampleListViewController.swift */, + 4886CC72C988DDBC1F268FD3 /* SceneDelegate.swift */, + ); + path = Swift; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 56AB213E97CDD413D8EDA2B0 /* GoogleMapsSwiftDemos */ = { + isa = PBXNativeTarget; + buildConfigurationList = 65556A7591C40D0E8B77989F /* Build configuration list for PBXNativeTarget "GoogleMapsSwiftDemos" */; + buildPhases = ( + 2ADDADBB329E244AF7ED1FB2 /* Resources */, + 22EB17F407E92B9B4F3B601A /* Sources */, + B4530C282FE2BDE3D1071779 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GoogleMapsSwiftDemos; + productName = GoogleMapsSwiftDemos; + productReference = BB018BB688C4953D45CED8CB /* GoogleMapsSwiftDemos.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5874A4B608088BA842B934C2 /* Project object */ = { + isa = PBXProject; + attributes = { + }; + buildConfigurationList = C0C7530177213989B18ED3FC /* Build configuration list for PBXProject "GoogleMapsSwiftDemos" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + en, + Base, + ); + mainGroup = D82B2453023AA1ECA43F9A8B; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 56AB213E97CDD413D8EDA2B0 /* GoogleMapsSwiftDemos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2ADDADBB329E244AF7ED1FB2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6FEFF5E13C84596B02FC5CEC /* step5.png in Resources */, + B7345D33E5BF31A00280355C /* step1@2x.png in Resources */, + 07C43705738284E4921A680D /* step4.png in Resources */, + FF9199E04763094C5992E3BA /* argentina.png in Resources */, + 2E3A841E83BC75E113066610 /* boat.png in Resources */, + 58C1F1AFB8E52C5A7D70FD54 /* aeroplane@2x.png in Resources */, + DEA4846A15B8330203AB1573 /* step6.png in Resources */, + 41B7BD6313F16FFB24A404B2 /* step7.png in Resources */, + 11BF5BA8105198E326CF4F96 /* aeroplane.png in Resources */, + 51B06A8BE3A738B98EC2B2B3 /* botswana-large.png in Resources */, + 4773BB1B2EBD65AEC32F9E7C /* step3.png in Resources */, + 293B8794611FD45B631FE20C /* step2.png in Resources */, + A4FC0324F71E06035CB2BE88 /* popup_santa@2x.png in Resources */, + B69D158DC43E0889B5BF1561 /* glow-marker.png in Resources */, + B9465AA9D8B047C4FF6EFF98 /* step1.png in Resources */, + D3E1235A287B63F1C8326B39 /* step3@2x.png in Resources */, + CA20AF965D945AFC7DA5FB88 /* australia.png in Resources */, + 4D932F94F684532C309EB4BF /* step7@2x.png in Resources */, + 20F35834239A135EC77A752C /* arrow@2x.png in Resources */, + 91D8C803DEDB4A701699AF8D /* glow-marker@2x.png in Resources */, + 93DF8E1D616607C73D24D731 /* step5@2x.png in Resources */, + CBCC9C39BE2C3870BF2F29A8 /* australia-large@2x.png in Resources */, + CC516093DCE57637E995CD6C /* arrow.png in Resources */, + 05CF5A358A5758D0A61027A5 /* boat@2x.png in Resources */, + C29CA0E15834811100992B2E /* x29@2x.png in Resources */, + 2D218EA1029C3FB7A528179F /* spitfire.png in Resources */, + B3F740B819DBAA1F4E651157 /* h1@2x.png in Resources */, + AC10E7A466233271826AB625 /* spitfire@2x.png in Resources */, + 1E769ACDBCCB6DB84D5E3E8E /* h1.png in Resources */, + B6565F6882481535DAB5C86A /* voyager.png in Resources */, + FE3B7D57BDD934A0FF2E3405 /* x29.png in Resources */, + 0AA49E1F095C6DD67BBDC556 /* voyager@2x.png in Resources */, + 6305177FAABE60AC55BDC3E4 /* bulgaria.png in Resources */, + 04E60E4743F55E6BFC17B7B3 /* bulgaria-large.png in Resources */, + C7EBC2EA4F8DE36B09BCB5C9 /* argentina-large.png in Resources */, + 26B8792B58E56800CA3D60ED /* step2@2x.png in Resources */, + 88135F34106D3360A5820F96 /* popup_santa.png in Resources */, + 02DF0DD4C3D8B5849C510C23 /* step6@2x.png in Resources */, + F269AECF0CD0F37AAD2D09CD /* step8@2x.png in Resources */, + 3D3F2A8EA739004B1489A792 /* step8.png in Resources */, + F37349A51F746D3C2D991773 /* australia-large.png in Resources */, + D581AE7D87DF1D47CFB93CFA /* botswana.png in Resources */, + A586B9513453238497AB855A /* step4@2x.png in Resources */, + 21AFA9E1157E41E761EDC099 /* newark_nj_1922.jpg in Resources */, + A1F2BF43DACC00B6B26249F8 /* mapstyle-night.json in Resources */, + 4A9E3BF5489DCA1C7A200A64 /* mapstyle-retro.json in Resources */, + 4F01A0839D992FC9F724CD85 /* mapstyle-silver.json in Resources */, + A412E68F580DA7D80E303215 /* track.json in Resources */, + 362C49E4DB90848A82AA5F1B /* museum-exhibits.json in Resources */, + F0AC2AA4D171EC887FE1532C /* LaunchScreen.storyboard in Resources */, + 8679E8541C17881309FB5F11 /* MapsDemoAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 22EB17F407E92B9B4F3B601A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33F23B3B99CCD40567D80076 /* MapZoomViewController.swift in Sources */, + 188F5FEB25C05500FFF796C4 /* SampleMapStyle.swift in Sources */, + 7148D5BB00ABDA10E0F0C5A4 /* SampleLevel.swift in Sources */, + ABF592027F3E684817715EDD /* PolylinesViewController.swift in Sources */, + 2B28FB6F052E4609695C6CD5 /* PanoramaServiceController.swift in Sources */, + F1E12C97E57BD8D71DA70360 /* TileLayerViewController.swift in Sources */, + EFF3F2E5F34BAB29EBE27D38 /* MyLocationViewController.swift in Sources */, + 7A2ADB0D632A94D7D60F67A7 /* VisibleRegionViewController.swift in Sources */, + DFBE1D0F69ADD7B44416635D /* MapTypesViewController.swift in Sources */, + 3C0A5FE1143A58DBEA18A599 /* IndoorViewController.swift in Sources */, + 156F720D1E526A533B03DD2B /* MarkerEventsViewController.swift in Sources */, + BC338ACA3F71AD2AB5BB55E6 /* TrafficMapViewController.swift in Sources */, + 0F1EA55F7B0EAA26EB2060A2 /* SnapshotReadyViewController.swift in Sources */, + 0000CCE582DF20F853E43502 /* CameraViewController.swift in Sources */, + E31E402B435CE656EAF45BD6 /* CustomIndoorViewController.swift in Sources */, + 6F974DAC19BC11133EBD3B64 /* StructuredGeocoderViewController.swift in Sources */, + AF7238FE8B018260C51578B6 /* StyledMapViewController.swift in Sources */, + F1AECCBACB7BC8DDB3DB2887 /* IndoorMuseumNavigationViewController.swift in Sources */, + 63AA012E2D9D55A712B7B766 /* MarkerLayerViewController.swift in Sources */, + 9B820E7BA576743B85114CB7 /* GestureControlViewController.swift in Sources */, + BE232DD5D3AE0A5D14DA43F4 /* CustomMarkersViewController.swift in Sources */, + F49EEF61AEC832CE859F6B37 /* AnimatedUIViewMarkerViewController.swift in Sources */, + 550FE98EC9032009D39A6EA1 /* FixedPanoramaViewController.swift in Sources */, + 3888570B6E197983F2249FCD /* PaddingBehaviorViewController.swift in Sources */, + C997DD044658258CF28058BB /* AnimatedCurrentLocationViewController.swift in Sources */, + 0B806397B1092EB141DCE52C /* DoubleMapViewController.swift in Sources */, + 4A9F5DDF75B725448DB6B0EF /* PanoramaViewController.swift in Sources */, + 9DDFC10B53970CA1F0007AF5 /* MarkersViewController.swift in Sources */, + B9A86B6A12CD89751A59B283 /* PolygonsViewController.swift in Sources */, + 2C0E3A82E5EFE9F47DB9256F /* FrameRateViewController.swift in Sources */, + 97DD9977EC5047161D0F7A40 /* GroundOverlayViewController.swift in Sources */, + 4788C5C048ACF0FC15C2A75A /* Samples.swift in Sources */, + A558875AEB68DDE9D1A63798 /* GradientPolylinesViewController.swift in Sources */, + 793779D4C5EF17E64E9A6B88 /* BasicMapViewController.swift in Sources */, + DC204BFAEB6DCDA7F7610536 /* GMSMapStyle+Bundle.swift in Sources */, + 7C4EF58C8DA531E5FC32D9DD /* GeocoderViewController.swift in Sources */, + E3D9CA39859BD1CDB3863347 /* FitBoundsViewController.swift in Sources */, + 71C2D64F6C0E6E8694320943 /* MarkerInfoWindowViewController.swift in Sources */, + CE0349DCBBE305F2A475E6ED /* MapLayerViewController.swift in Sources */, + 5016E68430C4B4F06ACA1596 /* SampleListViewController.swift in Sources */, + 76B15EA60EA7D5B327D47BF3 /* AppDelegate.swift in Sources */, + 6FE45DC6C071ABCD078807F7 /* SDKConstants.swift in Sources */, + 47F0AC7126A1B045383D2D1E /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5BC265AFD5C3C8E67F030E30 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + INTERMEDIATE_DIR = "$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)"; + SDKROOT = iphoneos; + SHARED_INTERMEDIATE_DIR = "$(SYMROOT)/DerivedSources/$(CONFIGURATION)"; + }; + name = Default; + }; + 6798450D013ACAFF39CF0187 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = x86_64; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = ./GoogleMapsSwiftDemos/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SDKROOT)/System/Library/Frameworks", + ); + PRODUCT_NAME = GoogleMapsSwiftDemos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)"; + USE_HEADERMAP = NO; + WRAPPER_PREFIX = ""; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 65556A7591C40D0E8B77989F /* Build configuration list for PBXNativeTarget "GoogleMapsSwiftDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6798450D013ACAFF39CF0187 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; + C0C7530177213989B18ED3FC /* Build configuration list for PBXProject "GoogleMapsSwiftDemos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BC265AFD5C3C8E67F030E30 /* Default */, + ); + defaultConfigurationIsVisible = 1; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5874A4B608088BA842B934C2 /* Project object */; +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Info.plist b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Info.plist new file mode 100755 index 00000000..d5172fef --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.example.GoogleMapsDemos + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + 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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 00000000..59e3d6e9 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,103 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "Maps-SDK-Demo-App_120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "Maps-SDK-Demo-App_180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "Maps-SDK-Demo-App_76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "Maps-SDK-Demo-App_152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "Maps-SDK-Demo-App_167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png new file mode 100755 index 00000000..fa908bbb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png new file mode 100755 index 00000000..b60865e6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png new file mode 100755 index 00000000..6a5a948e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png new file mode 100755 index 00000000..cd6d1593 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png new file mode 100755 index 00000000..90b28d14 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/Contents.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/Contents.json new file mode 100755 index 00000000..2d92bd53 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/MapsDemoAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/LaunchScreen.storyboard b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/LaunchScreen.storyboard new file mode 100755 index 00000000..8c740c7b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/LaunchScreen.storyboard @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1.png new file mode 100755 index 00000000..fff81970 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1@2x.png new file mode 100755 index 00000000..ce36c63a Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/h1@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire.png new file mode 100755 index 00000000..5c76dc9c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire@2x.png new file mode 100755 index 00000000..a09b75cc Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/spitfire@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager.png new file mode 100755 index 00000000..d657f22f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager@2x.png new file mode 100755 index 00000000..b2a668eb Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/voyager@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29.png new file mode 100755 index 00000000..0edd3f13 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29@2x.png new file mode 100755 index 00000000..eda3d15e Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/Museum-Icons/x29@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane.png new file mode 100755 index 00000000..5114ee49 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane@2x.png new file mode 100755 index 00000000..5c5012ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/aeroplane@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ar.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ar.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ar.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina-large.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina-large.png new file mode 100755 index 00000000..b75247ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina-large.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina.png new file mode 100755 index 00000000..9095376a Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/argentina.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow.png new file mode 100755 index 00000000..8d8c3f7f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow@2x.png new file mode 100755 index 00000000..4b0ff7ce Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/arrow@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large.png new file mode 100755 index 00000000..787aed5c Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large@2x.png new file mode 100755 index 00000000..15d4d2af Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia-large@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia.png new file mode 100755 index 00000000..12afbb94 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/australia.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat.png new file mode 100755 index 00000000..67221da3 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat@2x.png new file mode 100755 index 00000000..3f316d36 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/boat@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana-large.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana-large.png new file mode 100755 index 00000000..c1504917 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana-large.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana.png new file mode 100755 index 00000000..a006d99b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/botswana.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria-large.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria-large.png new file mode 100755 index 00000000..0107da02 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria-large.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria.png new file mode 100755 index 00000000..04cdb294 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/bulgaria.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ca.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ca.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ca.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/cs.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/cs.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/cs.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/da.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/da.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/da.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/de.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/de.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/de.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/el.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/el.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/el.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en_GB.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en_GB.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/en_GB.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/es.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/es.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/es.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fi.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fi.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/fr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker.png new file mode 100755 index 00000000..eb0f5961 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker@2x.png new file mode 100755 index 00000000..e415c3f0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/glow-marker@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/he.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/he.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/he.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hu.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hu.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/hu.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/id.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/id.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/id.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/it.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/it.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/it.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ja.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ja.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ja.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ko.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ko.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ko.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-night.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-night.json new file mode 100755 index 00000000..1cbd6162 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-retro.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-retro.json new file mode 100755 index 00000000..f6a16e82 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-silver.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/mapstyle-silver.json new file mode 100755 index 00000000..340e5d62 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ms.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ms.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ms.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/museum-exhibits.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/museum-exhibits.json new file mode 100755 index 00000000..25b0a5db --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nb.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nb.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nb.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/newark_nj_1922.jpg b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/newark_nj_1922.jpg new file mode 100755 index 00000000..1f4ae595 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/newark_nj_1922.jpg differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nl.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nl.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/nl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pl.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pl.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pl.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa.png new file mode 100755 index 00000000..f2968efa Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa@2x.png new file mode 100755 index 00000000..3f908289 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/popup_santa@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt_PT.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt_PT.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/pt_PT.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ro.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ro.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ro.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ru.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ru.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/ru.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sk.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sk.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1.png new file mode 100755 index 00000000..1cac6970 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1@2x.png new file mode 100755 index 00000000..8d99108f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step1@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2.png new file mode 100755 index 00000000..18ee7f2b Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2@2x.png new file mode 100755 index 00000000..5c37b1db Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step2@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3.png new file mode 100755 index 00000000..795b90f1 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3@2x.png new file mode 100755 index 00000000..950d7543 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step3@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4.png new file mode 100755 index 00000000..3d7416b6 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4@2x.png new file mode 100755 index 00000000..7ae50e54 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step4@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5.png new file mode 100755 index 00000000..3a8bd1e0 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5@2x.png new file mode 100755 index 00000000..236f3a0f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step5@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6.png new file mode 100755 index 00000000..c6580e6f Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6@2x.png new file mode 100755 index 00000000..2bed812d Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step6@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7.png new file mode 100755 index 00000000..4e171786 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7@2x.png new file mode 100755 index 00000000..88932e69 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step7@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8.png new file mode 100755 index 00000000..7eefde75 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8@2x.png b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8@2x.png new file mode 100755 index 00000000..6f49e3d8 Binary files /dev/null and b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/step8@2x.png differ diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sv.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sv.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/sv.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/th.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/th.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/th.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/tr.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/tr.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/tr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/track.json b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/track.json new file mode 100755 index 00000000..f2cc108b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/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/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/uk.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/uk.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/uk.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/vi.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/vi.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/vi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_CN.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_CN.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_CN.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_TW.lproj/InfoPlist.strings b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_TW.lproj/InfoPlist.strings new file mode 100755 index 00000000..477b28ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Resources/zh_TW.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/AppDelegate.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/AppDelegate.swift new file mode 100755 index 00000000..402352e0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/AppDelegate.swift @@ -0,0 +1,41 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate, UIWindowSceneDelegate { + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + + GMSServices.provideAPIKey(SDKConstants.apiKey) + // Metal is the preferred renderer. + GMSServices.setMetalRendererEnabled(true) + + return true + } + + func application( + _ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, + options: UIScene.ConnectionOptions + ) -> UISceneConfiguration { + let config = UISceneConfiguration( + name: "Default configuration", sessionRole: connectingSceneSession.role) + config.delegateClass = SceneDelegate.self + return config + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SDKConstants.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SDKConstants.swift new file mode 100755 index 00000000..e63b8810 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SDKConstants.swift @@ -0,0 +1,27 @@ +// Copyright 2020 Google LLC. 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 CoreLocation + +enum SDKConstants { + + #error("Register for API Key and insert here. Then delete this line.") + static let apiKey = "" +} + +extension CLLocationCoordinate2D { + static let sydney = CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086) + // Victoria, Australia + static let victoria = CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085) + static let newYork = CLLocationCoordinate2D(latitude: 40.761388, longitude: -73.978133) +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SampleListViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SampleListViewController.swift new file mode 100755 index 00000000..7c0905ff --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SampleListViewController.swift @@ -0,0 +1,79 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class SampleListViewController: UIViewController { + static let sampleCellIdentifier = "sampleCellIdentifier" + + let sampleSections = Samples.allSamples() + lazy var tableView: UITableView = UITableView() + + override func viewDidLoad() { + super.viewDidLoad() + + view.addSubview(tableView) + tableView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableView.topAnchor.constraint(equalTo: view.topAnchor), + tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + ]) + tableView.register( + UITableViewCell.self, forCellReuseIdentifier: SampleListViewController.sampleCellIdentifier) + tableView.dataSource = self + tableView.delegate = self + } +} + +extension SampleListViewController: UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return sampleSections[section].samples.count + } + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell( + withIdentifier: SampleListViewController.sampleCellIdentifier, for: indexPath) + if let sample = sample(at: indexPath) { + cell.textLabel?.text = sample.title + } + return cell + } + + func numberOfSections(in tableView: UITableView) -> Int { + return sampleSections.count + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return sampleSections[section].name + } + + func sample(at indexPath: IndexPath) -> Sample? { + guard indexPath.section >= 0 && indexPath.section < sampleSections.count else { return nil } + let section = sampleSections[indexPath.section] + guard indexPath.row >= 0 && indexPath.row < section.samples.count else { return nil } + return section.samples[indexPath.row] + } +} + +extension SampleListViewController: UITableViewDelegate { + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + if let sample = sample(at: indexPath) { + let viewController = sample.viewControllerClass.init() + viewController.title = sample.title + navigationController?.pushViewController(viewController, animated: true) + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedCurrentLocationViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedCurrentLocationViewController.swift new file mode 100755 index 00000000..37521a45 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedCurrentLocationViewController.swift @@ -0,0 +1,87 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class AnimatedCurrentLocationViewController: UIViewController { + + private var locationMarker: GMSMarker? + + private let locationManager = CLLocationManager() + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 38.8879, longitude: -77.0200, zoom: 17) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + mapView.settings.myLocationButton = false + mapView.settings.indoorPicker = false + view = mapView + } + + override func viewDidLoad() { + super.viewDidLoad() + + // Setup location services + guard CLLocationManager.locationServicesEnabled() else { + print("Please enable location services") + return + } + + if CLLocationManager.authorizationStatus() == .denied { + print("Please authorize location services") + return + } + + locationManager.requestWhenInUseAuthorization() + locationManager.delegate = self + locationManager.desiredAccuracy = kCLLocationAccuracyBest + locationManager.distanceFilter = 5.0 + locationManager.startUpdatingLocation() + } +} + +extension AnimatedCurrentLocationViewController: CLLocationManagerDelegate { + func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + if CLLocationManager.authorizationStatus() == .denied { + print("Please authorize location services") + return + } + print("Unable to get current location. Error: \(error.localizedDescription)") + } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + guard let location = locations.last else { return } + if let existingMaker = locationMarker { + CATransaction.begin() + CATransaction.setAnimationDuration(2.0) + existingMaker.position = location.coordinate + CATransaction.commit() + } else { + let marker = GMSMarker(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/ + let animationFrames = (1...8).compactMap { + UIImage(named: "step\($0)") + } + marker.icon = UIImage.animatedImage(with: animationFrames, duration: 0.8) + // Taking into account walker's shadow. + marker.groundAnchor = CGPoint(x: 0.5, y: 0.97) + marker.map = mapView + locationMarker = marker + } + mapView.animate(with: GMSCameraUpdate.setTarget(location.coordinate, zoom: 17)) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedUIViewMarkerViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedUIViewMarkerViewController.swift new file mode 100755 index 00000000..f4a16cb7 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/AnimatedUIViewMarkerViewController.swift @@ -0,0 +1,114 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +// Sample code for customizing the marker. +class AnimatedUIViewMarkerViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.8683, longitude: 151.2086, zoom: 5) + return GMSMapView(frame: .zero, camera: camera) + }() + + private var infoView: UIImageView? + + override func loadView() { + view = mapView + mapView.delegate = self + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + mapView.clear() + addDefaultMarkers() + } + + override func viewDidLoad() { + super.viewDidLoad() + + NotificationCenter.default.addObserver( + self, selector: #selector(applicationWillEnterForeground), + name: UIApplication.willEnterForegroundNotification, object: nil) + } + + @objc func applicationWillEnterForeground() { + mapView.clear() + addDefaultMarkers() + } + + func addDefaultMarkers() { + // Add a custom 'glow' marker with a pulsing blue shadow on Sydney. + let sydneyMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) + sydneyMarker.title = "Sydney!" + sydneyMarker.iconView = UIImageView(image: UIImage(named: "glow-marker")) + sydneyMarker.iconView?.contentMode = .center + sydneyMarker.map = mapView + guard let oldBounds = sydneyMarker.iconView?.bounds else { return } + sydneyMarker.iconView?.bounds = CGRect( + origin: oldBounds.origin, + size: CGSize(width: oldBounds.size.width * 2, height: oldBounds.size.height * 2)) + sydneyMarker.groundAnchor = CGPoint(x: 0.5, y: 0.75) + sydneyMarker.infoWindowAnchor = CGPoint(x: 0.5, y: 0.25) + let sydneyGlow = UIImageView(image: UIImage(named: "glow-marker")) + sydneyGlow.layer.shadowColor = UIColor.blue.cgColor + sydneyGlow.layer.shadowOffset = .zero + sydneyGlow.layer.shadowRadius = 8 + sydneyGlow.layer.shadowOpacity = 1.0 + sydneyGlow.layer.opacity = 0.0 + sydneyMarker.iconView?.addSubview(sydneyGlow) + sydneyGlow.center = CGPoint(x: oldBounds.size.width, y: oldBounds.size.height) + UIView.animate( + withDuration: 1, delay: 0, options: [.curveEaseInOut, .autoreverse, .repeat], + animations: { + sydneyGlow.layer.opacity = 1.0 + }, + completion: { _ in + // If the animation is ever terminated, no need to keep tracking the view for changes. + sydneyMarker.tracksViewChanges = false + }) + } +} + +extension AnimatedUIViewMarkerViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? { + marker.tracksInfoWindowChanges = true + let infoView = UIImageView(image: UIImage(named: "arrow")) + infoView.backgroundColor = .clear + UIView.animate( + withDuration: 1, delay: 0, options: [.curveLinear], + animations: { + infoView.backgroundColor = UIColor( + hue: CGFloat.random(in: 0..<1), saturation: 1, brightness: 1, alpha: 1) + }, + completion: { _ in + UIView.animate( + withDuration: 1, delay: 0, options: [.curveLinear], + animations: { + infoView.backgroundColor = .clear + }, + completion: { _ in + marker.tracksInfoWindowChanges = false + }) + }) + self.infoView = infoView + return infoView + } + + func mapView(_ mapView: GMSMapView, didCloseInfoWindowOf marker: GMSMarker) { + infoView = nil + marker.tracksInfoWindowChanges = false + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/BasicMapViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/BasicMapViewController.swift new file mode 100755 index 00000000..c100ec32 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/BasicMapViewController.swift @@ -0,0 +1,55 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class BasicMapViewController: UIViewController { + var statusLabel: UILabel! + + override func viewDidLoad() { + super.viewDidLoad() + + // Seattle coordinates + let camera = GMSCameraPosition(latitude: 47.6089945, longitude: -122.3410462, zoom: 14) + let mapView = GMSMapView(frame: view.bounds, camera: camera) + mapView.delegate = self + view = mapView + navigationController?.navigationBar.isTranslucent = false + + statusLabel = UILabel(frame: .zero) + statusLabel.alpha = 0.0 + statusLabel.backgroundColor = .blue + statusLabel.textColor = .white + statusLabel.textAlignment = .center + view.addSubview(statusLabel) + statusLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + statusLabel.topAnchor.constraint(equalTo: view.topAnchor), + statusLabel.heightAnchor.constraint(equalToConstant: 30), + statusLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor), + statusLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor), + ]) + } +} + +extension BasicMapViewController: GMSMapViewDelegate { + func mapViewDidStartTileRendering(_ mapView: GMSMapView) { + statusLabel.alpha = 0.8 + statusLabel.text = "Rendering" + } + + func mapViewDidFinishTileRendering(_ mapView: GMSMapView) { + statusLabel.alpha = 0.0 + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CameraViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CameraViewController.swift new file mode 100755 index 00000000..67bf79ed --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CameraViewController.swift @@ -0,0 +1,68 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class CameraViewController: UIViewController { + + private let interval: TimeInterval = 1 / 30 + + private let bearing: CLLocationDirection = 10 + + private let angle: Double = 10 + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(target: .victoria, zoom: 20, bearing: 0, viewingAngle: 0) + return GMSMapView(frame: .zero, camera: camera) + }() + + private var timer: Timer? + + override func loadView() { + mapView.settings.zoomGestures = false + mapView.settings.scrollGestures = false + mapView.settings.rotateGestures = false + mapView.settings.tiltGestures = false + view = mapView + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + // Every 0.033 seconds, adjust the position of the camera. + timer = Timer.scheduledTimer( + timeInterval: interval, target: self, selector: #selector(moveCamera), userInfo: nil, + repeats: true) + } + + override func viewDidDisappear(_ animated: Bool) { + super.viewDidDisappear(animated) + timer?.invalidate() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + timer?.invalidate() + } + + // Updates zoom and viewing angle, the map zoom out and the map appears in perspective, with + // far-away features appearing smaller, and nearby features appearing larger. + @objc func moveCamera() { + let zoom = max(mapView.camera.zoom - 0.1, 17.5) + let newPosition = GMSCameraPosition( + target: mapView.camera.target, zoom: zoom, bearing: mapView.camera.bearing + bearing, + viewingAngle: mapView.camera.viewingAngle + angle) + mapView.animate(to: newPosition) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomIndoorViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomIndoorViewController.swift new file mode 100755 index 00000000..0ad261a7 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomIndoorViewController.swift @@ -0,0 +1,119 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class CustomIndoorViewController: UIViewController { + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 37.78318, longitude: -122.403874, zoom: 18) + let mapView = GMSMapView(frame: .zero, camera: camera) + return mapView + }() + private lazy var levelPickerView: UIPickerView = UIPickerView() + private var sampleLevels: [SampleLevel] = [] + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = .gray + + mapView.settings.myLocationButton = false + mapView.settings.indoorPicker = false // We are implementing a custom level picker. + mapView.isIndoorEnabled = true // Defaults to true. Set to false to hide indoor maps. + mapView.indoorDisplay.delegate = self + mapView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(mapView) + + // This UIPicker will be populated with the levels of the active building. + levelPickerView.delegate = self + levelPickerView.dataSource = self + levelPickerView.showsSelectionIndicator = true + levelPickerView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(levelPickerView) + + let metrics: [String: Float] = ["height": 180] + let views: [String: UIView] = ["mapView": mapView, "levelPickerView": levelPickerView] + NSLayoutConstraint.activate( + NSLayoutConstraint.constraints( + withVisualFormat: "|[mapView]|", options: [], metrics: metrics, views: views) + + NSLayoutConstraint.constraints( + withVisualFormat: "V:|[mapView][levelPickerView(height)]|", options: [], metrics: metrics, + views: views) + + NSLayoutConstraint.constraints( + withVisualFormat: "|[levelPickerView]|", options: [], metrics: metrics, views: views)) + } + +} + +extension CustomIndoorViewController: GMSIndoorDisplayDelegate { + + func didChangeActiveBuilding(_ building: GMSIndoorBuilding?) { + guard let building = building else { + return + } + + var sampleLevels: [SampleLevel] = [] + if building.isUnderground { + // If this building is completely underground, add a fake 'top' floor. + sampleLevels.append(.fakeGroundLevel) + } + sampleLevels.append(contentsOf: building.levels.map({ .actualLevel($0) })) + + self.sampleLevels = sampleLevels + + levelPickerView.reloadAllComponents() + levelPickerView.selectRow(-1, inComponent: 0, animated: false) + } + + func didChangeActiveLevel(_ level: GMSIndoorLevel?) { + // On level change, sync our level picker's selection to the IndoorDisplay. + // Since a nil level is returned for the "ground level" of an underground only building, default + // a nil value to the name of the fake ground level enum. + let sampleLevel = SampleLevel(indoorLevel: level) + if let index = sampleLevels.firstIndex(of: sampleLevel) { + let currentlySelectedIndex = levelPickerView.selectedRow(inComponent: 0) + if index != currentlySelectedIndex { + levelPickerView.selectRow(index, inComponent: 0, animated: false) + } + } + } + +} + +extension CustomIndoorViewController: UIPickerViewDelegate { + + func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { + // On user selection of a level in the picker, set the right level in IndoorDisplay + mapView.indoorDisplay.activeLevel = sampleLevels[row].indoorLevel + } + + func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) + -> String? + { + return sampleLevels[row].name + } + +} + +extension CustomIndoorViewController: UIPickerViewDataSource { + + func numberOfComponents(in pickerView: UIPickerView) -> Int { + return 1 + } + + func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + return sampleLevels.count + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomMarkersViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomMarkersViewController.swift new file mode 100755 index 00000000..8622b700 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/CustomMarkersViewController.swift @@ -0,0 +1,98 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +// Sample code for customizing the marker. +class CustomMarkersViewController: UIViewController { + private var markerCount = 0 + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + view = mapView + addDefaultMarkers() + navigationController?.navigationBar.isTranslucent = false + let addButton = UIBarButtonItem( + barButtonSystemItem: .add, target: self, action: #selector(tapAdd)) + let clearButton = UIBarButtonItem( + title: "Clear Markers", style: .plain, target: self, action: #selector(tapClear)) + navigationItem.rightBarButtonItems = [addButton, clearButton] + } + + func addDefaultMarkers() { + // Add a custom 'glow' marker around Sydney. + let sydneyMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) + sydneyMarker.title = "Sydney!" + sydneyMarker.icon = UIImage(named: "glow-marker") + sydneyMarker.map = mapView + + // Add a custom 'arrow' marker pointing to Melbourne. + let melbourneMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) + melbourneMarker.title = "Melbourne!" + melbourneMarker.icon = UIImage(named: "arrow") + melbourneMarker.map = mapView + } + + @objc func tapAdd() { + let bounds = GMSCoordinateBounds(region: mapView.projection.visibleRegion()) + // 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. + for count in 1...10 { + DispatchQueue.main.asyncAfter( + deadline: .now() + Double(count) * 0.25, + execute: { + self.addMarker(inBounds: bounds) + }) + } + } + + @objc func tapClear() { + mapView.clear() + addDefaultMarkers() + } + + @objc func addMarker(inBounds bounds: GMSCoordinateBounds) { + let coordinate = bounds.randomLocation() + let marker = GMSMarker( + position: CLLocationCoordinate2D( + latitude: coordinate.latitude, longitude: coordinate.longitude)) + markerCount += 1 + marker.title = "Marker #\(markerCount)" + marker.appearAnimation = .pop + marker.icon = GMSMarker.markerImage( + with: UIColor(hue: CGFloat.random(in: 0..<1), saturation: 1, brightness: 1, alpha: 1)) + marker.rotation = Double.random(in: -10...10) + marker.map = mapView + } +} + +extension GMSCoordinateBounds { + func randomLocation() -> CLLocationCoordinate2D { + let randomLatitude = CLLocationDegrees.random( + in: southWest.latitude.. GMSFrameRate { + switch mapView.preferredFrameRate { + case .powerSave: + return .conservative + case .conservative: + return .maximum + default: + return .powerSave + } + } + + func updateStatus() { + statusTextView.text = "Preferred frame rate: \(mapView.preferredFrameRate.name)" + } + +} + +extension GMSFrameRate { + + var name: String { + switch self { + case .powerSave: + return "PowerSave" + case .conservative: + return "Conservative" + default: + return "Maximum" + } + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GMSMapStyle+Bundle.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GMSMapStyle+Bundle.swift new file mode 100755 index 00000000..cde530f4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GMSMapStyle+Bundle.swift @@ -0,0 +1,23 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps + +extension GMSMapStyle { + convenience init?(named fileName: String) throws { + guard let styleURL = Bundle.main.url(forResource: fileName, withExtension: "json") else { + return nil + } + try self.init(contentsOfFileURL: styleURL) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GeocoderViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GeocoderViewController.swift new file mode 100755 index 00000000..19a62f94 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GeocoderViewController.swift @@ -0,0 +1,56 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +// Sample code for GeoCoder service. +class GeocoderViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 12) + return GMSMapView(frame: .zero, camera: camera) + }() + + private lazy var geocoder = GMSGeocoder() + + override func loadView() { + view = mapView + mapView.delegate = self + } +} + +extension GeocoderViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didLongPressAt coordinate: CLLocationCoordinate2D) { + // On a long press, reverse geocode this location. + geocoder.reverseGeocodeCoordinate(coordinate) { response, error in + guard let address = response?.firstResult() else { + let errorMessage = error.map { String(describing: $0) } ?? "" + print( + "Could not reverse geocode point (\(coordinate.latitude), \(coordinate.longitude)): \(errorMessage)" + ) + return + } + print("Geocoder result: \(address)") + let marker = GMSMarker(position: address.coordinate) + marker.appearAnimation = .pop + marker.map = mapView + + guard let lines = address.lines, let title = lines.first else { return } + marker.title = title + if lines.count > 1 { + marker.snippet = lines[1] + } + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GestureControlViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GestureControlViewController.swift new file mode 100755 index 00000000..0534a87a --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GestureControlViewController.swift @@ -0,0 +1,72 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class GestureControlViewController: UIViewController { + private let holderHeight: CGFloat = 60 + private let zoomLabelInset: CGFloat = 16 + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -25.5605, longitude: 133.605097, zoom: 3) + return GMSMapView(frame: .zero, camera: camera) + }() + private lazy var zoomSwitch: UISwitch = UISwitch(frame: .zero) + + override func viewDidLoad() { + super.viewDidLoad() + + view.addSubview(mapView) + + let holder = UIView(frame: .zero) + holder.backgroundColor = UIColor(white: 1, alpha: 0.8) + view.addSubview(holder) + + let zoomLabel = UILabel(frame: .zero) + zoomLabel.text = "Zoom gestures" + zoomLabel.font = .boldSystemFont(ofSize: 18) + holder.addSubview(zoomLabel) + + // Control zooming. + holder.addSubview(zoomSwitch) + zoomSwitch.addTarget(self, action: #selector(toggleZoom), for: .valueChanged) + zoomSwitch.isOn = true + + [mapView, holder, zoomLabel, zoomSwitch].forEach({ + $0.translatesAutoresizingMaskIntoConstraints = false + }) + NSLayoutConstraint.activate([ + mapView.leftAnchor.constraint(equalTo: view.leftAnchor), + mapView.rightAnchor.constraint(equalTo: view.rightAnchor), + mapView.topAnchor.constraint(equalTo: view.topAnchor), + mapView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + holder.heightAnchor.constraint(equalToConstant: holderHeight), + holder.centerXAnchor.constraint(equalTo: view.centerXAnchor), + holder.widthAnchor.constraint(equalTo: view.widthAnchor), + zoomLabel.leftAnchor.constraint(equalTo: holder.leftAnchor, constant: zoomLabelInset), + zoomLabel.centerYAnchor.constraint(equalTo: holder.centerYAnchor), + zoomSwitch.rightAnchor.constraint(equalTo: holder.rightAnchor, constant: -zoomLabelInset), + zoomSwitch.centerYAnchor.constraint( + equalTo: holder.centerYAnchor), + ]) + NSLayoutConstraint.activate([ + holder.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor) + ]) + } + + @objc func toggleZoom() { + mapView.settings.zoomGestures = zoomSwitch.isOn + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GradientPolylinesViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GradientPolylinesViewController.swift new file mode 100755 index 00000000..278f2b2b --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GradientPolylinesViewController.swift @@ -0,0 +1,79 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +struct Coordinate: Decodable { + let latitude: Double + let longitude: Double + let elevation: Double + + enum CodingKeys: String, CodingKey { + case elevation + case latitude = "lat" + case longitude = "lng" + } + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + latitude = try container.decode(Double.self, forKey: .latitude) + longitude = try container.decode(Double.self, forKey: .longitude) + elevation = try container.decode(Double.self, forKey: .elevation) + } +} + +final class GradientPolylinesViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition( + latitude: 44.1314, longitude: 9.6921, zoom: 14.059, bearing: 328, viewingAngle: 40) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + view = mapView + } + + override func viewDidLoad() { + super.viewDidLoad() + addTrackToMap() + } + + private func addTrackToMap() { + guard let filePath = Bundle.main.path(forResource: "track", ofType: "json") else { return } + guard let data = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else { return } + guard let track = try? JSONDecoder().decode([Coordinate].self, from: data) + else { + return + } + let path = GMSMutablePath() + var colorSpans: [GMSStyleSpan] = [] + var previousColor: UIColor? + + for coordinate in track { + path.addLatitude(coordinate.latitude, longitude: coordinate.longitude) + + let elevation = CGFloat(coordinate.elevation) + let toColor = UIColor(hue: elevation / 700.0, saturation: 1, brightness: 0.9, alpha: 1) + let fromColor = previousColor ?? toColor + let style = GMSStrokeStyle.gradient(from: fromColor, to: toColor) + colorSpans.append(GMSStyleSpan(style: style)) + previousColor = toColor + } + let polyline = GMSPolyline(path: path) + polyline.strokeWidth = 6 + polyline.map = mapView + polyline.spans = colorSpans + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GroundOverlayViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GroundOverlayViewController.swift new file mode 100755 index 00000000..99e18390 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/GroundOverlayViewController.swift @@ -0,0 +1,46 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class GroundOverlayViewController: UIViewController { + override func loadView() { + let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) + let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) + let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) + + // Choose the midpoint of the coordinate to focus the camera on. + let newark = GMSGeometryInterpolate(southWest, northEast, 0.5) + let cameraPosition = GMSCameraPosition(target: newark, zoom: 12, bearing: 0, viewingAngle: 45) + let mapView = GMSMapView(frame: .zero, camera: cameraPosition) + mapView.delegate = self + view = mapView + + // Add the ground overlay, centered in Newark, NJ + let groundOverlay = GMSGroundOverlay() + // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg + groundOverlay.icon = UIImage(named: "newark_nj_1922.jpg") + groundOverlay.isTappable = true + groundOverlay.position = newark + groundOverlay.bounds = overlayBounds + groundOverlay.map = mapView + } +} + +extension GroundOverlayViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) { + guard let groundOverlay = overlay as? GMSGroundOverlay else { return } + groundOverlay.opacity = Float.random(in: 0.5..<1) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorMuseumNavigationViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorMuseumNavigationViewController.swift new file mode 100755 index 00000000..8172f00e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorMuseumNavigationViewController.swift @@ -0,0 +1,143 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +struct Exhibit: Decodable { + let key: String + let name: String + let latitude: Double + let longitude: Double + let level: String + + private enum CodingKeys: String, CodingKey { + case key, name + case latitude = "lat" + case longitude = "lng" + case level + } + + var position: CLLocationCoordinate2D { + return CLLocationCoordinate2D(latitude: latitude, longitude: longitude) + } +} + +class IndoorMuseumNavigationViewController: UIViewController { + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 38.8879, longitude: -77.0200, zoom: 17) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.settings.myLocationButton = false + mapView.settings.indoorPicker = false + return mapView + }() + private lazy var segmentedControl = UISegmentedControl() + private var exhibits: [Exhibit]? + private var selectedExhibit: Exhibit? + private var selectedExhibitMarker: GMSMarker? + private var sampleLevels: [SampleLevel] = [] + + override func loadView() { + view = mapView + } + + override func viewDidLoad() { + super.viewDidLoad() + + mapView.delegate = self + mapView.indoorDisplay.delegate = self + + segmentedControl.tintColor = UIColor(red: 0.373, green: 0.667, blue: 0.882, alpha: 1.0) + segmentedControl.translatesAutoresizingMaskIntoConstraints = false + segmentedControl.addTarget( + self, action: #selector(changeExhibit), for: .valueChanged) + view.addSubview(segmentedControl) + + NSLayoutConstraint.activate([ + segmentedControl.trailingAnchor.constraint(equalTo: view.layoutMarginsGuide.trailingAnchor), + segmentedControl.bottomAnchor.constraint(equalTo: view.layoutMarginsGuide.bottomAnchor), + ]) + + // Load the exhibits configuration from JSON + if let jsonPath = Bundle.main.path(forResource: "museum-exhibits", ofType: "json") { + if let data = try? Data(contentsOf: URL(fileURLWithPath: jsonPath)) { + exhibits = try? JSONDecoder().decode([Exhibit].self, from: data) + } + } + + if let exhibits = exhibits { + for (i, exhibit) in exhibits.enumerated() { + segmentedControl.insertSegment( + with: UIImage(named: exhibit.key), at: i, animated: false) + } + } + } + + func moveMarker() { + guard let selectedExhibit = selectedExhibit else { + return + } + + if let selectedExhibitMarker = selectedExhibitMarker { + selectedExhibitMarker.position = selectedExhibit.position + } else { + selectedExhibitMarker = GMSMarker(position: selectedExhibit.position) + selectedExhibitMarker?.map = mapView + } + selectedExhibitMarker?.title = selectedExhibit.name + mapView.animate(toLocation: selectedExhibit.position) + mapView.animate(toZoom: 19) + } + + @objc func changeExhibit() { + guard let exhibits = exhibits else { + return + } + + selectedExhibit = exhibits[segmentedControl.selectedSegmentIndex] + moveMarker() + } + +} + +extension IndoorMuseumNavigationViewController: GMSMapViewDelegate { + + func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) { + guard let selectedExhibit = selectedExhibit, + let selectedSampleLevel = sampleLevels.first(where: { $0.shortName == selectedExhibit.level } + ), + let activeLevel = selectedSampleLevel.indoorLevel + else { + return + } + + if mapView.projection.contains(selectedExhibit.position) { + mapView.indoorDisplay.activeLevel = activeLevel + } + } + +} + +extension IndoorMuseumNavigationViewController: GMSIndoorDisplayDelegate { + + func didChangeActiveBuilding(_ building: GMSIndoorBuilding?) { + guard let building = building else { + return + } + + var sampleLevels: [SampleLevel] = [] + sampleLevels.append(contentsOf: building.levels.map({ .actualLevel($0) })) + self.sampleLevels = sampleLevels + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorViewController.swift new file mode 100755 index 00000000..e5fc54df --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/IndoorViewController.swift @@ -0,0 +1,51 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class IndoorViewController: UIViewController { + + let mapStyleOptions: [SampleMapStyle] = [.retro, .grayscale, .night, .normal] + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 37.78318, longitude: -122.403874, zoom: 18) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.settings.myLocationButton = true + return mapView + }() + + override func loadView() { + navigationItem.rightBarButtonItem = UIBarButtonItem( + title: "Style", style: .plain, target: self, action: #selector(changeMapStyle(_:))) + + view = mapView + } + + func alertAction(_ sampleMapStyle: SampleMapStyle) -> UIAlertAction { + return UIAlertAction(title: sampleMapStyle.description, style: .default) { [weak self] _ in + self?.mapView.mapStyle = sampleMapStyle.mapStyle + } + } + + @objc func changeMapStyle(_ sender: UIBarButtonItem) { + let alert = UIAlertController( + title: "Select map style", message: nil, preferredStyle: .actionSheet) + for style in mapStyleOptions { + alert.addAction(alertAction(style)) + } + alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) + alert.popoverPresentationController?.barButtonItem = sender + present(alert, animated: true, completion: nil) + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapLayerViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapLayerViewController.swift new file mode 100755 index 00000000..a46a72df --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapLayerViewController.swift @@ -0,0 +1,63 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class MapLayerViewController: UIViewController { + private let duration: TimeInterval = 2 + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(target: .victoria, zoom: 4) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + mapView.isMyLocationEnabled = true + view = mapView + + navigationItem.rightBarButtonItem = UIBarButtonItem( + title: "Fly to My Location", style: .plain, target: self, action: #selector(tapMyLocation)) + } + + @objc func tapMyLocation() { + guard let location = mapView.myLocation, CLLocationCoordinate2DIsValid(location.coordinate) + else { + return + } + mapView.layer.cameraLatitude = location.coordinate.latitude + mapView.layer.cameraLongitude = location.coordinate.longitude + mapView.layer.cameraBearing = 0 + + // Access the GMSMapLayer directly to modify the following properties with a + // specified timing function and duration. + addMapViewAnimation(key: kGMSLayerCameraLatitudeKey, toValue: location.coordinate.latitude) + addMapViewAnimation(key: kGMSLayerCameraLongitudeKey, toValue: location.coordinate.longitude) + addMapViewAnimation(key: kGMSLayerCameraBearingKey, toValue: 0) + + // Fly out to the minimum zoom and then zoom back to the current zoom! + let keyFrameAnimation = CAKeyframeAnimation(keyPath: kGMSLayerCameraZoomLevelKey) + keyFrameAnimation.duration = duration + let zoom = mapView.camera.zoom + keyFrameAnimation.values = [zoom, kGMSMinZoomLevel, zoom] + mapView.layer.add(keyFrameAnimation, forKey: kGMSLayerCameraZoomLevelKey) + } + + func addMapViewAnimation(key: String, toValue: Double) { + let animation = CABasicAnimation(keyPath: key) + animation.duration = duration + animation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) + animation.toValue = toValue + mapView.layer.add(animation, forKey: key) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapTypesViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapTypesViewController.swift new file mode 100755 index 00000000..51c70931 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapTypesViewController.swift @@ -0,0 +1,60 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class MapTypesViewController: UIViewController { + private let types: [GMSMapViewType] = [.normal, .satellite, .hybrid, .terrain] + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(target: .sydney, zoom: 12) + return GMSMapView(frame: .zero, camera: camera) + }() + + private lazy var segmentedControl: UISegmentedControl = { + return UISegmentedControl(items: types.map { "\($0)" }) + }() + + override func loadView() { + view = mapView + } + + override func viewDidLoad() { + super.viewDidLoad() + + segmentedControl.addTarget(self, action: #selector(changeMapType), for: .valueChanged) + navigationItem.titleView = segmentedControl + } + + @objc func changeMapType(_ sender: UISegmentedControl) { + mapView.mapType = types[sender.selectedSegmentIndex] + } +} + +extension GMSMapViewType: CustomStringConvertible { + public var description: String { + switch self { + case .normal: + return "Normal" + case .satellite: + return "Satellite" + case .hybrid: + return "Hybrid" + case .terrain: + return "Terrain" + default: + return "" + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapZoomViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapZoomViewController.swift new file mode 100755 index 00000000..739d3e1e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MapZoomViewController.swift @@ -0,0 +1,109 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +enum ModeEnum: String { + case defaultMode = "Default" + case zoomedIn = "Zoomed in" + case zoomedOut = "Zoomed out" + case smallRange = "Small range" + + init(index: UInt) { + switch index { + case 0: self = .defaultMode + case 1: self = .zoomedIn + case 2: self = .zoomedOut + case 3: self = .smallRange + default: self = .defaultMode + } + } + + var minZoom: Float { + switch self { + case .zoomedIn: + return 18 + case .smallRange: + return 10 + default: + return kGMSMinZoomLevel + } + } + + var maxZoom: Float { + switch self { + case .zoomedOut: + return 8 + case .smallRange: + return 11.5 + default: + return kGMSMaxZoomLevel + } + } + +} + +class MapZoomViewController: UIViewController { + + private let backgroundColor = UIColor(white: 1, alpha: 0.8) + + private let zoomRangeViewHeight: CGFloat = 30 + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 6) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.settings.scrollGestures = false + return mapView + }() + + private lazy var zoomRangeView: UITextView = { + let view = UITextView() + view.text = "" + view.textAlignment = .center + view.backgroundColor = backgroundColor + view.autoresizingMask = .flexibleWidth + view.isEditable = false + view.translatesAutoresizingMaskIntoConstraints = false + return view + }() + + private var nextMode: UInt = 0 + + override func loadView() { + view = mapView + navigationController?.navigationBar.isTranslucent = false + // Add a display for the current zoom range restriction. + view.addSubview(zoomRangeView) + NSLayoutConstraint.activate([ + zoomRangeView.topAnchor.constraint(equalTo: view.topAnchor), + zoomRangeView.heightAnchor.constraint(equalToConstant: zoomRangeViewHeight), + zoomRangeView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + zoomRangeView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + ]) + didTapNext() + + // Add a button toggling through modes. + navigationItem.rightBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .play, target: self, action: #selector(didTapNext)) + } + + @objc func didTapNext() { + let nextModeEnum = ModeEnum(index: nextMode) + mapView.setMinZoom(nextModeEnum.minZoom, maxZoom: nextModeEnum.maxZoom) + zoomRangeView.text = String( + format: "%@ (%.2f - %.2f)", nextModeEnum.rawValue, mapView.minZoom, mapView.maxZoom) + nextMode = (nextMode + 1) % 4 + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerEventsViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerEventsViewController.swift new file mode 100755 index 00000000..5f49f2d2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerEventsViewController.swift @@ -0,0 +1,61 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class MarkerEventsViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) + return GMSMapView(frame: .zero, camera: camera) + }() + + private var melbourneMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) + + override func loadView() { + let sydneyMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) + sydneyMarker.map = mapView + melbourneMarker.map = mapView + mapView.delegate = self + view = mapView + } +} + +extension MarkerEventsViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? { + if marker == melbourneMarker { + return UIImageView(image: UIImage(named: "Icon")) + } + return nil + } + + func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { + // Animate to the marker + CATransaction.begin() + CATransaction.setAnimationDuration(3) + let camera = GMSCameraPosition(target: marker.position, zoom: 8, bearing: 50, viewingAngle: 60) + mapView.animate(to: camera) + CATransaction.commit() + + // Melbourne marker has a InfoWindow so return false 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 false + } + return true + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerInfoWindowViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerInfoWindowViewController.swift new file mode 100755 index 00000000..a062a0f3 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerInfoWindowViewController.swift @@ -0,0 +1,87 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class MarkerInfoWindowViewController: UIViewController { + + private let sydneyMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) + + private let melbourneMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) + + private let brisbaneMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -27.4710107, longitude: 153.0234489)) + + private lazy var contentView: UIImageView = { + return UIImageView(image: UIImage(named: "aeroplane")) + }() + + override func loadView() { + let cameraPosition = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) + let mapView = GMSMapView(frame: .zero, camera: cameraPosition) + mapView.delegate = self + view = mapView + + sydneyMarker.title = "Sydney" + sydneyMarker.snippet = "Population: 4,605,992" + sydneyMarker.map = mapView + + melbourneMarker.title = "Melbourne" + melbourneMarker.snippet = "Population: 4,169,103" + melbourneMarker.map = mapView + + brisbaneMarker.title = "Brisbane" + brisbaneMarker.snippet = "Population: 2,189,878" + brisbaneMarker.map = mapView + } +} + +extension MarkerInfoWindowViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? { + if marker == sydneyMarker { + return contentView + } + return nil + } + + func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? { + if marker == brisbaneMarker { + return contentView + } + return nil + } + + func mapView(_ mapView: GMSMapView, didCloseInfoWindowOf marker: GMSMarker) { + showToast(message: "Info window for marker \(marker.title ?? "") closed.") + } + + func mapView(_ mapView: GMSMapView, didLongPressInfoWindowOf marker: GMSMarker) { + showToast(message: "Info window for marker \(marker.title ?? "") long pressed.") + } +} + +extension UIViewController { + func showToast(message: String) { + let toast = UIAlertController(title: nil, message: message, preferredStyle: .alert) + present( + toast, animated: true, + completion: { + DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(2)) { + toast.dismiss(animated: true) + } + }) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerLayerViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerLayerViewController.swift new file mode 100755 index 00000000..a3417893 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkerLayerViewController.swift @@ -0,0 +1,125 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class PathIterator: IteratorProtocol { + let path: GMSPath + private var target: UInt + + init(path: GMSPath) { + self.path = path + target = 0 + } + + func next() -> CLLocationCoordinate2D? { + target = (target + 1) % path.count() + return path.coordinate(at: target) + } +} + +final class MarkerLayerViewController: UIViewController { + + private var fadedMarker: GMSMarker? { + didSet { + oldValue?.opacity = 1 + fadedMarker?.opacity = 0.5 + } + } + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 50.6042, longitude: 3.9599, zoom: 5) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + mapView.isMyLocationEnabled = true + view = mapView + mapView.delegate = self + } + + override func viewDidLoad() { + super.viewDidLoad() + + // Creates a plane that flies to several airports around western Europe. + var path = GMSMutablePath() + path.addLatitude(52.310683, longitude: 4.765121) + path.addLatitude(51.471386, longitude: -0.457148) + path.addLatitude(49.01378, longitude: 2.5542943) + path.addLatitude(50.036194, longitude: 8.554519) + var marker = GMSMarker(position: path.coordinate(at: 0)) + marker.icon = UIImage(named: "aeroplane") + marker.groundAnchor = CGPoint(x: 0.5, y: 0.5) + marker.isFlat = true + marker.map = mapView + marker.userData = PathIterator(path: path) + animateToNextCoordinate(marker) + + // Creates a boat that moves around the Baltic Sea. + path = GMSMutablePath() + path.addLatitude(57.598335, longitude: 11.290512) + path.addLatitude(55.665193, longitude: 10.741196) + path.addLatitude(55.065787, longitude: 11.083488) + path.addLatitude(54.699234, longitude: 10.863762) + + path.addLatitude(54.482805, longitude: 12.061272) + path.addLatitude(55.819802, longitude: 16.148186) + path.addLatitude(54.927142, longitude: 16.455803) + path.addLatitude(54.482805, longitude: 12.061272) + + path.addLatitude(54.699234, longitude: 10.863762) + path.addLatitude(55.065787, longitude: 11.083488) + path.addLatitude(55.665193, longitude: 10.741196) + marker = GMSMarker(position: path.coordinate(at: 0)) + marker.icon = UIImage(named: "boat") + marker.map = mapView + marker.userData = PathIterator(path: path) + animateToNextCoordinate(marker) + } + + func animateToNextCoordinate(_ marker: GMSMarker) { + guard let coordinateList = marker.userData as? PathIterator else { return } + guard let coordinate = coordinateList.next() else { return } + let previous = marker.position + let heading = GMSGeometryHeading(previous, coordinate) + let distance = GMSGeometryDistance(previous, coordinate) + + // 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 + CATransaction.setCompletionBlock { + self.animateToNextCoordinate(marker) + } + marker.position = coordinate + CATransaction.commit() + + // If this marker is flat, implicitly trigger a change in rotation, which will finish quickly. + if marker.isFlat { + marker.rotation = heading + } + } +} + +extension MarkerLayerViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { + fadedMarker = marker + return true + } + + func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) { + fadedMarker = nil + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkersViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkersViewController.swift new file mode 100755 index 00000000..748902b0 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MarkersViewController.swift @@ -0,0 +1,64 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +// Sample code for adding a marker. +class MarkersViewController: UIViewController { + private lazy var sydneyMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) + + private lazy var melbourneMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + view = mapView + + sydneyMarker.title = "Sydney" + sydneyMarker.snippet = "Population: 4,605,992" + sydneyMarker.isFlat = false + sydneyMarker.rotation = 30 + print("sydneyMarker: \(sydneyMarker)") + + let australiaMarker = GMSMarker( + position: CLLocationCoordinate2D(latitude: -27.994401, longitude: 140.07019)) + australiaMarker.title = "Australia" + australiaMarker.appearAnimation = .pop + australiaMarker.isFlat = true + australiaMarker.isDraggable = true + australiaMarker.groundAnchor = CGPoint(x: 0.5, y: 0.5) + australiaMarker.icon = UIImage(named: "australia") + australiaMarker.map = mapView + + mapView.selectedMarker = sydneyMarker + navigationItem.rightBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .add, target: self, action: #selector(tapAdd)) + } + + @objc func tapAdd() { + if sydneyMarker.map == nil { + sydneyMarker.map = mapView + } else { + sydneyMarker.map = nil + } + melbourneMarker.title = "Melbourne" + melbourneMarker.snippet = "Population: 4,169,103" + melbourneMarker.map = mapView + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MyLocationViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MyLocationViewController.swift new file mode 100755 index 00000000..fcef02c5 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/MyLocationViewController.swift @@ -0,0 +1,69 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class MyLocationViewController: UIViewController { + + private let cameraLatitude: CLLocationDegrees = -33.868 + + private let cameraLongitude: CLLocationDegrees = 151.2086 + + private let cameraZoom: Float = 12 + + lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition( + latitude: cameraLatitude, longitude: cameraLongitude, zoom: cameraZoom) + return GMSMapView(frame: .zero, camera: camera) + }() + + var observation: NSKeyValueObservation? + var location: CLLocation? { + didSet { + guard oldValue == nil, let firstLocation = location else { return } + mapView.camera = GMSCameraPosition(target: firstLocation.coordinate, zoom: 14) + } + } + + override func viewDidLoad() { + super.viewDidLoad() + + mapView.delegate = self + mapView.settings.compassButton = true + mapView.settings.myLocationButton = true + mapView.isMyLocationEnabled = true + view = mapView + + // Listen to the myLocation property of GMSMapView. + observation = mapView.observe(\.myLocation, options: [.new]) { + [weak self] mapView, _ in + self?.location = mapView.myLocation + } + } + + deinit { + observation?.invalidate() + } +} + +extension MyLocationViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didTapMyLocation location: CLLocationCoordinate2D) { + let alert = UIAlertController( + title: "Location Tapped", + message: "Current location: <\(location.latitude), \(location.longitude)>", + preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "OK", style: .default)) + present(alert, animated: true) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PaddingBehaviorViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PaddingBehaviorViewController.swift new file mode 100755 index 00000000..56c89e0f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PaddingBehaviorViewController.swift @@ -0,0 +1,124 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class PaddingBehaviorViewController: UIViewController { + + private static let panoramaCoordinate: CLLocationCoordinate2D = CLLocationCoordinate2D( + latitude: 40.761388, longitude: -73.978133) + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 6) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.padding = UIEdgeInsets(top: 0, left: 20, bottom: 40, right: 60) + mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight] + return mapView + }() + private lazy var panoramaView: GMSPanoramaView = GMSPanoramaView() + lazy private var statusLabel: UILabel = UILabel() + lazy private var changeBehaviorButton: UIButton = UIButton(type: .system) + lazy private var toggleViewButton: UIBarButtonItem = UIBarButtonItem( + title: "Toggle View", style: .plain, target: self, action: #selector(toggleViewType)) + lazy private var toggleFrameButton: UIButton = UIButton(type: .system) + var hasShrunk = false + + override func viewDidLoad() { + super.viewDidLoad() + + mapView.frame = view.bounds + view.addSubview(mapView) + + // Add status label. + let statusBarHeight = UIApplication.shared.statusBarFrame.height + let navigationHeight = navigationController?.navigationBar.frame.height ?? 0 + let topYOffset = statusBarHeight + navigationHeight + statusLabel.frame = CGRect(x: 30, y: topYOffset, width: 0, height: 30) + statusLabel.textColor = .brown + statusLabel.textAlignment = .left + statusLabel.text = "Behavior: Always" + statusLabel.sizeToFit() + + // Add behavior modifier button. + changeBehaviorButton.frame = CGRect(x: 30, y: 30 + topYOffset, width: 0, height: 0) + changeBehaviorButton.setTitle("Next Behavior", for: .normal) + changeBehaviorButton.sizeToFit() + changeBehaviorButton.addTarget(self, action: #selector(nextBehavior), for: .touchUpInside) + + // Add frame animation button. + navigationItem.rightBarButtonItem = toggleViewButton + + // Add change view type button. + toggleFrameButton.frame = CGRect(x: 30, y: 60 + topYOffset, width: 0, height: 0) + toggleFrameButton.setTitle("Animate Frame", for: .normal) + toggleFrameButton.sizeToFit() + toggleFrameButton.addTarget(self, action: #selector(toggleFrame), for: .touchUpInside) + + mapView.addSubview(statusLabel) + mapView.addSubview(changeBehaviorButton) + mapView.addSubview(toggleFrameButton) + + hasShrunk = false + + // Pre-load PanoramaView + panoramaView = GMSPanoramaView.panorama( + withFrame: view.bounds, nearCoordinate: PaddingBehaviorViewController.panoramaCoordinate) + panoramaView.autoresizingMask = [.flexibleWidth, .flexibleHeight] + } + + @objc func toggleFrame() { + let size = view.bounds.size + let point = view.bounds.origin + UIView.animate(withDuration: 2) { [unowned self] in + if self.hasShrunk { + self.mapView.frame = self.view.bounds + self.panoramaView.frame = self.mapView.frame + } else { + self.mapView.frame = CGRect( + x: point.x, y: point.y, width: size.width / 2, height: size.height / 2) + self.panoramaView.frame = self.mapView.frame + } + self.hasShrunk = !self.hasShrunk + self.view.setNeedsLayout() + self.view.layoutIfNeeded() + } + } + + @objc func toggleViewType() { + if view.subviews.contains(mapView) { + mapView.removeFromSuperview() + view.addSubview(panoramaView) + panoramaView.addSubview(toggleFrameButton) + } else { + panoramaView.removeFromSuperview() + view.addSubview(mapView) + mapView.addSubview(toggleFrameButton) + } + } + + @objc func nextBehavior() { + switch mapView.paddingAdjustmentBehavior { + case .always: + mapView.paddingAdjustmentBehavior = .automatic + statusLabel.text = "Behavior: Automatic" + case .automatic: + mapView.paddingAdjustmentBehavior = .never + statusLabel.text = "Behavior: Never" + default: + mapView.paddingAdjustmentBehavior = .always + statusLabel.text = "Behavior: Always" + } + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaServiceController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaServiceController.swift new file mode 100755 index 00000000..4624f0cb --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaServiceController.swift @@ -0,0 +1,87 @@ +// Copyright 2022 Google LLC. 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 GoogleMaps +import UIKit + +final class PanoramaServiceController: UIViewController { + private let markerLocation = CLLocationCoordinate2D.sydney + + private var mySubview = UIView(frame: .zero) + private var statusLabel = UILabel(frame: .zero) + private var result = UITextView(frame: .zero) + + private var panoService: GMSPanoramaService? + private var requestCount = 0 + private var responseCount = 0 + + override func loadView() { + navigationController?.navigationBar.isTranslucent = false + view = mySubview + + statusLabel.alpha = 1.0 + statusLabel.backgroundColor = .blue + statusLabel.textColor = .white + statusLabel.textAlignment = .center + statusLabel.text = "Service Never Called" + view.addSubview(statusLabel) + statusLabel.translatesAutoresizingMaskIntoConstraints = false + + view.addSubview(result) + result.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + statusLabel.topAnchor.constraint(equalTo: view.topAnchor), + statusLabel.heightAnchor.constraint(equalToConstant: 30), + statusLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor), + statusLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor), + + result.topAnchor.constraint(equalTo: statusLabel.bottomAnchor), + result.bottomAnchor.constraint(equalTo: view.bottomAnchor), + result.leadingAnchor.constraint(equalTo: view.leadingAnchor), + result.trailingAnchor.constraint(equalTo: view.trailingAnchor), + ]) + } + + override func viewDidAppear(_ animated: Bool) { + if panoService == nil { + panoService = GMSPanoramaService() + statusLabel.text = "Service initialized \(panoService?.description ?? "nil")" + } + + requestCount += 1 + panoService?.requestPanoramaNearCoordinate( + markerLocation, + radius: 300, // meters + source: .outside + ) { + pano, err in + self.responseCount += 1 + self.statusLabel.text = + "Callback invoked \(self.responseCount) time(s) out of \(self.requestCount) requests." + + if let pano = pano { + self.result.text = [ + "id: \(pano.panoramaID)", + "#neighbors: \(pano.links.count)", + "coordinate: \(pano.coordinate)", + "description: \(pano.description)", + "debugDescription: \(pano.debugDescription)", + ].joined(separator: "\n") + } else { + self.result.text = "" + } + } + super.viewWillAppear(animated) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaViewController.swift new file mode 100755 index 00000000..1189e9ad --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PanoramaViewController.swift @@ -0,0 +1,69 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class PanoramaViewController: UIViewController { + + private let markerLocation = CLLocationCoordinate2D(latitude: 40.761455, longitude: -73.977814) + private var panoramaView = GMSPanoramaView(frame: .zero) + private var statusLabel = UILabel(frame: .zero) + private var configured = false + + override func loadView() { + navigationController?.navigationBar.isTranslucent = false + panoramaView.moveNearCoordinate(.newYork) + panoramaView.backgroundColor = .gray + panoramaView.delegate = self + view = panoramaView + + statusLabel.alpha = 0.0 + statusLabel.backgroundColor = .blue + statusLabel.textColor = .white + statusLabel.textAlignment = .center + view.addSubview(statusLabel) + statusLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + statusLabel.topAnchor.constraint(equalTo: view.topAnchor), + statusLabel.heightAnchor.constraint(equalToConstant: 30), + statusLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor), + statusLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor), + ]) + } +} + +extension PanoramaViewController: GMSPanoramaViewDelegate { + func panoramaView(_ panoramaView: GMSPanoramaView, didMove camera: GMSPanoramaCamera) { + print("Camera:\(camera.orientation.heading), \(camera.orientation.pitch), \(camera.zoom)") + } + + func panoramaView(_ view: GMSPanoramaView, didMoveTo panorama: GMSPanorama?) { + if configured { return } + let marker = GMSMarker(position: markerLocation) + marker.icon = GMSMarker.markerImage(with: .purple) + marker.panoramaView = panoramaView + let heading = GMSGeometryHeading(.newYork, markerLocation) + panoramaView.camera = GMSPanoramaCamera(heading: heading, pitch: 0, zoom: 1) + configured = true + } + + func panoramaViewDidStartRendering(_ panoramaView: GMSPanoramaView) { + statusLabel.alpha = 0.8 + statusLabel.text = "Rendering" + } + + func panoramaViewDidFinishRendering(_ panoramaView: GMSPanoramaView) { + statusLabel.alpha = 0 + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolygonsViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolygonsViewController.swift new file mode 100755 index 00000000..e64d3ed2 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolygonsViewController.swift @@ -0,0 +1,275 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class PolygonsViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let cameraPosition = GMSCameraPosition(latitude: 39.13006, longitude: -77.508545, zoom: 4) + return GMSMapView(frame: .zero, camera: cameraPosition) + }() + + override func loadView() { + mapView.delegate = self + view = mapView + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + // Create renderer related objects after view appears, so a renderer will be available; + let polygon = GMSPolygon() + polygon.path = GMSPath.newYorkState() + polygon.holes = [GMSPath.newYorkStateHole()] + polygon.title = "New York" + polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.2) + polygon.strokeColor = .black + polygon.strokeWidth = 2 + polygon.isTappable = true + polygon.map = mapView + + // Copy the existing polygon and its settings and use it as a base for the + // second polygon. + let carolina = polygon.copy() as! GMSPolygon + carolina.title = "North Carolina" + carolina.path = GMSPath.northCarolina() + carolina.fillColor = UIColor(red: 0, green: 0.25, blue: 0, alpha: 0.5) + carolina.map = mapView + } +} + +extension GMSPath { + static func newYorkState() -> GMSPath { + let data: [[CLLocationDegrees]] = [ + [42.5142, -79.7624], + [42.7783, -79.0672], + [42.8508, -78.9313], + [42.9061, -78.9024], + [42.9554, -78.9313], + [42.9584, -78.9656], + [42.9886, -79.0219], + [43.0568, -79.0027], + [43.0769, -79.0727], + [43.1220, -79.0713], + [43.1441, -79.0302], + [43.1801, -79.0576], + [43.2482, -79.0604], + [43.2812, -79.0837], + [43.4509, -79.2004], + [43.6311, -78.6909], + [43.6321, -76.7958], + [43.9987, -76.4978], + [44.0965, -76.4388], + [44.1349, -76.3536], + [44.1989, -76.3124], + [44.2049, -76.2437], + [44.2413, -76.1655], + [44.2973, -76.1353], + [44.3327, -76.0474], + [44.3553, -75.9856], + [44.3749, -75.9196], + [44.3994, -75.8730], + [44.4308, -75.8221], + [44.4740, -75.8098], + [44.5425, -75.7288], + [44.6647, -75.5585], + [44.7672, -75.4088], + [44.8101, -75.3442], + [44.8383, -75.3058], + [44.8676, -75.2399], + [44.9211, -75.1204], + [44.9609, -74.9995], + [44.9803, -74.9899], + [44.9852, -74.9103], + [45.0017, -74.8856], + [45.0153, -74.8306], + [45.0046, -74.7633], + [45.0027, -74.7070], + [45.0007, -74.5642], + [44.9920, -74.1467], + [45.0037, -73.7306], + [45.0085, -73.4203], + [45.0109, -73.3430], + [44.9874, -73.3547], + [44.9648, -73.3379], + [44.9160, -73.3396], + [44.8354, -73.3739], + [44.8013, -73.3324], + [44.7419, -73.3667], + [44.6139, -73.3873], + [44.5787, -73.3736], + [44.4916, -73.3049], + [44.4289, -73.2953], + [44.3513, -73.3365], + [44.2757, -73.3118], + [44.1980, -73.3818], + [44.1142, -73.4079], + [44.0511, -73.4367], + [44.0165, -73.4065], + [43.9375, -73.4079], + [43.8771, -73.3749], + [43.8167, -73.3914], + [43.7790, -73.3557], + [43.6460, -73.4244], + [43.5893, -73.4340], + [43.5655, -73.3969], + [43.6112, -73.3818], + [43.6271, -73.3049], + [43.5764, -73.3063], + [43.5675, -73.2582], + [43.5227, -73.2445], + [43.2582, -73.2582], + [42.9715, -73.2733], + [42.8004, -73.2898], + [42.7460, -73.2664], + [42.4630, -73.3708], + [42.0840, -73.5095], + [42.0218, -73.4903], + [41.8808, -73.4999], + [41.2953, -73.5535], + [41.2128, -73.4834], + [41.1011, -73.7275], + [41.0237, -73.6644], + [40.9851, -73.6578], + [40.9509, -73.6132], + [41.1869, -72.4823], + [41.2551, -72.0950], + [41.3005, -71.9714], + [41.3108, -71.9193], + [41.1838, -71.7915], + [41.1249, -71.7929], + [41.0462, -71.7517], + [40.6306, -72.9465], + [40.5368, -73.4628], + [40.4887, -73.8885], + [40.5232, -73.9490], + [40.4772, -74.2271], + [40.4861, -74.2532], + [40.6468, -74.1866], + [40.6556, -74.0547], + [40.7618, -74.0156], + [40.8699, -73.9421], + [40.9980, -73.8934], + [41.0343, -73.9854], + [41.3268, -74.6274], + [41.3583, -74.7084], + [41.3811, -74.7101], + [41.4386, -74.8265], + [41.5075, -74.9913], + [41.6000, -75.0668], + [41.6719, -75.0366], + [41.7672, -75.0545], + [41.8808, -75.1945], + [42.0013, -75.3552], + [42.0003, -75.4266], + [42.0013, -77.0306], + [41.9993, -79.7250], + [42.0003, -79.7621], + [42.1827, -79.7621], + [42.5146, -79.7621], + ] + let path = GMSMutablePath() + for degrees in data { + path.addLatitude(degrees[0], longitude: degrees[1]) + } + return path + } + + static func newYorkStateHole() -> GMSPath { + let path = GMSMutablePath() + path.addLatitude(43.5000, longitude: -76.3651) + path.addLatitude(43.5000, longitude: -74.3651) + path.addLatitude(42.0000, longitude: -74.3651) + return path + } + + static func northCarolina() -> GMSPath { + let path = GMSMutablePath() + let data = [ + [33.7963, -78.4850], + [34.8037, -79.6742], + [34.8206, -80.8003], + [34.9377, -80.7880], + [35.1019, -80.9377], + [35.0356, -81.0379], + [35.1457, -81.0324], + [35.1660, -81.3867], + [35.1985, -82.2739], + [35.2041, -82.3933], + [35.0637, -82.7765], + [35.0817, -82.7861], + [34.9996, -83.1075], + [34.9918, -83.6183], + [34.9918, -84.3201], + [35.2131, -84.2885], + [35.2680, -84.2226], + [35.2310, -84.1113], + [35.2815, -84.0454], + [35.4058, -84.0248], + [35.4719, -83.9424], + [35.5166, -83.8559], + [35.5512, -83.6938], + [35.5680, -83.5181], + [35.6327, -83.3849], + [35.7142, -83.2475], + [35.7799, -82.9962], + [35.8445, -82.9276], + [35.9224, -82.8191], + [35.9958, -82.7710], + [36.0613, -82.6419], + [35.9702, -82.6103], + [35.9547, -82.5677], + [36.0236, -82.4730], + [36.0669, -82.4194], + [36.1168, -82.3535], + [36.1345, -82.2862], + [36.1467, -82.1461], + [36.1035, -82.1228], + [36.1268, -82.0267], + [36.2797, -81.9360], + [36.3527, -81.7987], + [36.3361, -81.7081], + [36.5880, -81.6724], + [36.5659, -80.7234], + [36.5438, -80.2977], + [36.5449, -79.6729], + [36.5449, -77.2559], + [36.5505, -75.7562], + [36.3129, -75.7068], + [35.7131, -75.4129], + [35.2041, -75.4720], + [34.9794, -76.0748], + [34.5258, -76.4951], + [34.5880, -76.8109], + [34.5314, -77.1378], + [34.3910, -77.4481], + [34.0481, -77.7983], + [33.7666, -77.9260], + [33.7963, -78.4863], + ] + for degrees in data { + path.addLatitude(degrees[0], longitude: degrees[1]) + } + return path + } +} + +extension PolygonsViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) { + // When a polygon is tapped, randomly change its fill color to a new hue. + guard let polygon = overlay as? GMSPolygon else { return } + polygon.fillColor = UIColor( + hue: CGFloat.random(in: 0..<1), saturation: 1, brightness: 1, alpha: 0.5) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolylinesViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolylinesViewController.swift new file mode 100755 index 00000000..3a82aa40 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/PolylinesViewController.swift @@ -0,0 +1,72 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class PolylinesViewController: UIViewController { + private lazy var styles: [GMSStrokeStyle] = { + let greenStyle = GMSStrokeStyle.gradient(from: .green, to: UIColor.green.withAlphaComponent(0)) + let redStyle = GMSStrokeStyle.gradient(from: UIColor.red.withAlphaComponent(0), to: .red) + return [greenStyle, redStyle, GMSStrokeStyle.solidColor(UIColor(white: 0, alpha: 0))] + }() + private var pathLength: Double = 0 + private var pos: Double = 0 + private var polylines: [GMSPolyline] = [] + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -30, longitude: -175, zoom: 3) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + view = mapView + mapView.accessibilityElementsHidden = true + } + + override func viewDidLoad() { + super.viewDidLoad() + + var path = GMSMutablePath() + path.addLatitude(-33.866901, longitude: 151.195988) + path.addLatitude(-18, longitude: 179) + path.addLatitude(21.291982, longitude: -157.821856) + path.addLatitude(37.423802, longitude: -122.091859) + path.addLatitude(-12, longitude: -77) + path.addLatitude(-33.866901, longitude: 151.195988) + path = path.pathOffset(byLatitude: -30, longitude: 0) + pathLength = path.length(of: .geodesic) / 21 + for i in 0..<30 { + let polyline = GMSPolyline(path: path.pathOffset(byLatitude: Double(i) * 1.5, longitude: 0)) + polyline.strokeWidth = 8 + polyline.geodesic = true + polyline.map = mapView + polylines.append(polyline) + } + animatePath() + } + + // Updates the path style every 0.1 seconds. + private func animatePath() { + polylines.forEach { + if let path = $0.path { + $0.spans = GMSStyleSpansOffset(path, styles, [NSNumber(value: pathLength)], .geodesic, pos) + } + } + pos -= 50000 + + DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { + self.animatePath() + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleLevel.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleLevel.swift new file mode 100755 index 00000000..8608d10d --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleLevel.swift @@ -0,0 +1,55 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps + +enum SampleLevel: Equatable { + case fakeGroundLevel + case actualLevel(GMSIndoorLevel) + + init(indoorLevel: GMSIndoorLevel?) { + if let level = indoorLevel { + self = .actualLevel(level) + } else { + self = .fakeGroundLevel + } + } + + var name: String { + switch self { + case .fakeGroundLevel: + return "\u{2014}" // use an em dash for 'above ground' + case .actualLevel(let level): + return level.name ?? "" + } + } + + var shortName: String? { + switch self { + case .fakeGroundLevel: + return nil + case .actualLevel(let level): + return level.shortName ?? "" + } + } + + var indoorLevel: GMSIndoorLevel? { + switch self { + case .fakeGroundLevel: + return nil + case .actualLevel(let level): + return level + } + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleMapStyle.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleMapStyle.swift new file mode 100755 index 00000000..c5f7cb38 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SampleMapStyle.swift @@ -0,0 +1,75 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps + +enum SampleMapStyle: CustomStringConvertible, CaseIterable { + case normal + case retro + case grayscale + case night + case clean + + private static let mapStyleJSON = """ + [ + { + "featureType" : "poi.business", + "elementType" : "all", + "stylers" : [ + { + "visibility" : "off" + } + ] + }, + { + "featureType" : "transit", + "elementType" : "labels.icon", + "stylers" : [ + { + "visibility" : "off" + } + ] + } + ] + """ + + var description: String { + switch self { + case .normal: + return "Normal" + case .retro: + return "Retro" + case .grayscale: + return "Grayscale" + case .night: + return "Night" + case .clean: + return "No business points of interest, no transit" + } + } + + var mapStyle: GMSMapStyle? { + switch self { + case .normal: + return nil + case .retro: + return try? GMSMapStyle(named: "mapstyle-retro") + case .grayscale: + return try? GMSMapStyle(named: "mapstyle-silver") + case .night: + return try? GMSMapStyle(named: "mapstyle-night") + case .clean: + return try? GMSMapStyle(jsonString: SampleMapStyle.mapStyleJSON) + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/Samples.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/Samples.swift new file mode 100755 index 00000000..7bd187cf --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/Samples.swift @@ -0,0 +1,90 @@ +// Copyright 2022 Google LLC. 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 + +struct Sample { + let viewControllerClass: UIViewController.Type + let title: String +} + +struct Section { + let name: String + let samples: [Sample] +} + +enum Samples { + static func allSamples() -> [Section] { + let mapSamples = [ + Sample(viewControllerClass: BasicMapViewController.self, title: "Basic Map"), + Sample(viewControllerClass: MapTypesViewController.self, title: "Map Types"), + Sample(viewControllerClass: StyledMapViewController.self, title: "Styled Map"), + Sample(viewControllerClass: TrafficMapViewController.self, title: "Traffic Layer"), + Sample(viewControllerClass: MyLocationViewController.self, title: "My Location"), + Sample(viewControllerClass: IndoorViewController.self, title: "Indoor"), + Sample( + viewControllerClass: CustomIndoorViewController.self, + title: "Indoor with Custom Level Select"), + Sample( + viewControllerClass: IndoorMuseumNavigationViewController.self, + title: "Indoor Museum Navigator"), + Sample(viewControllerClass: GestureControlViewController.self, title: "Gesture Control"), + Sample(viewControllerClass: SnapshotReadyViewController.self, title: "Snapshot Ready"), + Sample(viewControllerClass: DoubleMapViewController.self, title: "Two Maps"), + Sample(viewControllerClass: VisibleRegionViewController.self, title: "Visible Regions"), + Sample(viewControllerClass: MapZoomViewController.self, title: "Min/Max Zoom"), + Sample(viewControllerClass: FrameRateViewController.self, title: "Frame Rate"), + Sample(viewControllerClass: PaddingBehaviorViewController.self, title: "Padding Behavior"), + ] + let overlaySamples = [ + Sample(viewControllerClass: MarkersViewController.self, title: "Markers"), + Sample(viewControllerClass: CustomMarkersViewController.self, title: "Custom Markers"), + Sample(viewControllerClass: AnimatedUIViewMarkerViewController.self, title: "UIView Markers"), + Sample(viewControllerClass: MarkerEventsViewController.self, title: "Marker Events"), + Sample(viewControllerClass: MarkerLayerViewController.self, title: "Marker Layer"), + Sample( + viewControllerClass: MarkerInfoWindowViewController.self, title: "Custom Info Windows"), + Sample(viewControllerClass: PolygonsViewController.self, title: "Polygons"), + Sample(viewControllerClass: PolylinesViewController.self, title: "Polylines"), + Sample(viewControllerClass: GroundOverlayViewController.self, title: "Ground Overlays"), + Sample(viewControllerClass: TileLayerViewController.self, title: "Tile Layers"), + Sample( + viewControllerClass: AnimatedCurrentLocationViewController.self, + title: "Animated Current Location"), + Sample( + viewControllerClass: GradientPolylinesViewController.self, title: "Gradient Polylines"), + ] + let panoramaSamples = [ + Sample(viewControllerClass: PanoramaServiceController.self, title: "Panorama Service"), + Sample(viewControllerClass: PanoramaViewController.self, title: "Street View"), + Sample(viewControllerClass: FixedPanoramaViewController.self, title: "Fixed Street View"), + ] + let cameraSamples = [ + Sample(viewControllerClass: FitBoundsViewController.self, title: "Fit Bounds"), + Sample(viewControllerClass: CameraViewController.self, title: "Camera Animation"), + Sample(viewControllerClass: MapLayerViewController.self, title: "Map Layer"), + ] + let serviceSamples = [ + Sample(viewControllerClass: GeocoderViewController.self, title: "Geocoder"), + Sample( + viewControllerClass: StructuredGeocoderViewController.self, title: "Structured Geocoder"), + ] + return [ + Section(name: "Map", samples: mapSamples), + Section(name: "Panorama", samples: panoramaSamples), + Section(name: "Overlays", samples: overlaySamples), + Section(name: "Camera", samples: cameraSamples), + Section(name: "Services", samples: serviceSamples), + ] + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SnapshotReadyViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SnapshotReadyViewController.swift new file mode 100755 index 00000000..ae9c57b8 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/SnapshotReadyViewController.swift @@ -0,0 +1,118 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class SnapshotReadyViewController: UIViewController { + lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 6) + return GMSMapView(frame: .zero, camera: camera) + }() + private lazy var statusLabel: UILabel = UILabel() + private lazy var waitButton: UIBarButtonItem = UIBarButtonItem() + private var isAwaitingSnapshot = false { + didSet { + waitButton.isEnabled = !isAwaitingSnapshot + if isAwaitingSnapshot { + waitButton.title = "Waiting" + } else { + waitButton.title = "Wait for snapshot" + } + } + } + + override func loadView() { + view = mapView + navigationController?.navigationBar.isTranslucent = false + + mapView.delegate = self + + // Add status label, initially hidden. + statusLabel.alpha = 0 + statusLabel.autoresizingMask = .flexibleWidth + statusLabel.backgroundColor = .blue + statusLabel.textColor = .white + statusLabel.textAlignment = .center + view.addSubview(statusLabel) + statusLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + statusLabel.leftAnchor.constraint(equalTo: view.leftAnchor), + statusLabel.rightAnchor.constraint(equalTo: view.rightAnchor), + statusLabel.heightAnchor.constraint(equalToConstant: 30), + ]) + NSLayoutConstraint.activate([ + statusLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor) + ]) + + // Add a wait button to signify on the next SnapshotReady event, a screenshot of the map will + // be taken. + waitButton = UIBarButtonItem( + title: "Wait for snapshot", style: .plain, target: self, action: #selector(didTapWait)) + navigationItem.rightBarButtonItem = waitButton + + } + + @objc func didTapWait() { + isAwaitingSnapshot = true + } + + func takeSnapshot() { + // Take a snapshot of the map. + UIGraphicsBeginImageContextWithOptions(mapView.bounds.size, true, 0) + mapView.drawHierarchy(in: mapView.bounds, afterScreenUpdates: true) + let mapSnapshot = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + // Put snapshot image into an UIImageView and overlay on top of map. + let imageView = UIImageView(image: mapSnapshot) + imageView.layer.borderColor = UIColor.red.cgColor + imageView.layer.borderWidth = 10 + mapView.addSubview(imageView) + + // Remove imageView after 1 second. + DispatchQueue.main.asyncAfter( + deadline: .now() + 1 + ) { + UIView.animate( + withDuration: 1, + animations: { + imageView.alpha = 0 + }, + completion: { _ in + imageView.removeFromSuperview() + }) + } + } + +} + +extension SnapshotReadyViewController: GMSMapViewDelegate { + + func mapViewSnapshotReady(_ mapView: GMSMapView) { + if isAwaitingSnapshot { + isAwaitingSnapshot = false + takeSnapshot() + } + + statusLabel.alpha = 0.8 + statusLabel.text = "Snapshot Ready" + // Remove status label after 1 second. + DispatchQueue.main.asyncAfter( + deadline: .now() + 1 + ) { + self.statusLabel.alpha = 0 + } + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StructuredGeocoderViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StructuredGeocoderViewController.swift new file mode 100755 index 00000000..7f917de4 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StructuredGeocoderViewController.swift @@ -0,0 +1,71 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +// Sample code for GeoCoder service. +class StructuredGeocoderViewController: UIViewController { + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 12) + return GMSMapView(frame: .zero, camera: camera) + }() + + private lazy var geocoder = GMSGeocoder() + + override func loadView() { + view = mapView + mapView.delegate = self + } + +} + +extension StructuredGeocoderViewController: GMSMapViewDelegate { + func mapView(_ mapView: GMSMapView, didLongPressAt coordinate: CLLocationCoordinate2D) { + // On a long press, reverse geocode this location. + geocoder.reverseGeocodeCoordinate(coordinate) { response, error in + guard let address = response?.firstResult() else { + let errorMessage = error.map { String(describing: $0) } ?? "" + print( + """ + Could not reverse geocode point (\(coordinate.latitude), \(coordinate.longitude)): \ + \(errorMessage) + """ + ) + return + } + print("Geocoder result: \(address)") + let marker = GMSMarker(position: address.coordinate) + marker.appearAnimation = .pop + marker.map = mapView + marker.title = address.thoroughfare + mapView.selectedMarker = marker + + var snippet = "" + if let subLocality = address.subLocality { + snippet.append("subLocality: \(subLocality)\n") + } + if let locality = address.locality { + snippet.append("subLocality: \(locality)\n") + } + if let administrativeArea = address.administrativeArea { + snippet.append("administrativeArea: \(administrativeArea)\n") + } + if let country = address.country { + snippet.append("country: \(country)\n") + } + marker.snippet = snippet + } + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StyledMapViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StyledMapViewController.swift new file mode 100755 index 00000000..1c63a140 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/StyledMapViewController.swift @@ -0,0 +1,52 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class StyledMapViewController: UIViewController { + lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 12) + return GMSMapView(frame: .zero, camera: camera) + }() + + override func loadView() { + view = mapView + + navigationItem.rightBarButtonItem = UIBarButtonItem( + title: "Style", style: .plain, target: self, action: #selector(changeMapStyle)) + + updateUI(style: .retro) + } + + func updateUI(style: SampleMapStyle) { + navigationItem.title = "\(style)" + mapView.mapStyle = style.mapStyle + } + + @objc func changeMapStyle(_ sender: UIBarButtonItem) { + let alert = UIAlertController( + title: "Select map style", message: nil, preferredStyle: .actionSheet) + for style in SampleMapStyle.allCases { + alert.addAction( + UIAlertAction( + title: style.description, style: .default + ) { _ in + self.updateUI(style: style) + }) + } + alert.addAction(UIAlertAction(title: "Cancel", style: .cancel)) + alert.popoverPresentationController?.barButtonItem = sender + present(alert, animated: true) + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TileLayerViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TileLayerViewController.swift new file mode 100755 index 00000000..7f6855f3 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TileLayerViewController.swift @@ -0,0 +1,67 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +final class TileLayerViewController: UIViewController { + private var selectedIndex = 0 { + didSet { + updateTileLayer() + } + } + private var tileLayer: GMSURLTileLayer? + + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: 37.78318, longitude: -122.403874, zoom: 18) + return GMSMapView(frame: .zero, camera: camera) + }() + + private lazy var segmentedControl: UISegmentedControl = { + let floorNames = ["1", "2", "3"] + return UISegmentedControl(items: floorNames) + }() + + override func loadView() { + mapView.isBuildingsEnabled = false + mapView.isIndoorEnabled = false + view = mapView + + // The possible floors that might be shown. + segmentedControl.selectedSegmentIndex = 0 + selectedIndex = 0 + navigationItem.titleView = segmentedControl + + // Listen to touch events on the UISegmentedControl, force initial update. + segmentedControl.addTarget(self, action: #selector(changeFloor), for: .valueChanged) + changeFloor() + } + + @objc func changeFloor() { + guard segmentedControl.selectedSegmentIndex != selectedIndex else { return } + selectedIndex = segmentedControl.selectedSegmentIndex + } + + func updateTileLayer() { + // Clear existing tileLayer, if any. + tileLayer?.map = nil + // Create a new GMSTileLayer with the new floor choice. + tileLayer = GMSURLTileLayer(urlConstructor: { (x: UInt, y: UInt, zoom: UInt) -> URL? in + return URL( + string: + "https://www.gstatic.com/io2010maps/tiles/9/L\(self.selectedIndex + 1)_\(zoom)_\(x)_\(y).png" + ) + }) + tileLayer?.map = mapView + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TrafficMapViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TrafficMapViewController.swift new file mode 100755 index 00000000..33139b8e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/TrafficMapViewController.swift @@ -0,0 +1,30 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class TrafficMapViewController: UIViewController { + + private var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -33.868, longitude: 151.2086, zoom: 12) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.isTrafficEnabled = true + return mapView + }() + + override func loadView() { + view = mapView + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/VisibleRegionViewController.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/VisibleRegionViewController.swift new file mode 100755 index 00000000..e4af3c0f --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/Samples/VisibleRegionViewController.swift @@ -0,0 +1,69 @@ +// Copyright 2020 Google LLC. 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 GoogleMaps +import UIKit + +class VisibleRegionViewController: UIViewController { + + static let overlayHeight: CGFloat = 140 + private lazy var mapView: GMSMapView = { + let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) + let mapView = GMSMapView(frame: .zero, camera: camera) + mapView.settings.myLocationButton = true + mapView.isMyLocationEnabled = true + mapView.padding = UIEdgeInsets( + top: 0, left: 0, bottom: VisibleRegionViewController.overlayHeight, right: 0) + return mapView + }() + private lazy var overlay: UIView = { + let overlay = UIView(frame: .zero) + overlay.backgroundColor = UIColor(hue: 0, saturation: 1, brightness: 1, alpha: 0.5) + return overlay + }() + private lazy var flyInButton: UIBarButtonItem = { + return UIBarButtonItem( + title: "Toggle Overlay", style: .plain, target: self, action: #selector(didTapToggleOverlay)) + }() + + override func loadView() { + view = mapView + navigationItem.rightBarButtonItem = flyInButton + + let overlayFrame = CGRect( + x: 0, y: -VisibleRegionViewController.overlayHeight, width: 0, + height: VisibleRegionViewController.overlayHeight) + overlay.frame = overlayFrame + overlay.autoresizingMask = [.flexibleTopMargin, .flexibleWidth] + view.addSubview(overlay) + } + + @objc func didTapToggleOverlay() { + let padding = mapView.padding + UIView.animate(withDuration: 2) { [unowned self] in + let size = self.view.bounds.size + if padding.bottom == 0 { + self.overlay.frame = CGRect( + x: 0, y: size.height - VisibleRegionViewController.overlayHeight, width: size.width, + height: VisibleRegionViewController.overlayHeight) + self.mapView.padding = UIEdgeInsets( + top: 0, left: 0, bottom: VisibleRegionViewController.overlayHeight, right: 0) + } else { + self.overlay.frame = CGRect( + x: 0, y: self.mapView.bounds.size.height, width: size.width, height: 0) + self.mapView.padding = .zero + } + } + } + +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SceneDelegate.swift b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SceneDelegate.swift new file mode 100755 index 00000000..8037e434 --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/GoogleMapsSwiftDemos/Swift/SceneDelegate.swift @@ -0,0 +1,40 @@ +// Copyright 2022 Google LLC. 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 + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + func scene( + _ scene: UIScene, willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { + guard let scene = scene as? UIWindowScene else { return } + window = .init(windowScene: scene) + + // On iOS 15, continue to use opaque navigation bars like earlier iOS versions. + if #available(iOS 15.0, *) { + let navBarAppearance = UINavigationBarAppearance() + navBarAppearance.configureWithOpaqueBackground() + UINavigationBar.appearance().standardAppearance = navBarAppearance + UINavigationBar.appearance().scrollEdgeAppearance = navBarAppearance + } + + let sampleListViewController = SampleListViewController() + let navigationController = UINavigationController(rootViewController: sampleListViewController) + window?.rootViewController = navigationController + window?.makeKeyAndVisible() + } +} diff --git a/ios/App/Pods/GoogleMaps/SwiftExample/Podfile b/ios/App/Pods/GoogleMaps/SwiftExample/Podfile new file mode 100755 index 00000000..59069f1e --- /dev/null +++ b/ios/App/Pods/GoogleMaps/SwiftExample/Podfile @@ -0,0 +1,6 @@ +source 'https://github.com/CocoaPods/Specs.git' + +target 'GoogleMapsSwiftDemos' do + platform :ios, '13.0' + pod 'GoogleMaps', '= 7.4.0' +end diff --git a/ios/App/Pods/Local Podspecs/Capacitor.podspec.json b/ios/App/Pods/Local Podspecs/Capacitor.podspec.json new file mode 100644 index 00000000..d7963b98 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/Capacitor.podspec.json @@ -0,0 +1,34 @@ +{ + "name": "Capacitor", + "version": "5.5.1", + "summary": "Capacitor for iOS", + "social_media_url": "https://twitter.com/capacitorjs", + "license": "MIT", + "homepage": "https://capacitorjs.com/", + "platforms": { + "ios": "13.0" + }, + "authors": { + "Ionic Team": "hi@ionicframework.com" + }, + "source": { + "git": "https://github.com/ionic-team/capacitor.git", + "tag": "5.5.1" + }, + "source_files": [ + "Capacitor/Capacitor/*.{swift,h,m}", + "Capacitor/Capacitor/Plugins/*.{swift,h,m}", + "Capacitor/Capacitor/Plugins/**/*.{swift,h,m}" + ], + "module_map": "Capacitor/Capacitor/Capacitor.modulemap", + "resources": [ + "Capacitor/Capacitor/assets/native-bridge.js" + ], + "dependencies": { + "CapacitorCordova": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorBrowser.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorBrowser.podspec.json new file mode 100644 index 00000000..628b3390 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorBrowser.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorBrowser", + "version": "5.1.0", + "summary": "The Browser API provides the ability to open an in-app browser and subscribe to browser events.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/browser@5.1.0" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "browser/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorCamera.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorCamera.podspec.json new file mode 100644 index 00000000..03dff74c --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorCamera.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorCamera", + "version": "5.0.7", + "summary": "The Camera API provides the ability to take a photo with the camera or choose an existing one from the photo album.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/camera@5.0.7" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "camera/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorCordova.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorCordova.podspec.json new file mode 100644 index 00000000..e9eec83b --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorCordova.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorCordova", + "module_name": "Cordova", + "version": "5.5.1", + "summary": "Capacitor Cordova Compatibility Layer", + "homepage": "https://capacitorjs.com", + "license": "MIT", + "authors": { + "Ionic Team": "hi@ionicframework.com" + }, + "source": { + "git": "https://github.com/ionic-team/capacitor", + "tag": "5.5.1" + }, + "platforms": { + "ios": "13.0" + }, + "source_files": "CapacitorCordova/CapacitorCordova/**/*.{h,m}", + "public_header_files": [ + "CapacitorCordova/CapacitorCordova/Classes/Public/*.h", + "CapacitorCordova/CapacitorCordova/CapacitorCordova.h" + ], + "module_map": "CapacitorCordova/CapacitorCordova/CapacitorCordova.modulemap", + "requires_arc": true, + "frameworks": "WebKit" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorDevice.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorDevice.podspec.json new file mode 100644 index 00000000..2f3f9e45 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorDevice.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorDevice", + "version": "5.0.6", + "summary": "The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/device@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "device/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorGeolocation.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorGeolocation.podspec.json new file mode 100644 index 00000000..1c57bd2e --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorGeolocation.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorGeolocation", + "version": "5.0.6", + "summary": "The Geolocation API provides simple methods for getting and tracking the current position of the device using GPS, along with altitude, heading, and speed information if available.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/geolocation@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "geolocation/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorGoogleMaps.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorGoogleMaps.podspec.json new file mode 100644 index 00000000..aa3ef86f --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorGoogleMaps.podspec.json @@ -0,0 +1,33 @@ +{ + "name": "CapacitorGoogleMaps", + "version": "5.3.3", + "summary": "Google maps on Capacitor", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/google-maps@5.3.3" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "google-maps/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ], + "GoogleMaps": [ + "~> 7.3" + ], + "Google-Maps-iOS-Utils": [ + "~> 4.1" + ] + }, + "swift_versions": "5.1", + "static_framework": true, + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorHaptics.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorHaptics.podspec.json new file mode 100644 index 00000000..675f7efa --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorHaptics.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorHaptics", + "version": "5.0.6", + "summary": "The Haptics API provides physical feedback to the user through touch or vibration.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/haptics@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "haptics/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorKeyboard.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorKeyboard.podspec.json new file mode 100644 index 00000000..1624aaf6 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorKeyboard.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorKeyboard", + "version": "5.0.6", + "summary": "The Keyboard API provides keyboard display and visibility control, along with event tracking when the keyboard shows and hides.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/keyboard@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "keyboard/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorNetwork.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorNetwork.podspec.json new file mode 100644 index 00000000..d4e9b416 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorNetwork.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorNetwork", + "version": "5.0.6", + "summary": "The Network API provides network and connectivity information.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/network@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "network/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorShare.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorShare.podspec.json new file mode 100644 index 00000000..67fb68cc --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorShare.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorShare", + "version": "5.0.6", + "summary": "The Share API provides methods for sharing content in any sharing-enabled apps the user may have installed.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/share@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "share/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorSplashScreen.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorSplashScreen.podspec.json new file mode 100644 index 00000000..52bdb73a --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorSplashScreen.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorSplashScreen", + "version": "5.0.6", + "summary": "The Splash Screen API provides methods for showing or hiding a Splash image.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/splash-screen@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "splash-screen/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CapacitorStatusBar.podspec.json b/ios/App/Pods/Local Podspecs/CapacitorStatusBar.podspec.json new file mode 100644 index 00000000..743d0ebd --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CapacitorStatusBar.podspec.json @@ -0,0 +1,26 @@ +{ + "name": "CapacitorStatusBar", + "version": "5.0.6", + "summary": "The StatusBar API Provides methods for configuring the style of the Status Bar, along with showing or hiding it.", + "license": "MIT", + "homepage": "https://capacitorjs.com", + "authors": "Ionic ", + "source": { + "git": "https://github.com/ionic-team/capacitor-plugins.git", + "tag": "@capacitor/status-bar@5.0.6" + }, + "source_files": [ + "ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}", + "status-bar/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}" + ], + "platforms": { + "ios": "13.0" + }, + "dependencies": { + "Capacitor": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Local Podspecs/CordovaPlugins.podspec.json b/ios/App/Pods/Local Podspecs/CordovaPlugins.podspec.json new file mode 100644 index 00000000..38ffc420 --- /dev/null +++ b/ios/App/Pods/Local Podspecs/CordovaPlugins.podspec.json @@ -0,0 +1,28 @@ +{ + "name": "CordovaPlugins", + "version": "5.5.1", + "summary": "Autogenerated spec", + "license": "Unknown", + "homepage": "https://example.com", + "authors": { + "Capacitor Generator": "hi@example.com" + }, + "source": { + "git": "https://github.com/ionic-team/does-not-exist.git", + "tag": "5.5.1" + }, + "source_files": "sources/**/*.{swift,h,m,c,cc,mm,cpp}", + "platforms": { + "ios": "13.0" + }, + "xcconfig": { + "GCC_PREPROCESSOR_DEFINITIONS": "$(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1" + }, + "dependencies": { + "CapacitorCordova": [ + + ] + }, + "swift_versions": "5.1", + "swift_version": "5.1" +} diff --git a/ios/App/Pods/Manifest.lock b/ios/App/Pods/Manifest.lock new file mode 100644 index 00000000..db7668db --- /dev/null +++ b/ios/App/Pods/Manifest.lock @@ -0,0 +1,127 @@ +PODS: + - Capacitor (5.5.1): + - CapacitorCordova + - CapacitorBrowser (5.1.0): + - Capacitor + - CapacitorCamera (5.0.7): + - Capacitor + - CapacitorCordova (5.5.1) + - CapacitorDevice (5.0.6): + - Capacitor + - CapacitorGeolocation (5.0.6): + - Capacitor + - CapacitorGoogleMaps (5.3.3): + - Capacitor + - Google-Maps-iOS-Utils (~> 4.1) + - GoogleMaps (~> 7.3) + - CapacitorHaptics (5.0.6): + - Capacitor + - CapacitorKeyboard (5.0.6): + - Capacitor + - CapacitorNetwork (5.0.6): + - Capacitor + - CapacitorShare (5.0.6): + - Capacitor + - CapacitorSplashScreen (5.0.6): + - Capacitor + - CapacitorStatusBar (5.0.6): + - Capacitor + - CordovaPlugins (5.5.1): + - CapacitorCordova + - Google-Maps-iOS-Utils (4.2.2): + - Google-Maps-iOS-Utils/Clustering (= 4.2.2) + - Google-Maps-iOS-Utils/Geometry (= 4.2.2) + - Google-Maps-iOS-Utils/GeometryUtils (= 4.2.2) + - Google-Maps-iOS-Utils/Heatmap (= 4.2.2) + - Google-Maps-iOS-Utils/QuadTree (= 4.2.2) + - GoogleMaps (~> 7.3) + - Google-Maps-iOS-Utils/Clustering (4.2.2): + - Google-Maps-iOS-Utils/QuadTree + - GoogleMaps (~> 7.3) + - Google-Maps-iOS-Utils/Geometry (4.2.2): + - GoogleMaps (~> 7.3) + - Google-Maps-iOS-Utils/GeometryUtils (4.2.2): + - GoogleMaps (~> 7.3) + - Google-Maps-iOS-Utils/Heatmap (4.2.2): + - Google-Maps-iOS-Utils/QuadTree + - GoogleMaps (~> 7.3) + - Google-Maps-iOS-Utils/QuadTree (4.2.2): + - GoogleMaps (~> 7.3) + - GoogleMaps (7.4.0): + - GoogleMaps/Maps (= 7.4.0) + - GoogleMaps/Base (7.4.0) + - GoogleMaps/Maps (7.4.0): + - GoogleMaps/Base + +DEPENDENCIES: + - "Capacitor (from `../../node_modules/@capacitor/ios`)" + - "CapacitorBrowser (from `../../node_modules/@capacitor/browser`)" + - "CapacitorCamera (from `../../node_modules/@capacitor/camera`)" + - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" + - "CapacitorDevice (from `../../node_modules/@capacitor/device`)" + - "CapacitorGeolocation (from `../../node_modules/@capacitor/geolocation`)" + - "CapacitorGoogleMaps (from `../../node_modules/@capacitor/google-maps`)" + - "CapacitorHaptics (from `../../node_modules/@capacitor/haptics`)" + - "CapacitorKeyboard (from `../../node_modules/@capacitor/keyboard`)" + - "CapacitorNetwork (from `../../node_modules/@capacitor/network`)" + - "CapacitorShare (from `../../node_modules/@capacitor/share`)" + - "CapacitorSplashScreen (from `../../node_modules/@capacitor/splash-screen`)" + - "CapacitorStatusBar (from `../../node_modules/@capacitor/status-bar`)" + - CordovaPlugins (from `../capacitor-cordova-ios-plugins`) + +SPEC REPOS: + trunk: + - Google-Maps-iOS-Utils + - GoogleMaps + +EXTERNAL SOURCES: + Capacitor: + :path: "../../node_modules/@capacitor/ios" + CapacitorBrowser: + :path: "../../node_modules/@capacitor/browser" + CapacitorCamera: + :path: "../../node_modules/@capacitor/camera" + CapacitorCordova: + :path: "../../node_modules/@capacitor/ios" + CapacitorDevice: + :path: "../../node_modules/@capacitor/device" + CapacitorGeolocation: + :path: "../../node_modules/@capacitor/geolocation" + CapacitorGoogleMaps: + :path: "../../node_modules/@capacitor/google-maps" + CapacitorHaptics: + :path: "../../node_modules/@capacitor/haptics" + CapacitorKeyboard: + :path: "../../node_modules/@capacitor/keyboard" + CapacitorNetwork: + :path: "../../node_modules/@capacitor/network" + CapacitorShare: + :path: "../../node_modules/@capacitor/share" + CapacitorSplashScreen: + :path: "../../node_modules/@capacitor/splash-screen" + CapacitorStatusBar: + :path: "../../node_modules/@capacitor/status-bar" + CordovaPlugins: + :path: "../capacitor-cordova-ios-plugins" + +SPEC CHECKSUMS: + Capacitor: 9da0a2415e3b6098511f8b5ffdb578d91ee79f8f + CapacitorBrowser: 7a0fb6a1011abfaaf2dfedfd8248f942a8eda3d6 + CapacitorCamera: 084b0b228bba7d00587910337b1c89e93b1d32ab + CapacitorCordova: e128cc7688c070ca0bfa439898a5f609da8dbcfe + CapacitorDevice: 2c968f98a1ec4d22357418c1521e7ddc46c675e6 + CapacitorGeolocation: 7be5f77abc205c0efe319fff8587a7183e7b0240 + CapacitorGoogleMaps: 8268d118faf014c5004b0e711e52af7190257451 + CapacitorHaptics: 1fffc1217c7e64a472d7845be50fb0c2f7d4204c + CapacitorKeyboard: b978154b024a5f65e044908e37d15b7de58b9d12 + CapacitorNetwork: d80b3e79bef6ec37640ee2806c19771f07ff2d0c + CapacitorShare: cd41743331cb71d217c029de54b681cbd91e0fcc + CapacitorSplashScreen: 5fa2ab5e46cf5cc530cf16a51c80c7a986579ccd + CapacitorStatusBar: 565c0a1ebd79bb40d797606a8992b4a105885309 + CordovaPlugins: 7e7553610e64fad8133022c4f4edcd2b95f5ba76 + Google-Maps-iOS-Utils: f77eab4c4326d7e6a277f8e23a0232402731913a + GoogleMaps: 032f676450ba0779bd8ce16840690915f84e57ac + +PODFILE CHECKSUM: 8e6a2a27555a43af8fdcda646e72fe803c20f937 + +COCOAPODS: 1.11.3 diff --git a/ios/App/Pods/Pods.xcodeproj/project.pbxproj b/ios/App/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 00000000..77a75083 --- /dev/null +++ b/ios/App/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,4585 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXAggregateTarget section */ + E5B4BBC6DD552AC8943C7E22772FC1D3 /* GoogleMaps */ = { + isa = PBXAggregateTarget; + buildConfigurationList = D94C401977DE6170FC7C8E25628E8BC4 /* Build configuration list for PBXAggregateTarget "GoogleMaps" */; + buildPhases = ( + B4825B3E9214DE53DC601E96752818A5 /* [CP] Copy XCFrameworks */, + ); + dependencies = ( + ); + name = GoogleMaps; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 015BFD2102D6364AF859D463153D12E1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 042EA472E3A56980342C5901249153C0 /* GMUClusterIconGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CD6076414787CF0E5E20AD3A536ACED /* GMUClusterIconGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 046F6C0B861C6F38E5C231473451B12A /* Data+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6428A32784C5CA1044899E44C665BF19 /* Data+Capacitor.swift */; }; + 04EF9C5150A365B46562E613EE797D1A /* JS.swift in Sources */ = {isa = PBXBuildFile; fileRef = A683E83F9735DCC796068B2BF6DC42C1 /* JS.swift */; }; + 05966A998808E583F32A127FDA40DE5D /* GeolocationPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 15DC41EE83D394BFCBD4D65C24A3EC29 /* GeolocationPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 060941FABC7AF16B9BEF5E721154615A /* CapacitorBrowser-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 982F08EFD1430A2552B0ED4BE9B0B0A4 /* CapacitorBrowser-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 062C880AE7C05302158B2978CE0F7633 /* TmpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FBB91EE7FE1F52E9AC9FDA631D686F /* TmpViewController.swift */; }; + 065ED0B01890DE177532373C44D71E5F /* CapacitorGeolocation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 094ED69D5782084C0CD8631A0DBB5BBD /* CapacitorGeolocation-dummy.m */; }; + 06D783DC8A271D7A3D58C20B48FF09A1 /* GMUWeightedLatLng.m in Sources */ = {isa = PBXBuildFile; fileRef = 84C73EFF9BA95B361FFFE6514A0E0BC2 /* GMUWeightedLatLng.m */; }; + 0750B75E6567F5229AC7B5B0005A1CD4 /* Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = D324CD3FEDF2F29EDAD0E1730C2181C0 /* Math.swift */; }; + 081025F26704EB6998780E7E6CBFF9A3 /* CDVURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB47E0FB967E1F02BBE35EA22D5D16A /* CDVURLProtocol.m */; }; + 09D53820E3A08086F99729853944D8B7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 0A57A27DD15FEDD8649FA2FCA4E0C181 /* Capacitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D00377E1A6D02F6D92561942042102 /* Capacitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AA0425E47CB451650D8C4BF4FCDD254 /* Pods-App-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FE796D27BB599ADBAADCE300C59CDF00 /* Pods-App-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AC46A46022C148F96FDC41E7A6097DD /* GMUPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A3AE3DFF6BE23D59D2CA203A5031E7E /* GMUPair.m */; }; + 0CD2D16BDD3369A30FDC20B7A1F63ACA /* Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = 601120E6ECF0BB8EE730B42B02B9F401 /* Device.swift */; }; + 0D450BFEFBD5B48A4F7C80F1E9E83995 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8559A029D40994BA3A549B5A355F5308 /* AppDelegate.m */; }; + 0DFD7C36AAF90695FF3D8FBFFA867EA0 /* CapacitorCamera-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DF7303F391A2B538FDCFF07ADDD6CF3F /* CapacitorCamera-dummy.m */; }; + 0E297980DC3AB824BB8E2DA800EEE77E /* UIStatusBarManager+CAPHandleTapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = F3B3413E32A2C6F376FE0DB6585D6444 /* UIStatusBarManager+CAPHandleTapAction.m */; }; + 0E60D7D984212710E405718C7464DC10 /* NSDictionary+CordovaPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = F9893662CFD2A06E7087188387F1D144 /* NSDictionary+CordovaPreferences.m */; }; + 1185667BCEF4348EEBA4DB806BBD95AA /* CAPPluginCall.h in Headers */ = {isa = PBXBuildFile; fileRef = BFF123A16432E00BB7AD2BB0DB5CF5BC /* CAPPluginCall.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 13EAF4483A84977C48A9D561B21A563E /* CapacitorNetwork-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0502B7DF80C602CE185C372EF5FCD1F2 /* CapacitorNetwork-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1473A713F32E033419268D2F512672F1 /* CapacitorHaptics-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DD3A1B977B1A6752D055D0D04C1C100C /* CapacitorHaptics-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 147BD7D0BF9FE93BBEF7C3F6C514BEF6 /* Polygon.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA36B9DCF4AB50B43037242272776CF /* Polygon.swift */; }; + 15FBBA3A7B58AC956DF455A76E8B4B69 /* WKWebView+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3DD6C401B16A05339B639218181DC8E /* WKWebView+Capacitor.swift */; }; + 164EB1B53DE0BE1726F09E118ED4A072 /* GMUClusterItem.h in Headers */ = {isa = PBXBuildFile; fileRef = A1D4096941C0E4B2AFAF48F7423B3609 /* GMUClusterItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 16CA2F9A17738F609C931F9926B1954A /* GMUPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = C3E6F4D703ED83D317160A70CCFE1B16 /* GMUPoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17041E4E28F1BDDE6E0E44BB52CE21A3 /* Haptics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810063DB5D14B617044ED211C54CE75D /* Haptics.swift */; }; + 170520B3A2F8F1830996AD780684E4A0 /* GMUPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C44BAD661E660FD1343D317148AE635 /* GMUPair.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1770B819855F47E6A008AF2BA210A9DD /* GMUDefaultClusterIconGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E8153483BE3862ACC7C942AF3C530644 /* GMUDefaultClusterIconGenerator.m */; }; + 1858B98F10E32BAB0D1F40B7A1EB09D3 /* IonicCordovaCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 5004F173599560893CB57378FF7B611F /* IonicCordovaCommon.m */; }; + 191EEFC8E8925D5083FE134EF3B15EAF /* ImageSaver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62C51465176701858B846F4D580F3E48 /* ImageSaver.swift */; }; + 192F71942DC4AAF150F2CA05DD4955AC /* CAPInstancePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F56FD043CFFFCB15E47A477BEFFECDA /* CAPInstancePlugin.swift */; }; + 19A0703E665BF96881E89598E78AD76F /* SplashScreenPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DBEDE483841D0475D5066B14AEFEEC38 /* SplashScreenPlugin.m */; }; + 1CAC79654C0DAA8F91B1DE47E3B4D119 /* GMSPath+GeometryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6FB731505901C14861A86D486F14A14 /* GMSPath+GeometryUtils.swift */; }; + 1D0487BB228E844DDA6F99247B8C7104 /* DevicePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D3BC4ED95E65A6F3EA7713E331C1A7D /* DevicePlugin.m */; }; + 1D8180F85D33A40D85D8787C893939F3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 1E68C93743AA2D068D6F1B18CC9C8E7E /* CAPBridgeProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6ECB609E741A43C31976822AE7FB45B /* CAPBridgeProtocol.swift */; }; + 1E82163CEA88D2E17DEFA5D67D296A87 /* GMUSimpleClusterAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = 5778F4ED154F0E6FDFB3E6133C72608E /* GMUSimpleClusterAlgorithm.m */; }; + 1F42EA990BB55F7B7B530410028CE16C /* AppUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F4C2859DFF1D00E671508CB8EE79A5C /* AppUUID.swift */; }; + 202C886B909C3DC7B51B5ED96127FFED /* Google-Maps-iOS-Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD01F7BC12B8E3DE42A43AC984E89E02 /* Google-Maps-iOS-Utils-dummy.m */; }; + 216730E9FF9DBCFB0B7280BD07413E72 /* GQTPointQuadTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EF199A97A10FD00046A60594869F9DD /* GQTPointQuadTree.m */; }; + 2194B960D869BA69100DE35C4F25C18D /* CameraPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 1036761F1F6277EDC35BCEA3B260ACB6 /* CameraPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 21C355EB925D8BAB925752DC4E379D3F /* CDVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D76AA87E402DFA06409861126F3D92C /* CDVViewController.m */; }; + 22D42E128E793362E67DB460FB40E273 /* KeyboardPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 806BC1B663F5C2F574623C924386595F /* KeyboardPlugin.m */; }; + 2431F8BA6986EB86009C54DF67D6BBE2 /* GMUStyleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B049463AB4A0A5D01748FD508D1D78 /* GMUStyleMap.m */; }; + 26FB3C2A729B5AC0895DA82EA28975E1 /* NotificationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 679BEAAF6CE3A649A4D56B90BB88A932 /* NotificationRouter.swift */; }; + 2867677C299770D081C6341E36CBF44A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 296B42C166783ECE7B7309F5220BC538 /* GMUGeoJSONParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A3146C3C278220B6D6C2F2F84725C69B /* GMUGeoJSONParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29FBEC04197075F59002C9530FE33C65 /* BrowserPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = A237AF51250B3E819509B9E5DF47861D /* BrowserPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C5AF99EA7618249434BD7B509C83ECD /* GMUGroundOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = A7AE88085C81CA615F8A3A2D73D76C69 /* GMUGroundOverlay.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D488CA91F4332BD3D2FECE6FF0426F8 /* CameraExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 332DA844D92BCA5E2E66DBD686E5BC16 /* CameraExtensions.swift */; }; + 2F45D122302FB80D2210D91EB03960DA /* JSTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFFA1E993D7696FB5C78DEE582B6EA0A /* JSTypes.swift */; }; + 302C8924EF276468214DBFFE726A9963 /* NetworkPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7A219DC9CBB374A1A982EE2F871DAA9 /* NetworkPlugin.swift */; }; + 32E7CD43EAC0185EC4AA9E78016958FA /* GMSPolygon+GeometryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B1D68479127328417E9BC82ECC3AFC /* GMSPolygon+GeometryUtils.swift */; }; + 33F5C1E93ACF2D15DD385250FBD0E64F /* CAPNotifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740B733F127AEB26C456D991C9A4B4A4 /* CAPNotifications.swift */; }; + 3427F82054E36249530B7ECFE73494A6 /* JSExport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D50F147468B9BD9B4C8FC3867960BEC9 /* JSExport.swift */; }; + 3459CC7A069D6A8A392CCC55265A8DAD /* CapacitorShare-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D2D06EA3BC385DAF74D942583A6BAD /* CapacitorShare-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 36E932077F0D9EB7FD81AB26A2F498FE /* CAPBridgedJSTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 04EC2B08EEF6FAE70455837417A925E2 /* CAPBridgedJSTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AD07A85B1A05A0D535F7FF92B270CD7 /* GeolocationPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F6B2FB00E00CE8A1EB1716A5DA46F4 /* GeolocationPlugin.swift */; }; + 3DEC2279909E698F5A96841DF31B1C78 /* GMUNonHierarchicalDistanceBasedAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F7148E65A836AC4C416F94719E7B84 /* GMUNonHierarchicalDistanceBasedAlgorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E39994922C483D9F08421ABBD9E68E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 414D1A06AE5547D660EE257635B1D4C3 /* StatusBarPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 528DB4C3F4FEBED3C10DC2081841CEEB /* StatusBarPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4155E4F333ED0BE75301B6295F0026F8 /* CAPPlugin+LoadInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E588CB4D34F2A15CA1BB9439F087FD /* CAPPlugin+LoadInstance.swift */; }; + 4231D93F10E5ED3B70E061F8FE4064C7 /* CapacitorBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = F912ED6A307900B31CC286DFF4AE8CA5 /* CapacitorBridge.swift */; }; + 437FD4B4855E27A546674E0477CB1376 /* Keyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BC110304734F9BA380E10E7D0626FC5 /* Keyboard.m */; }; + 4538D37504AB52487A09AA16330D0926 /* CAPBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47980E5F55F41E2B031AB6B11B197386 /* CAPBridge.swift */; }; + 4611148B149B7EE9FC2596DF3288DA87 /* IonicCordovaCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 07432432AE88BF5FB8525065DCEDCE64 /* IonicCordovaCommon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 461EF08FF98EE2C03A339604EF1DFD00 /* GQTPointQuadTreeChild.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDE6DB2203829FEBD0F27BBA38D087E /* GQTPointQuadTreeChild.m */; }; + 4832524F1D1F70D1F58C013597C8D857 /* GMUDefaultClusterIconGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 02E6B1A0F945F999B05DAB41786E73F6 /* GMUDefaultClusterIconGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 488416DF903392C666B25E2EF0997BD5 /* CapacitorUrlRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D812D6B01BE483BEA167D6CD3FAEFD /* CapacitorUrlRequest.swift */; }; + 4918731912A0E9D7779547119D8564C8 /* PluginCallResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4368DF7AF0C26ADF361230E02AFD9DB5 /* PluginCallResult.swift */; }; + 49194F1EF13766F98AAD12725002EDB9 /* CameraPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B997D573B9287A627D5B16E8FEDA5A /* CameraPlugin.m */; }; + 4ACBA269E27F7498EB93C9624839E66C /* CDVAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = DC4267E2A3BD8939524B6D17A5EA2F93 /* CDVAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BEBC401534BA2E483ADE30E52982361 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 4C21BEB278654124F16374C7E81D0298 /* GMUHeatmapTileLayer+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = 78BF23DC14865786557F50DC32235AD9 /* GMUHeatmapTileLayer+Testing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C678EA9AA556FF530CB71FCA9195448 /* Reachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F98563936B60F9860E0EC2994CF361D /* Reachability.swift */; }; + 4C8F5EEE4BEF65099ED8D914638FB90D /* GMUDefaultClusterRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = B799B748AB24218373C89013DDB301B4 /* GMUDefaultClusterRenderer.m */; }; + 4C98F61E51DACB8D068950DA5576F7E5 /* Pods-App-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C4080614FB2729D6B5358B723C2F7519 /* Pods-App-dummy.m */; }; + 4EEE20D686C7BCE8CE31DB6CED454D64 /* HapticsPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FDB0AEABD2502A0C199D950A981211F /* HapticsPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 502749DE896F21BB7AE21E27A73D9BF9 /* GMSMarker+GMUClusteritem.m in Sources */ = {isa = PBXBuildFile; fileRef = 987F69D9BCD0655BDFFCDD4766EF035E /* GMSMarker+GMUClusteritem.m */; }; + 507F17CDDEF1624BF92544F696CBC18F /* GQTPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C8D67AEA3CB980269FEE9F99B52F324 /* GQTPoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 516511CAD66CA580E34F7B1DB1F29603 /* CapacitorBrowser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A917987B4C4A42F0E421A15E677922E9 /* CapacitorBrowser-dummy.m */; }; + 53D5525A5167C3B1020D92CFDC0E0865 /* GMUGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AB6A4DF6599553062EDCC754243B00 /* GMUGradient.m */; }; + 54927217C37B4E72D7AF0F89D18CE50C /* CapacitorHttp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB0AE78EBE032234D591670CC635F8D3 /* CapacitorHttp.swift */; }; + 551FD85F7C077DA8F39242156C1857DD /* WebViewDelegationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 446AD267718E4C58D16A192FFDFBC511 /* WebViewDelegationHandler.swift */; }; + 553D68BBE8F7644B61D9C7919F1ABDB7 /* GMUGridBasedClusterAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = CA5ECA9D2529FD4D711B2E496CC81238 /* GMUGridBasedClusterAlgorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55D7AEE6D17505C334ADFEE7ACCE9ECB /* CDVViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D10F2F9D4766573F21421B4F5DEFDEA /* CDVViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55DB8736C100391C07EC302ED83F7360 /* CDVCommandDelegateImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 1171815F6BCF699E0399D1D3615B1279 /* CDVCommandDelegateImpl.m */; }; + 560BB928017E8FD666B31305A47EDF25 /* CapacitorKeyboard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FE3C683A344442D55261C9C26E96DF0 /* CapacitorKeyboard-dummy.m */; }; + 5613B1598DE3FE797F3F5B5BD8A9351A /* GMUStaticCluster.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D12729A02B5DBB1196DB1627F2C9820 /* GMUStaticCluster.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5979383B8E9D0EF4E7D5F356B09E3BA5 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = B06F1A999E6941786776F252A40059D2 /* Network.swift */; }; + 5A876FCE3E9A75C4456F3ECB172267A7 /* CDVPluginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A892875D0B957E3AD1C9E5D7F944CFBB /* CDVPluginResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5AD07F69F2BE3C5D7F028CE18553E5A6 /* CAPPluginCall.m in Sources */ = {isa = PBXBuildFile; fileRef = DC3A976E99F31DF234C2FB4F50C9E1F3 /* CAPPluginCall.m */; }; + 5AD2005CCF0C7FF1F32F4D27D1B5386A /* CapacitorShare-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE71E6A400B8058DD9F99E6FBD17072A /* CapacitorShare-dummy.m */; }; + 5C7C9410D13B93750F94234D20989759 /* SharePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E2D9E26592835272A4815E92FFA1C27 /* SharePlugin.m */; }; + 5E45658DF784FD7965A4B6C7F8C629ED /* GQTPointQuadTreeChild.h in Headers */ = {isa = PBXBuildFile; fileRef = 87545CCECEE3DBB3981AC72755C734CE /* GQTPointQuadTreeChild.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60125A06D0995DB926CB977541DEB5A0 /* GMUDefaultClusterIconGenerator+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = DE779331F80083C36D940683E8AB48C2 /* GMUDefaultClusterIconGenerator+Testing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 618C0E001EF1B752EEB9CACB44EEC536 /* Console.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F58215E25E4724887CBE6B328ED513E /* Console.swift */; }; + 61B5066837F6F65A4D788A81CAEC9C4A /* GoogleMapConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576A0282110BD65AD8EE021C0AA1BF5F /* GoogleMapConfig.swift */; }; + 625DEE488D2C658197C95DF057C02E0E /* WKWebView+Capacitor.h in Headers */ = {isa = PBXBuildFile; fileRef = C252182ADC3F8E56450E8A513438DBB4 /* WKWebView+Capacitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 62EB0A9FAEB75FAEA40075C91CAA4E31 /* SplashScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD30A4F3C4A25F160B5A5E2A1D41502 /* SplashScreen.swift */; }; + 6314BE7FE93A4401179D307212CDB572 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 6388BC9CDDEF9EC7F0814D4C06A6D19B /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68EBAD27FFD136B3A01F7D84B2DE3852 /* UIColor.swift */; }; + 6466DF32F17DD849F28CAF82CA4479F3 /* CapacitorHaptics-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B7AB502493EC2713E8D683BEA1D5D67 /* CapacitorHaptics-dummy.m */; }; + 663EC80344775E94346D46C52F09A581 /* CDVPluginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E3CAC3F6ED2891853EC51A169194CE1F /* CDVPluginManager.m */; }; + 698708514A91B09F6E75EBF72B56A66B /* CapacitorDevice-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BDCD17C273B05F57DB9D15EDD6135357 /* CapacitorDevice-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69AB76DB65DC04524E63DDB8490B8015 /* GoogleMapPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1BD7CB284D348E6B89F0ACE2D24D58 /* GoogleMapPadding.swift */; }; + 6AEF8CDA8472B94DFE638264F02BAE89 /* SplashScreenPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE19DD73D41E55F8024E9C8E87B27327 /* SplashScreenPlugin.swift */; }; + 6B78161F1A9F83127C601030EA808C3A /* Capacitor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6943A0D5FE1915F5F483B64D43ACEF /* Capacitor-dummy.m */; }; + 6BAC3EB110AF916BA141E4DE93821660 /* CAPInstanceConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9299E67BD39CF7001F8C498F28543C /* CAPInstanceConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EB21EB2A2B220315E4B0C3A805765D8 /* CDVPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 4378CD4D104E15E4DE374F7AE2E1F941 /* CDVPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EEE951C531BC545317F7ABA829001CA /* CDVURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 27288F36CEAA62E8295EEA60AF6C7C9B /* CDVURLProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 708098D8C088E12CB23597E8DF29475E /* GMUGeometryRenderer+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = 40602FA7403A27EDFFB3AEA42FB22E56 /* GMUGeometryRenderer+Testing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 713462FF015B23A8D919DA3796B83150 /* GMUPolygon.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC986E7757AC8C6D830AF2582B203ED /* GMUPolygon.m */; }; + 71947FB57A6467FEEEC32F25F7966EF9 /* StatusBarPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9086E5228F2589CADE45C3F7DCA6C184 /* StatusBarPlugin.swift */; }; + 740239870B89691EA3B5DA6C1A0B2447 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 744B95E8A1085BA6845399147513CC45 /* CDV.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D20EAE3311581B94AC71E3E49FDC75F /* CDV.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 758D895BE7376F57B5CF3F0D87AE8043 /* GMUStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = E69FBA4E823D5BF72D744F785BE1D177 /* GMUStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 759A37A5BAA1831F65802BABF0F4F0C9 /* GMUHeatmapTileLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = E1415D240A4547F79B33EE242594AE28 /* GMUHeatmapTileLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7692A6F167C1ACD334E7E9DA316A402B /* GMUGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 61AF2DFA2A0AF79F69E90995DDC0EE37 /* GMUGeometry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77D7E778678CCEE938718E20019AEF5C /* CDVPluginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = AC38C75C5690352900A730323E7BE961 /* CDVPluginManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 781FBD62488C1EDBF0520D764219B84B /* GMUFeature.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DF6CCABD22147C94CE841A994F2723 /* GMUFeature.m */; }; + 79ABBC221191712234ED3E113891B19A /* CordovaPlugins-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F6EE75712C7554BF0AA02716989A3495 /* CordovaPlugins-dummy.m */; }; + 7A86C60BF39D22212BA7AFCD0ED8D213 /* CAPInstanceDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297D5DDC58588524A1DBF8ECB33CC68A /* CAPInstanceDescriptor.swift */; }; + 7BA48345F9FFF9CE14B7CF165DA80F8B /* GQTPointQuadTreeItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B8490BCEAEEBDD44D51132AD4E6D1E /* GQTPointQuadTreeItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C593F00690901B7A5F7893745A47544 /* GMUDefaultClusterRenderer+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B792AD3A20BB6EB1A0B3DA5D297264C /* GMUDefaultClusterRenderer+Testing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F0FEBB203126D6E2F549386613DACBD /* GMUGeometryCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = FC4B4D674139DD15C9209D55712246AB /* GMUGeometryCollection.m */; }; + 7F37801CB70CFE56052C3552BDBA71ED /* GMUPlacemark.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B5E728390904C5EB06CDC0AAF89BFA3 /* GMUPlacemark.m */; }; + 7FAE859B70FB76DF6BD5179947297986 /* GMUGeometryRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = FDCA4C83BC9258C58741BF3D2816C9C2 /* GMUGeometryRenderer.m */; }; + 8043B6E2C6676504E50C87B7DADC8C17 /* CapacitorCookieManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ABE7D781BFC08D628BFA2C4B5590DF2 /* CapacitorCookieManager.swift */; }; + 8082FC00A5D75BD075B1ABF368351A49 /* CapacitorCookies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A6C4B65C68E1F73D074A6B1D2E459D /* CapacitorCookies.swift */; }; + 81471507CA97E7DD685450D21202DC83 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 816322BD077A1EA8C57B197E3850B582 /* GMUStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B353C00348AF0CF25722800E2DD4A6F /* GMUStyle.m */; }; + 87614EECFCD7508D55616574FE193539 /* Array+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006EDD10E21D7C73FF389F35916A5E25 /* Array+Capacitor.swift */; }; + 895FBDE2A6310E869982E027E69740D1 /* CDVConfigParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 64447D1564D0F003F4FD0F295288C67A /* CDVConfigParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 899DAC655BA73074EECE083A2EE14469 /* KeyPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECA46536DFA17208195A32D5178993B /* KeyPath.swift */; }; + 8A0C334E73B68873BCCDFFE506615DF5 /* GMUPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = 13CA54E05F8A2A11F13BC7F86B8DCC07 /* GMUPoint.m */; }; + 8A28DA8CFCED60943E2B1D841D8E365F /* CapacitorCordova.h in Headers */ = {isa = PBXBuildFile; fileRef = CED5A956297C23418F576A09836DAB44 /* CapacitorCordova.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AF5B0A3E35BDAE31C8A3387438AB263 /* CAPApplicationDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A6D1DEE1B96148FDFEE357732FB0C83 /* CAPApplicationDelegateProxy.swift */; }; + 8D3036D67328709DF040A77DB817BF87 /* HapticsPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93DCE4EE8DEF2C976C0E59561685E200 /* HapticsPlugin.swift */; }; + 8D625994D29B7C7D29A1AFD9322D5AAA /* GMUClusterRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5895979931C7D87790353BB3661FB54B /* GMUClusterRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DD3ECC1F02F641A09FB5269D770E1B6 /* GMUPlacemark.h in Headers */ = {isa = PBXBuildFile; fileRef = E413E99B74C82C9744515D66D0AF7166 /* GMUPlacemark.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8ED7EABCB34E69DE88D6764F34CB06BE /* PluginConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = C29BFF94B66894147D8BB99979D251F1 /* PluginConfig.swift */; }; + 8F6F9F47F081C05613D8A09491C4C78F /* GMUStyleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 851193462355087F0CF75B9B3AEADFB7 /* GMUStyleMap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90FC9924DAE3127EC5E42C9B4088714B /* CapacitorCamera-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97223C8D9031151C843566D4135CD31E /* CapacitorCamera-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91E9337139B42220940CA378D7CFE659 /* GMUHeatmapTileLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A307E357FDE1C5E966E2FFB5CF8F3C4 /* GMUHeatmapTileLayer.m */; }; + 9302F1C37C3DC40F93542B42F8AE3D8E /* Circle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0319F6494CC473020FCF4BA85351E3F /* Circle.swift */; }; + 9411E5BB9430984782049C5FF5947E14 /* CAPInstanceConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 20D422518836D78FC12CD5C869AE645F /* CAPInstanceConfiguration.m */; }; + 9485DCE8608360E9ABF3D033E025FAF7 /* DefaultPlugins.m in Sources */ = {isa = PBXBuildFile; fileRef = 52F7FDFD9C71AD8F5435EAF27DE9AEFC /* DefaultPlugins.m */; }; + 960BC3DB691AC53BFDF7CFE5B80F7884 /* Keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = C551AB59EAEB18549211D5CC5881474D /* Keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96D3F327423D4E2F0DE379C4ADC8D57D /* native-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = 72C84A3FC08798651F3AFD8FE2A15B36 /* native-bridge.js */; }; + 96DBC9B49EE97F7A7FB06746186CA129 /* DocLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBCBD0CFBA2ABB89CC786EA4D5493A78 /* DocLinks.swift */; }; + 96DE46A6B466B185045FB7E867869D97 /* GMUClusterAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 39EEDD900294E0C1F760B200762131B6 /* GMUClusterAlgorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9713AF64AFDFDF8B8AB94C201EB369FC /* GMSPolyline+GeometryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B294EDA71DCBB2E729DC983289AA249 /* GMSPolyline+GeometryUtils.swift */; }; + 9715B2FF437B2449E1A1C6CD03A39D5D /* HttpRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BA02CE2F72B36F22BBD3F914CBFDBD /* HttpRequestHandler.swift */; }; + 987E63F89AE6816CFDD5679EDBD6029E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + 98B4266F272D6B9B75A108F75BA1E78B /* CDVConfigParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E29FF95B9419DF9DDB736E05D7730225 /* CDVConfigParser.m */; }; + 99024253797CA0678DDC0A1727D5C4D5 /* CapacitorCordova-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E4688036EAD145EE71183E77FE753 /* CapacitorCordova-dummy.m */; }; + 992F6182768FDEA629ED9B03FC7C408E /* WebViewAssetHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D90221EB1CF0D555900E44C15219D0CC /* WebViewAssetHandler.swift */; }; + 995390058DA585F0DD028801ED05CFC0 /* GoogleMapCameraConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7061838198E5AA643D05FC2E751F4717 /* GoogleMapCameraConfig.swift */; }; + 9AAA0F553177958323214F8FDED3DA5F /* CapacitorSplashScreen-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D5507329FAE281803DFE78780FCCD13A /* CapacitorSplashScreen-dummy.m */; }; + 9AB8083E9E575255E0DAAD58952434B5 /* GMUNonHierarchicalDistanceBasedAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = 62B6BF20395E7867E484E089BDD7C471 /* GMUNonHierarchicalDistanceBasedAlgorithm.m */; }; + 9AE38FA691B4024D9EA73FAE346110E2 /* CLLocationCoordinate2D+GeometryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C455097FFBABB024C54A6E48E5703C0 /* CLLocationCoordinate2D+GeometryUtils.swift */; }; + 9B670BCC076D7AE43754CAA832246146 /* CapacitorStatusBar-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C26B06BCCF194FD193792E94573B5B87 /* CapacitorStatusBar-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CCF8AD2091EB13B3F2D64CBDF45AA39 /* CatesianPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15626776627C179472986457664301EC /* CatesianPoint.swift */; }; + 9E8190ED462A1A06C60D58147D93E2BA /* CDVPluginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A5838B0DAD9CEBF6E0AD1B8541AAF449 /* CDVPluginResult.m */; }; + 9FABCC8DF2809B186A29D268DF364217 /* GMUGeometryContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C0DC5325C75FDB903F29E6219BB6BB4 /* GMUGeometryContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0FF76B9DA628F80BC4481540FAC4D01 /* GMUClusterManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 030B5C03593840D4ACE93E63EC62FBC3 /* GMUClusterManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1AFF75D9CFE8A8F741C29CBFE918EE1 /* HapticsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = C1CFDB4D9A36BB0F8AE9807AEACB71DE /* HapticsPlugin.m */; }; + A2086C456A3EDADBACC3761D05E9DC44 /* GMUKMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 281A90D0977A36AD7B6B4A1A3F133FDD /* GMUKMLParser.m */; }; + A2510958BDA25A72D2D32B2DF0A073AA /* CAPWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FA63BA45CA65303C8508B5160D2A743 /* CAPWebView.swift */; }; + A2ED1398AD0A291DBC1A63C2CB864A6E /* CapacitorGoogleMaps-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 805E8F40E0D244369108472D379FD613 /* CapacitorGoogleMaps-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A650FC944B924C08BD167753A71F4B59 /* CAPPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 475062F828B7D0C94730AC748AFE1C4C /* CAPPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8905C0DEBCDF0F11C48A0C3E014C663 /* CAPInstanceDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B1650715D10774E45B037A4E1BF66F3 /* CAPInstanceDescriptor.m */; }; + A9B2300A35B7F1C963BE04E9C13BAB4C /* GMUGroundOverlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F824BA35646383CB277C267C2B7DA58 /* GMUGroundOverlay.m */; }; + AA8CCE5C31BEC3F700C7EF0C8BEEE344 /* GMUGeometryRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = ECB9D96D52D58541178F71211AC380C4 /* GMUGeometryRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC5DBA310CC0DD480F12418A3C7F0FC /* GMSMarker+GMUClusteritem.h in Headers */ = {isa = PBXBuildFile; fileRef = 110322AE52802435CF76623D5AC54465 /* GMSMarker+GMUClusteritem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB012A26D6D5ACDBA681DC5559EC7718 /* CapacitorKeyboard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83CF5DA5EEB972ED2ACD7F8437EEE5DA /* CapacitorKeyboard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB6914D46E71BFA1C5A14D4F0C2651C3 /* CapacitorGoogleMaps-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 16A278647AC827B8FC986BB9D71E0C13 /* CapacitorGoogleMaps-dummy.m */; }; + AB9F3352CAE25DA382DBD9BAF01BB592 /* GMUGeometryCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A09EF0ADF22401613C81BD4037324B3 /* GMUGeometryCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC027013D060A7B23D48A2257D3B9ADE /* GMUKMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BB6A12834C69D7EE67C51674AA8148D3 /* GMUKMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC12337297C335A8DDC9A7595F72869B /* CDVPlugin+Resources.m in Sources */ = {isa = PBXBuildFile; fileRef = B1EFB4D4A15B9650DB765ADBF7A266AD /* CDVPlugin+Resources.m */; }; + AE8CC53089143E158AE0759F199B7553 /* CDVPlugin+Resources.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F28C085E887396C58FD3FC1456C6982 /* CDVPlugin+Resources.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0D14E433E4B0AD2572FE8E3CD54AE94 /* GMUDefaultClusterRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 811BCC1F72CFA5F86B1CCFB663E03B58 /* GMUDefaultClusterRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1A20ABB57AC388103EF9CF1DEFE2587 /* LatLngRadians.swift in Sources */ = {isa = PBXBuildFile; fileRef = 707866C048A1531256230F6B517A0DAD /* LatLngRadians.swift */; }; + B2BD10AE4B3884B6BFF255203C7964BD /* WKWebView+Capacitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D53E18BA8FA1C2A2B1C60BD2E713E71 /* WKWebView+Capacitor.m */; }; + B2BE8240F5351F12387692AF9BCC8934 /* GMULineString.m in Sources */ = {isa = PBXBuildFile; fileRef = BAC5FD9A5A3F8A24FBCEB560011B5BB9 /* GMULineString.m */; }; + B2ECED3AC014B993EB27650FC6909006 /* GMUPolygon.h in Headers */ = {isa = PBXBuildFile; fileRef = D593FE74197A10C945B35112B15109F7 /* GMUPolygon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2F923B9EAC780D88604EBD65D23D778 /* CAPBridgedJSTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 73DEFF31C4ADA1FF43A0A6759ADC8AD1 /* CAPBridgedJSTypes.m */; }; + B31B5E62160420DDC7C906EBB1220D3F /* GMUCluster.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D3409FE076E9FFA23BB554CC9B0F84A /* GMUCluster.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B42CC15368B81296B5F91C0B5939F8A8 /* CordovaPlugins-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F6DB81A220CADE71E9633D7D674BB86 /* CordovaPlugins-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4C3B87ADC969A01555785EEB733D02F /* GMUGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = A4E2C6DD181888AE5515B62876C1C914 /* GMUGradient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4CF710D2B49C9CF8808388C2AA16348 /* GeolocationPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = E28E7AC885FE59153BDC68E4210F01D1 /* GeolocationPlugin.m */; }; + B55C5B9D96842063EECE8152F00AA95B /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 517384C04DB2FEC9C01BA36B5E448BC4 /* WebView.swift */; }; + B598C1784E43A43D66195F80D0947027 /* CapacitorSplashScreen-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F93359CC63E6C1C6B05C5FD2BA298ECD /* CapacitorSplashScreen-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6767B5A7B074D4CAA9B4645FC2110EB /* GQTBounds.h in Headers */ = {isa = PBXBuildFile; fileRef = 55E667C388709DCC6EA6BB14D72BFD9C /* GQTBounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA8F486EE89D4BD4F0B858DEC359F716 /* CAPPluginMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A5517CAAD5F7F8FCC4F53313164DB995 /* CAPPluginMethod.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BABBFB5404D7327216624BB68A2C4689 /* AppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = D4DB2D9640E25E9FC1A7A51C8D6C5DEE /* AppDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB15A29A8322F8AAEBA07673C071E340 /* CapacitorDevice-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A215FCD1E900C227751C7DEA20055980 /* CapacitorDevice-dummy.m */; }; + BCAA003B2273DF2EBCDBB9D82383DE71 /* HeatMapInterpolationPoints.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55978B2987E6492C2C29B7492932ACA7 /* HeatMapInterpolationPoints.swift */; }; + BDB3344B9E2820CC05B1B47D9AAEB7FA /* SplashScreenPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 26DD3A1ECFE17A06DA5BE6719B675360 /* SplashScreenPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C112889698B959D30D3B825C6DBD595D /* CAPBridgedPlugin+getMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EE5564A74A840C921D902648917A9 /* CAPBridgedPlugin+getMethod.swift */; }; + C22883EE01301A2491BE6C1620096F46 /* GMUWeightedLatLng.h in Headers */ = {isa = PBXBuildFile; fileRef = FBD6098326297CB8C21EAE839DD63113 /* GMUWeightedLatLng.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2897D43781098F5D6D8857A6E660787 /* GQTPointQuadTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 17D63720DAC6363C343864A8C091FC5A /* GQTPointQuadTree.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2A0ECBBFE11D2CCD2F367E6EB73B7B7 /* Browser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FD893F2CA4068046FFDBB5994A173BD /* Browser.swift */; }; + C2A4523DCA6194E4C2035B94F408AC33 /* GMUSimpleClusterAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C0DB19FF0437E6A2A38444511FACACE /* GMUSimpleClusterAlgorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3259BE13C3C269B625DA4EF70CA2934 /* CAPPluginCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0D8148588B697CC38576BF9505B4D76 /* CAPPluginCall.swift */; }; + C3E2024442108C142F08063780FD8085 /* SharePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7757BDDE2674BFB4007A7B036A825900 /* SharePlugin.swift */; }; + C46282F9A520E05B36E47081C8725F8C /* NetworkPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2D314BB1BFE55C34EC1E25A4A00B3A /* NetworkPlugin.m */; }; + C5D6CB8A1AD05D282FBD8C4062F89ECA /* NSDictionary+CordovaPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 1190666C68BF7F4BAB6FBF019EDCA7B5 /* NSDictionary+CordovaPreferences.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6C60979D2273FDB1D2A99A52E23C561 /* GMUClusterManager+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = 4080BB5AF95D2204F670E4769A9525B3 /* GMUClusterManager+Testing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7666C140F13EF3890717569C0875304 /* CAPPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F338C629F761784B6A6057FD8CE51E1 /* CAPPlugin.m */; }; + C8679F30E9C7BC3076D666B90998E37C /* CAPBridgeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD4F4CA5F3D976FA866E379600C7E271 /* CAPBridgeViewController.swift */; }; + C8B84350A357282BEF3B16E00AC2B7EE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + C9E9BA9DAD0D6744F35B217DE9FA4FC5 /* BrowserPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4DB139D9DA434753BBA108F6C6C56BC /* BrowserPlugin.swift */; }; + CB594FE817D44935C5E0EF08588FF44F /* CapacitorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FD4B2E696F789F214C409370DA0920 /* CapacitorExtension.swift */; }; + CC5E01D87AB4D33E2CAEE531BCE2EBC4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + CC696FEA28AC89467E42A73D27A6182C /* DevicePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59EE1908FB1192C9E2D6811ACAD46B38 /* DevicePlugin.swift */; }; + CCD0F26C32D5431A7DC4F0A59AC3FFE4 /* CAPLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B7359DBA6E4691A7147434A42266FA /* CAPLog.swift */; }; + CD3FB17F4C65D7B782523C6CBE4D4F10 /* CDVCommandDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 71DDA40914F2339F7BD8518B2DC4570E /* CDVCommandDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1F90202878B31B6D0C3F17984C380D8 /* GMUClusterManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1483FCB970C7E4E42A334DCA5D98786E /* GMUClusterManager.m */; }; + D3486FE98873AEF44EC380E606C0FD31 /* CAPInstanceConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 065BD1077D666057839E8BB05D6AB897 /* CAPInstanceConfiguration.swift */; }; + D69ADE25CE381E125B9CFD31374D2049 /* Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89537FD66A5327F8FD6C8662C4B99BB1 /* Map.swift */; }; + D71D0F15BDB2EEF14150743D8AF0AC01 /* GMULineString.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F2E17967298F0A69458C99957C080C /* GMULineString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D7A5EC11250D2DA639621F6933135210 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + D7E204EAD54BD7C5DC386C378B4EC7AC /* StatusBarPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 75094E99B56AE4BEBE4B0C76272B35E5 /* StatusBarPlugin.m */; }; + D7ECF7252B3941DF259B98141C22E944 /* CDVPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 1160B8F042C3F9D0413B902ABE088C51 /* CDVPlugin.m */; }; + D816DAAACBF1CE12863415BAA2530637 /* Polyline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 701B27319A546FCA864708F26BB246D2 /* Polyline.swift */; }; + D8897EB0C93D30F83AA6411DBD29A5F7 /* Google-Maps-iOS-Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B3DDBE52524F8FA8A9FB85276FBFA2F /* Google-Maps-iOS-Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8EC3A035D26C65CEB8BA45347DE7BD9 /* CAPBridgedPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = D7991AC7C52F06BB678CBD6F848F4D3B /* CAPBridgedPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBE546F784F260C0DB1CFB2A07516406 /* GMUGeoJSONParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6A0EA8C03C7167C93C57FFB9A5983B /* GMUGeoJSONParser.m */; }; + DCC3CB0917086E71E9B8C08C8444BBCE /* CDVInvokedUrlCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F8CC593EFBF4C59813DF1603CEED4DEF /* CDVInvokedUrlCommand.m */; }; + DCDF9AE59DF36C565DECB52A2D55150A /* GMUFeature.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DB297D724008914A6919472A35D7A09 /* GMUFeature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDA8C7E04898E9B184993EA8DFC3DF95 /* CapacitorStatusBar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9779FB99183CEFB7AF386C33D3B410D0 /* CapacitorStatusBar-dummy.m */; }; + DFF93D7CA4DABF46314CCF87B5B08741 /* CAPPluginMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = A96715C2CEC7BC49407C6A80C813798F /* CAPPluginMethod.m */; }; + E046F53AA90DEDBE54700D9AE2CD2C8E /* CAPBridgeViewController+CDVScreenOrientationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 62F7D9BD7EF5A25667FD34442D1AAE00 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */; }; + E0BFB25E238575912415C4D71D5AEB45 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + E16951AE90CBAA64592C058D40381B75 /* CapacitorGoogleMapsPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629B5C01A4FFA6B34F6D78B3D18687C6 /* CapacitorGoogleMapsPlugin.swift */; }; + E1EFB2227D83398DB2C4705A6271E241 /* CapacitorGeolocation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB925F62DBA680F4FE21464EF0EFCD5 /* CapacitorGeolocation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4A1154397867F5210AA5B7A36AA4280 /* KeyboardPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 019C445EF449E031FCF0B5BCA5D98EA8 /* KeyboardPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4C448681C61D203F6B116BFACFD2391 /* CAPBridgeViewController+CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6192101B39EAB449622F8F6A660B84D6 /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7AA4AF69C1828BCCA6E4557BD0D49F8 /* NotificationHandlerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C90329A1C99F5C204C50285232F8792 /* NotificationHandlerProtocol.swift */; }; + E8D1B844F78795743083A97BF1717140 /* NetworkPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = B8424D33E75A0595D378E56B2B024B45 /* NetworkPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA79BD4DD9A629B0F63AA6B9E09E5056 /* CapacitorGoogleMapsPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CFE4527BEB86AD5D5E591DCCEC0334 /* CapacitorGoogleMapsPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB856AFCC0F5204A54BE5D4414948A14 /* CAPBridgeDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4424A2D9F0D46897324AF4A849FE28 /* CAPBridgeDelegate.swift */; }; + EC7203DFAFFEC85B80E020CFA89FFFF5 /* CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C49B9D983DC25212143BC8567C1591F3 /* CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED096A12813F347D9D272C1B056A6E07 /* CapacitorNetwork-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 643652819661FACEDD8B0349173569EE /* CapacitorNetwork-dummy.m */; }; + ED0FBE6F96B10D89918F37A05086B351 /* CAPInstanceDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = B7265B233DD61FCD87003B8A577D2B1C /* CAPInstanceDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE0A6B15ADAD6A942D4EF30A47CA7104 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BB655F8A3B9F0C3DB37D349580B2779 /* WebKit.framework */; }; + EF550E1A6FD0B86C2D5D56F2371C8866 /* SharePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = FD1C9312D4BAFF3A7CC8E8DACA3435C8 /* SharePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F01D82C9BF37A995C8DE1E63BD1EBE48 /* SplashScreenSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E469253914052F34F463C0620162CE /* SplashScreenSettings.swift */; }; + F0984728155C4DBC14D99D60C1CAFFCC /* CapacitorGoogleMapsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B7DF4FD2147638416E3BDBDD66EE5A2 /* CapacitorGoogleMapsPlugin.m */; }; + F1983368D6D3506F3CD64A123A5BBE06 /* SplashScreenConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52687E9643DCEE8928A02625151743EE /* SplashScreenConfig.swift */; }; + F2024F1B8898DA71419830808082B4AB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + F3C0778F4F39934FDE075F6276D7F285 /* GoogleMapErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A46BAEE2FB0FC48966292071F59091A4 /* GoogleMapErrors.swift */; }; + F3E21E64E40B5B05D077B304E7064833 /* GMUWrappingDictionaryKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B30ADC18C448344C4C32DF4B1B87311 /* GMUWrappingDictionaryKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F412B52946162CF894D0D56537F2BBB1 /* CDVInvokedUrlCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = F683CF181060A0FC6E64B3E9FB4FA615 /* CDVInvokedUrlCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4989A71C1E53776EA6DB90F88F303A1 /* CAPFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C36F840F5612C90D52B814DE480E9D3C /* CAPFile.swift */; }; + F61ADB8574B303F20F69A0AA821543F2 /* CameraTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C1F84D627A9A40A7F0155108B2DD75 /* CameraTypes.swift */; }; + F66C6237C6B3602077578FF86111D74F /* GMUStaticCluster.m in Sources */ = {isa = PBXBuildFile; fileRef = D7DD25806AA4F6B4FCB5315701CE34EA /* GMUStaticCluster.m */; }; + F6F3E6061E9C43E2FB59601B08770479 /* CDVCommandDelegateImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 30FA8D172749E662EF778A1D4738BA49 /* CDVCommandDelegateImpl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7294FDDB643818297E82B7FFA224146 /* BrowserPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 971FBAC778F22FBBA60AF4EE43155E18 /* BrowserPlugin.m */; }; + F95A97664EABD95464FFA134A98902D5 /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5C0CD7909491A30B5B7162CAB1BE3F9 /* Marker.swift */; }; + F98C5A9BE59EB4B89D80DEB2A5360C2F /* MapPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 935EEB79B315A38B977DF84BF8687097 /* MapPoint.swift */; }; + FCB11F77BCF49ECF108123D2985B7D34 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */; }; + FD65D09CD8E1B2EFCF2853CF0808B5E5 /* CameraPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB8779F949D5F7B32072C1EEFFFEAF9 /* CameraPlugin.swift */; }; + FE0824B367B98C37875DD6B20DD3897D /* DevicePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 62B975DD4C2CA4DD18D4E5FBEBB63A2C /* DevicePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE6B14B38C8C253F743E65233F1E76A6 /* GMUWrappingDictionaryKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D7F5E1187B449C01B41BD189F356F5BA /* GMUWrappingDictionaryKey.m */; }; + FF056C585DEEA70CAEB295266D9748DE /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9517C1282EFA756387C3CA0CBBC55E18 /* Router.swift */; }; + FFB15768D21DD974328C4DE4E11F6DFF /* GMUGridBasedClusterAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = 28E1AD858527E297FF4B729897752EF0 /* GMUGridBasedClusterAlgorithm.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 02B20DFF560AF6C1A06120622F762250 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0; + remoteInfo = CapacitorCordova; + }; + 25390978BB39ED907B9446B31B25A170 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + 3D09AAF9E6FE474275AE46520889C1B8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6307A6219BDF2F9E7395AFCF4674D713; + remoteInfo = CapacitorDevice; + }; + 465CE859A28D2F11FBED57784FB7E7B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A5EEC7C2AA5BC7C67CFA2C7578AB62C7; + remoteInfo = "Google-Maps-iOS-Utils"; + }; + 4BC93A3C06483BA00F3845ED8C88BE16 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + 508D2B90BC649A3B6BF083EDA3D5E462 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A5EEC7C2AA5BC7C67CFA2C7578AB62C7; + remoteInfo = "Google-Maps-iOS-Utils"; + }; + 5EE1A3D951F4F198868AF006EFE95315 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C73E89114A362E3F753D00E133E067A4; + remoteInfo = CapacitorGoogleMaps; + }; + 69D2A0DA08335BE7B495ACBACD1E2E0F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + 710DEE85CC2470AA01C1C5CFDC6F14FF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CB5770103B01C83F4A2086CA033FE710; + remoteInfo = CapacitorNetwork; + }; + 7E7EDB38230BEA7BD27C5425FB662B42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + 8479FB2950698CEBE67EECD6D67A92AE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 96E481B38FCD0337232020A4AC8546A6; + remoteInfo = CapacitorCamera; + }; + 8726995A63317B1F45BAE3205C936405 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0; + remoteInfo = CapacitorCordova; + }; + 8C0814C64A5CEFB10E0D49B5620F45AC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + 955647A073AA8204E77FC439FB360309 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 98C016A057FAEDD1CD09F30BD6212FED; + remoteInfo = CapacitorGeolocation; + }; + 993D907D9AEC68F3A5F259924862F82E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E5B4BBC6DD552AC8943C7E22772FC1D3; + remoteInfo = GoogleMaps; + }; + A35F6B7DC49D381F4DFA65DEBA316BCC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0658A74B495D65D0FF7A51E6ECB58F24; + remoteInfo = CapacitorBrowser; + }; + A67317B70E0200351C1EE1280E8693AC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E5B4BBC6DD552AC8943C7E22772FC1D3; + remoteInfo = GoogleMaps; + }; + A7667665425B84AE42AA609E596079E6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7FDCE32DD1A6D7C943577EF51A41EDBC; + remoteInfo = CapacitorStatusBar; + }; + A7FC83454C4156B45A6E7295154988F7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9D8F01D8A776A0B93D2D7FA97F949F10; + remoteInfo = CapacitorKeyboard; + }; + AA6B97796EC9C2119EAB3CF9503EF829 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + B3038C06B63C8B6C8C15B36177FB87C8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + B4E86DA5C9EEB57D5E68F15C16C4C2C8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + BD3ED19715A0E0B3D399D701EEBB82E3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + C2DBDE2027C470F7912894CE8A32849C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6CD167C7DA7BEBC0BB3AD67E5849503E; + remoteInfo = CordovaPlugins; + }; + CB0333D308DF64D06802170BBB6E2D09 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + D6C24742860727503F3D5C7AC0F21199 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; + E05BEC119FC95816393D931F91D3745C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E5B4BBC6DD552AC8943C7E22772FC1D3; + remoteInfo = GoogleMaps; + }; + E33ADE29ACF6EA97AD17A54DBE264A80 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 291499FE70301076C46663647D6398CF; + remoteInfo = CapacitorSplashScreen; + }; + E6962FA12EEE2DB98AC72698CC4D2E79 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0; + remoteInfo = CapacitorCordova; + }; + EC8026CB337A33652DB6B91210DBC058 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E1D15AC1C9791963802615898D3D7F93; + remoteInfo = CapacitorShare; + }; + ED4C8A9DCDEC1AD19CDADE3E55A8EFBC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6FEE101BBF77F7C607B7C97D9E084732; + remoteInfo = CapacitorHaptics; + }; + F2CC4559BEEB24E4B12659704B04AFC9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371; + remoteInfo = Capacitor; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 006EDD10E21D7C73FF389F35916A5E25 /* Array+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Capacitor.swift"; path = "Capacitor/Capacitor/Array+Capacitor.swift"; sourceTree = ""; }; + 008CCFBCC52BEBF17ED8DEAAFD2D7A81 /* CapacitorShare-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorShare-prefix.pch"; sourceTree = ""; }; + 019C445EF449E031FCF0B5BCA5D98EA8 /* KeyboardPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KeyboardPlugin.h; path = ios/Plugin/KeyboardPlugin.h; sourceTree = ""; }; + 026A691286A2668863FEACBF5E52AD02 /* CapacitorCamera */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorCamera; path = CapacitorCamera.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 02E6B1A0F945F999B05DAB41786E73F6 /* GMUDefaultClusterIconGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUDefaultClusterIconGenerator.h; path = src/Clustering/View/GMUDefaultClusterIconGenerator.h; sourceTree = ""; }; + 030B5C03593840D4ACE93E63EC62FBC3 /* GMUClusterManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUClusterManager.h; path = src/Clustering/GMUClusterManager.h; sourceTree = ""; }; + 0391CB10F6FC8CE6B82C8A5DDD52C704 /* CapacitorSplashScreen */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorSplashScreen; path = CapacitorSplashScreen.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 04EC2B08EEF6FAE70455837417A925E2 /* CAPBridgedJSTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPBridgedJSTypes.h; path = Capacitor/Capacitor/CAPBridgedJSTypes.h; sourceTree = ""; }; + 0502B7DF80C602CE185C372EF5FCD1F2 /* CapacitorNetwork-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorNetwork-umbrella.h"; sourceTree = ""; }; + 0533954F7F1661CE1B75A803B95CDA54 /* CapacitorHaptics-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorHaptics-prefix.pch"; sourceTree = ""; }; + 065BD1077D666057839E8BB05D6AB897 /* CAPInstanceConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstanceConfiguration.swift; path = Capacitor/Capacitor/CAPInstanceConfiguration.swift; sourceTree = ""; }; + 07432432AE88BF5FB8525065DCEDCE64 /* IonicCordovaCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IonicCordovaCommon.h; path = sources/CordovaPluginIonic/IonicCordovaCommon.h; sourceTree = ""; }; + 07B8490BCEAEEBDD44D51132AD4E6D1E /* GQTPointQuadTreeItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GQTPointQuadTreeItem.h; path = src/QuadTree/GQTPointQuadTreeItem.h; sourceTree = ""; }; + 08225397E55AEF41187194826AA3425E /* CapacitorGeolocation.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorGeolocation.debug.xcconfig; sourceTree = ""; }; + 094ED69D5782084C0CD8631A0DBB5BBD /* CapacitorGeolocation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorGeolocation-dummy.m"; sourceTree = ""; }; + 0ABE7D781BFC08D628BFA2C4B5590DF2 /* CapacitorCookieManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorCookieManager.swift; sourceTree = ""; }; + 0B294EDA71DCBB2E729DC983289AA249 /* GMSPolyline+GeometryUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GMSPolyline+GeometryUtils.swift"; path = "src/GeometryUtils/GMSPolyline+GeometryUtils.swift"; sourceTree = ""; }; + 0B3D11C5DC20876CCF24CB621F0E994E /* CapacitorHaptics-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorHaptics-Info.plist"; sourceTree = ""; }; + 0BC110304734F9BA380E10E7D0626FC5 /* Keyboard.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Keyboard.m; path = ios/Plugin/Keyboard.m; sourceTree = ""; }; + 0C153CE484A67EFF2491D31D200C47F6 /* Pods-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-App.release.xcconfig"; sourceTree = ""; }; + 0E1BD7CB284D348E6B89F0ACE2D24D58 /* GoogleMapPadding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GoogleMapPadding.swift; path = ios/Plugin/GoogleMapPadding.swift; sourceTree = ""; }; + 0ECA46536DFA17208195A32D5178993B /* KeyPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyPath.swift; path = Capacitor/Capacitor/KeyPath.swift; sourceTree = ""; }; + 0F338C629F761784B6A6057FD8CE51E1 /* CAPPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPlugin.m; path = Capacitor/Capacitor/CAPPlugin.m; sourceTree = ""; }; + 0F98563936B60F9860E0EC2994CF361D /* Reachability.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reachability.swift; path = ios/Plugin/Reachability.swift; sourceTree = ""; }; + 0FD893F2CA4068046FFDBB5994A173BD /* Browser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Browser.swift; path = ios/Plugin/Browser.swift; sourceTree = ""; }; + 1036761F1F6277EDC35BCEA3B260ACB6 /* CameraPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CameraPlugin.h; path = ios/Plugin/CameraPlugin.h; sourceTree = ""; }; + 110322AE52802435CF76623D5AC54465 /* GMSMarker+GMUClusteritem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMSMarker+GMUClusteritem.h"; path = "src/Clustering/GMSMarker+GMUClusteritem.h"; sourceTree = ""; }; + 1160B8F042C3F9D0413B902ABE088C51 /* CDVPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPlugin.m; sourceTree = ""; }; + 1171815F6BCF699E0399D1D3615B1279 /* CDVCommandDelegateImpl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVCommandDelegateImpl.m; sourceTree = ""; }; + 1190666C68BF7F4BAB6FBF019EDCA7B5 /* NSDictionary+CordovaPreferences.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+CordovaPreferences.h"; sourceTree = ""; }; + 11D985016D963ADF76B8BBFB9336BA9F /* CapacitorCordova.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = CapacitorCordova.modulemap; path = CapacitorCordova/CapacitorCordova/CapacitorCordova.modulemap; sourceTree = ""; }; + 13CA54E05F8A2A11F13BC7F86B8DCC07 /* GMUPoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUPoint.m; path = src/Geometry/Model/GMUPoint.m; sourceTree = ""; }; + 141E528C00264566D1D5A75F64D017EA /* CapacitorStatusBar-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorStatusBar-Info.plist"; sourceTree = ""; }; + 1483FCB970C7E4E42A334DCA5D98786E /* GMUClusterManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUClusterManager.m; path = src/Clustering/GMUClusterManager.m; sourceTree = ""; }; + 14883F2A4312E21CEB6CB4E1C77D17D7 /* CapacitorSplashScreen.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorSplashScreen.debug.xcconfig; sourceTree = ""; }; + 15626776627C179472986457664301EC /* CatesianPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CatesianPoint.swift; path = src/GeometryUtils/Internal/CatesianPoint.swift; sourceTree = ""; }; + 15CFE4527BEB86AD5D5E591DCCEC0334 /* CapacitorGoogleMapsPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CapacitorGoogleMapsPlugin.h; path = ios/Plugin/CapacitorGoogleMapsPlugin.h; sourceTree = ""; }; + 15DC41EE83D394BFCBD4D65C24A3EC29 /* GeolocationPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GeolocationPlugin.h; path = ios/Plugin/GeolocationPlugin.h; sourceTree = ""; }; + 161E9590D153254C243AD67B36F1E178 /* CapacitorSplashScreen.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorSplashScreen.release.xcconfig; sourceTree = ""; }; + 16A278647AC827B8FC986BB9D71E0C13 /* CapacitorGoogleMaps-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorGoogleMaps-dummy.m"; sourceTree = ""; }; + 17D63720DAC6363C343864A8C091FC5A /* GQTPointQuadTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GQTPointQuadTree.h; path = src/QuadTree/GQTPointQuadTree.h; sourceTree = ""; }; + 17E9DF1E732F11C5E3E715ECDAC6CAE7 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 18A1E3F32EF882E5AC26B1722AFEF862 /* GoogleMaps.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; name = GoogleMaps.xcframework; path = Maps/Frameworks/GoogleMaps.xcframework; sourceTree = ""; }; + 1A58D85D43E52C202A79D66B8152A90C /* CapacitorDevice.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorDevice.release.xcconfig; sourceTree = ""; }; + 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorCordova; path = Cordova.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C8D67AEA3CB980269FEE9F99B52F324 /* GQTPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GQTPoint.h; path = src/QuadTree/GQTPoint.h; sourceTree = ""; }; + 1F58215E25E4724887CBE6B328ED513E /* Console.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Console.swift; sourceTree = ""; }; + 1F824BA35646383CB277C267C2B7DA58 /* GMUGroundOverlay.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGroundOverlay.m; path = src/Geometry/Model/GMUGroundOverlay.m; sourceTree = ""; }; + 20D422518836D78FC12CD5C869AE645F /* CAPInstanceConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPInstanceConfiguration.m; path = Capacitor/Capacitor/CAPInstanceConfiguration.m; sourceTree = ""; }; + 211EFDDAD4E27E8543BE96E307D87912 /* GoogleMaps.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleMaps.release.xcconfig; sourceTree = ""; }; + 263DF2B21F234AD9F2994F36180BB2ED /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 26969F9EEC9F4DDCD493EF0884E1EDEC /* CapacitorGeolocation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorGeolocation; path = CapacitorGeolocation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 26DD3A1ECFE17A06DA5BE6719B675360 /* SplashScreenPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SplashScreenPlugin.h; path = ios/Plugin/SplashScreenPlugin.h; sourceTree = ""; }; + 27288F36CEAA62E8295EEA60AF6C7C9B /* CDVURLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVURLProtocol.h; sourceTree = ""; }; + 281A90D0977A36AD7B6B4A1A3F133FDD /* GMUKMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUKMLParser.m; path = src/Geometry/GMUKMLParser.m; sourceTree = ""; }; + 28E1AD858527E297FF4B729897752EF0 /* GMUGridBasedClusterAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGridBasedClusterAlgorithm.m; path = src/Clustering/Algo/GMUGridBasedClusterAlgorithm.m; sourceTree = ""; }; + 297D5DDC58588524A1DBF8ECB33CC68A /* CAPInstanceDescriptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstanceDescriptor.swift; path = Capacitor/Capacitor/CAPInstanceDescriptor.swift; sourceTree = ""; }; + 29AC238BABAD0D91D9053DFE88DD0E47 /* CapacitorStatusBar.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorStatusBar.debug.xcconfig; sourceTree = ""; }; + 29EB30DAFAF5BF56516861F092035100 /* Pods-App.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-App.modulemap"; sourceTree = ""; }; + 2B3DDBE52524F8FA8A9FB85276FBFA2F /* Google-Maps-iOS-Utils-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Google-Maps-iOS-Utils-umbrella.h"; sourceTree = ""; }; + 2B792AD3A20BB6EB1A0B3DA5D297264C /* GMUDefaultClusterRenderer+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMUDefaultClusterRenderer+Testing.h"; path = "src/Clustering/View/GMUDefaultClusterRenderer+Testing.h"; sourceTree = ""; }; + 2B7DF4FD2147638416E3BDBDD66EE5A2 /* CapacitorGoogleMapsPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CapacitorGoogleMapsPlugin.m; path = ios/Plugin/CapacitorGoogleMapsPlugin.m; sourceTree = ""; }; + 2B9299E67BD39CF7001F8C498F28543C /* CAPInstanceConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPInstanceConfiguration.h; path = Capacitor/Capacitor/CAPInstanceConfiguration.h; sourceTree = ""; }; + 2BB655F8A3B9F0C3DB37D349580B2779 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; }; + 2C0DC5325C75FDB903F29E6219BB6BB4 /* GMUGeometryContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGeometryContainer.h; path = src/Geometry/Model/GMUGeometryContainer.h; sourceTree = ""; }; + 2CB925F62DBA680F4FE21464EF0EFCD5 /* CapacitorGeolocation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorGeolocation-umbrella.h"; sourceTree = ""; }; + 2D57C5D51C30D39B525B8AC846A00DD0 /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-App.debug.xcconfig"; sourceTree = ""; }; + 2D7B63343CABE9D2A5727CFEA05D5E92 /* CapacitorShare.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorShare.release.xcconfig; sourceTree = ""; }; + 2DB297D724008914A6919472A35D7A09 /* GMUFeature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUFeature.h; path = src/Geometry/Model/GMUFeature.h; sourceTree = ""; }; + 2E2D9E26592835272A4815E92FFA1C27 /* SharePlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SharePlugin.m; path = ios/Plugin/SharePlugin.m; sourceTree = ""; }; + 2EF199A97A10FD00046A60594869F9DD /* GQTPointQuadTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GQTPointQuadTree.m; path = src/QuadTree/GQTPointQuadTree.m; sourceTree = ""; }; + 2F4B8C0D5BB2F86DEFB151C1AC85BC91 /* Google-Maps-iOS-Utils.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Google-Maps-iOS-Utils.release.xcconfig"; sourceTree = ""; }; + 2F6DB81A220CADE71E9633D7D674BB86 /* CordovaPlugins-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CordovaPlugins-umbrella.h"; sourceTree = ""; }; + 2FC81E0507F2B14FDB8E2D2846AAB68A /* CapacitorStatusBar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorStatusBar-prefix.pch"; sourceTree = ""; }; + 30FA8D172749E662EF778A1D4738BA49 /* CDVCommandDelegateImpl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVCommandDelegateImpl.h; sourceTree = ""; }; + 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 332DA844D92BCA5E2E66DBD686E5BC16 /* CameraExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraExtensions.swift; path = ios/Plugin/CameraExtensions.swift; sourceTree = ""; }; + 34AAECF30B9171420AE864774EFB0F20 /* CapacitorNetwork.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorNetwork.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 36FD4B2E696F789F214C409370DA0920 /* CapacitorExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CapacitorExtension.swift; path = Capacitor/Capacitor/CapacitorExtension.swift; sourceTree = ""; }; + 37915BEC3E9EB6CD453C07348A49B51A /* CapacitorStatusBar */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorStatusBar; path = CapacitorStatusBar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 37BF9C049283E4F96CBE7B79AD129168 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 39EEDD900294E0C1F760B200762131B6 /* GMUClusterAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUClusterAlgorithm.h; path = src/Clustering/Algo/GMUClusterAlgorithm.h; sourceTree = ""; }; + 3A0CA97224EE732BAD4B509F46EA3B37 /* CapacitorCordova.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCordova.debug.xcconfig; sourceTree = ""; }; + 3A1E57E5C6234F9ED43A6AA9ECC898E1 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 3C44BAD661E660FD1343D317148AE635 /* GMUPair.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUPair.h; path = src/Geometry/Model/GMUPair.h; sourceTree = ""; }; + 3C455097FFBABB024C54A6E48E5703C0 /* CLLocationCoordinate2D+GeometryUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CLLocationCoordinate2D+GeometryUtils.swift"; path = "src/GeometryUtils/CLLocationCoordinate2D+GeometryUtils.swift"; sourceTree = ""; }; + 3D12729A02B5DBB1196DB1627F2C9820 /* GMUStaticCluster.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUStaticCluster.h; path = src/Clustering/GMUStaticCluster.h; sourceTree = ""; }; + 3D53E18BA8FA1C2A2B1C60BD2E713E71 /* WKWebView+Capacitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+Capacitor.m"; path = "Capacitor/Capacitor/WKWebView+Capacitor.m"; sourceTree = ""; }; + 3D76AA87E402DFA06409861126F3D92C /* CDVViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVViewController.m; sourceTree = ""; }; + 3E746FDF3C50F438262218FA15AAC2CF /* GoogleMapsCore.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; name = GoogleMapsCore.xcframework; path = Maps/Frameworks/GoogleMapsCore.xcframework; sourceTree = ""; }; + 3EA9E28B74E322EA0006C957054009A9 /* Google-Maps-iOS-Utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Google-Maps-iOS-Utils.modulemap"; sourceTree = ""; }; + 3FA8AA5F2CAD53323CFE0721EB340F60 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 40602FA7403A27EDFFB3AEA42FB22E56 /* GMUGeometryRenderer+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMUGeometryRenderer+Testing.h"; path = "src/Geometry/GMUGeometryRenderer+Testing.h"; sourceTree = ""; }; + 4080BB5AF95D2204F670E4769A9525B3 /* GMUClusterManager+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMUClusterManager+Testing.h"; path = "src/Clustering/GMUClusterManager+Testing.h"; sourceTree = ""; }; + 40B997D573B9287A627D5B16E8FEDA5A /* CameraPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CameraPlugin.m; path = ios/Plugin/CameraPlugin.m; sourceTree = ""; }; + 40DBD9184E6A48302F019C1FD8A1999A /* CapacitorCamera-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorCamera-Info.plist"; sourceTree = ""; }; + 4253EC398439557396E16BC146796793 /* CapacitorHaptics.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorHaptics.release.xcconfig; sourceTree = ""; }; + 432E1E622F84E8D844E16294C6F995F0 /* CapacitorNetwork-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorNetwork-Info.plist"; sourceTree = ""; }; + 4368DF7AF0C26ADF361230E02AFD9DB5 /* PluginCallResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PluginCallResult.swift; path = Capacitor/Capacitor/PluginCallResult.swift; sourceTree = ""; }; + 4378CD4D104E15E4DE374F7AE2E1F941 /* CDVPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPlugin.h; sourceTree = ""; }; + 43C1F84D627A9A40A7F0155108B2DD75 /* CameraTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraTypes.swift; path = ios/Plugin/CameraTypes.swift; sourceTree = ""; }; + 43F80CDA05D5624A6B812123E023B138 /* CapacitorKeyboard */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorKeyboard; path = CapacitorKeyboard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 446AD267718E4C58D16A192FFDFBC511 /* WebViewDelegationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebViewDelegationHandler.swift; path = Capacitor/Capacitor/WebViewDelegationHandler.swift; sourceTree = ""; }; + 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Capacitor; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4564580AA215CE6C361D09A521831141 /* CordovaPlugins.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CordovaPlugins.debug.xcconfig; sourceTree = ""; }; + 45E588CB4D34F2A15CA1BB9439F087FD /* CAPPlugin+LoadInstance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CAPPlugin+LoadInstance.swift"; path = "Capacitor/Capacitor/CAPPlugin+LoadInstance.swift"; sourceTree = ""; }; + 46CC12C851316C518A8535B7D56661A8 /* CordovaPlugins.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CordovaPlugins.modulemap; sourceTree = ""; }; + 475062F828B7D0C94730AC748AFE1C4C /* CAPPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPlugin.h; path = Capacitor/Capacitor/CAPPlugin.h; sourceTree = ""; }; + 47980E5F55F41E2B031AB6B11B197386 /* CAPBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridge.swift; path = Capacitor/Capacitor/CAPBridge.swift; sourceTree = ""; }; + 47DF6CCABD22147C94CE841A994F2723 /* GMUFeature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUFeature.m; path = src/Geometry/Model/GMUFeature.m; sourceTree = ""; }; + 4830CABC2D58B5C50BE6EFECA34B2895 /* CapacitorHaptics */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorHaptics; path = CapacitorHaptics.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 483EDA0599A3E7F8F84740ED510E952A /* GoogleMapsBase.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; name = GoogleMapsBase.xcframework; path = Base/Frameworks/GoogleMapsBase.xcframework; sourceTree = ""; }; + 4902D237EECF3B7F46A455E342DFD129 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 4A0FEAF1F38F95F8366121B40763E96A /* CapacitorCordova.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorCordova.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 4A309385FC5B96ADBCB01BB9E01BA26B /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 4A3AE3DFF6BE23D59D2CA203A5031E7E /* GMUPair.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUPair.m; path = src/Geometry/Model/GMUPair.m; sourceTree = ""; }; + 4B1650715D10774E45B037A4E1BF66F3 /* CAPInstanceDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPInstanceDescriptor.m; path = Capacitor/Capacitor/CAPInstanceDescriptor.m; sourceTree = ""; }; + 4B2764148AFFA80C343C21DB7F5D0C69 /* CordovaPlugins-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CordovaPlugins-prefix.pch"; sourceTree = ""; }; + 4B5E728390904C5EB06CDC0AAF89BFA3 /* GMUPlacemark.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUPlacemark.m; path = src/Geometry/Model/GMUPlacemark.m; sourceTree = ""; }; + 4BB9D1B71302E4C69FB33C482D97FC88 /* Capacitor.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Capacitor.release.xcconfig; sourceTree = ""; }; + 4C0DB19FF0437E6A2A38444511FACACE /* GMUSimpleClusterAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUSimpleClusterAlgorithm.h; path = src/Clustering/Algo/GMUSimpleClusterAlgorithm.h; sourceTree = ""; }; + 4D3409FE076E9FFA23BB554CC9B0F84A /* GMUCluster.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUCluster.h; path = src/Clustering/GMUCluster.h; sourceTree = ""; }; + 4E24CA56E676B31D263C18620383F12B /* CapacitorGoogleMaps.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorGoogleMaps.modulemap; sourceTree = ""; }; + 4F4C2859DFF1D00E671508CB8EE79A5C /* AppUUID.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppUUID.swift; path = Capacitor/Capacitor/AppUUID.swift; sourceTree = ""; }; + 4FA63BA45CA65303C8508B5160D2A743 /* CAPWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPWebView.swift; path = Capacitor/Capacitor/CAPWebView.swift; sourceTree = ""; }; + 4FDB0AEABD2502A0C199D950A981211F /* HapticsPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HapticsPlugin.h; path = ios/Plugin/HapticsPlugin.h; sourceTree = ""; }; + 5004F173599560893CB57378FF7B611F /* IonicCordovaCommon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IonicCordovaCommon.m; path = sources/CordovaPluginIonic/IonicCordovaCommon.m; sourceTree = ""; }; + 504EE5564A74A840C921D902648917A9 /* CAPBridgedPlugin+getMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CAPBridgedPlugin+getMethod.swift"; path = "Capacitor/Capacitor/CAPBridgedPlugin+getMethod.swift"; sourceTree = ""; }; + 507B49777EA6A9ACB74EF4B76F9C9F1B /* Capacitor.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Capacitor.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 517384C04DB2FEC9C01BA36B5E448BC4 /* WebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; }; + 52687E9643DCEE8928A02625151743EE /* SplashScreenConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SplashScreenConfig.swift; path = ios/Plugin/SplashScreenConfig.swift; sourceTree = ""; }; + 528DB4C3F4FEBED3C10DC2081841CEEB /* StatusBarPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = StatusBarPlugin.h; path = ios/Plugin/StatusBarPlugin.h; sourceTree = ""; }; + 52C83A91B71229E5F5FEDCFFC2E95F8F /* CapacitorDevice-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorDevice-Info.plist"; sourceTree = ""; }; + 52F7FDFD9C71AD8F5435EAF27DE9AEFC /* DefaultPlugins.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = DefaultPlugins.m; sourceTree = ""; }; + 544739C6CFC1B79A2CA0673CD1DA7436 /* CapacitorNetwork-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorNetwork-prefix.pch"; sourceTree = ""; }; + 54A2F22E001B70B2C97CE1F6AF4F202E /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 54DCCB728FFA766AE9B1F25AEF5F6A57 /* CapacitorKeyboard.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorKeyboard.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 55978B2987E6492C2C29B7492932ACA7 /* HeatMapInterpolationPoints.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HeatMapInterpolationPoints.swift; path = src/Heatmap/HeatMapInterpolationPoints.swift; sourceTree = ""; }; + 55E667C388709DCC6EA6BB14D72BFD9C /* GQTBounds.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GQTBounds.h; path = src/QuadTree/GQTBounds.h; sourceTree = ""; }; + 56F3A033B0D2B0425A927B811853F45A /* CapacitorKeyboard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorKeyboard.debug.xcconfig; sourceTree = ""; }; + 571D9B3157913DDE9A857A069A334446 /* CapacitorGoogleMaps.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorGoogleMaps.debug.xcconfig; sourceTree = ""; }; + 576A0282110BD65AD8EE021C0AA1BF5F /* GoogleMapConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GoogleMapConfig.swift; path = ios/Plugin/GoogleMapConfig.swift; sourceTree = ""; }; + 5778F4ED154F0E6FDFB3E6133C72608E /* GMUSimpleClusterAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUSimpleClusterAlgorithm.m; path = src/Clustering/Algo/GMUSimpleClusterAlgorithm.m; sourceTree = ""; }; + 57E2F5C19C8FD063DEFBDA5B795AC11E /* CapacitorShare-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorShare-Info.plist"; sourceTree = ""; }; + 57F6B2FB00E00CE8A1EB1716A5DA46F4 /* GeolocationPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GeolocationPlugin.swift; path = ios/Plugin/GeolocationPlugin.swift; sourceTree = ""; }; + 5895979931C7D87790353BB3661FB54B /* GMUClusterRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUClusterRenderer.h; path = src/Clustering/View/GMUClusterRenderer.h; sourceTree = ""; }; + 59EE1908FB1192C9E2D6811ACAD46B38 /* DevicePlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DevicePlugin.swift; path = ios/Plugin/DevicePlugin.swift; sourceTree = ""; }; + 5A65E7B8715855D12D529FFD6A0BAC46 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 5B30ADC18C448344C4C32DF4B1B87311 /* GMUWrappingDictionaryKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUWrappingDictionaryKey.h; path = src/Clustering/Algo/GMUWrappingDictionaryKey.h; sourceTree = ""; }; + 5B6A0EA8C03C7167C93C57FFB9A5983B /* GMUGeoJSONParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGeoJSONParser.m; path = src/Geometry/GMUGeoJSONParser.m; sourceTree = ""; }; + 5B7AB502493EC2713E8D683BEA1D5D67 /* CapacitorHaptics-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorHaptics-dummy.m"; sourceTree = ""; }; + 5BEF4602752E47C46E8C10FB8B4B57F2 /* Pods-App */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-App"; path = Pods_App.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CA9E6FE438CE79CD76FA3B34CC95836 /* Google-Maps-iOS-Utils */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Google-Maps-iOS-Utils"; path = GoogleMapsUtils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D4424A2D9F0D46897324AF4A849FE28 /* CAPBridgeDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeDelegate.swift; path = Capacitor/Capacitor/CAPBridgeDelegate.swift; sourceTree = ""; }; + 5F2C6DD83CB96C82E3B0F078DF77C244 /* CapacitorSplashScreen.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorSplashScreen.modulemap; sourceTree = ""; }; + 5F4E483ABAB2BD3CFA69EA1F29127807 /* CapacitorDevice.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorDevice.modulemap; sourceTree = ""; }; + 601120E6ECF0BB8EE730B42B02B9F401 /* Device.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Device.swift; path = ios/Plugin/Device.swift; sourceTree = ""; }; + 6055C567B65A552C0355C3551506FD6C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 60FBB91EE7FE1F52E9AC9FDA631D686F /* TmpViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TmpViewController.swift; path = Capacitor/Capacitor/TmpViewController.swift; sourceTree = ""; }; + 6192101B39EAB449622F8F6A660B84D6 /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CAPBridgeViewController+CDVScreenOrientationDelegate.h"; path = "Capacitor/Capacitor/CAPBridgeViewController+CDVScreenOrientationDelegate.h"; sourceTree = ""; }; + 61AF2DFA2A0AF79F69E90995DDC0EE37 /* GMUGeometry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGeometry.h; path = src/Geometry/Model/GMUGeometry.h; sourceTree = ""; }; + 61EA3F25D4D8EEF7AB1533FFD9C4B183 /* Google-Maps-iOS-Utils-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Google-Maps-iOS-Utils-prefix.pch"; sourceTree = ""; }; + 629B5C01A4FFA6B34F6D78B3D18687C6 /* CapacitorGoogleMapsPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CapacitorGoogleMapsPlugin.swift; path = ios/Plugin/CapacitorGoogleMapsPlugin.swift; sourceTree = ""; }; + 62B6BF20395E7867E484E089BDD7C471 /* GMUNonHierarchicalDistanceBasedAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUNonHierarchicalDistanceBasedAlgorithm.m; path = src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.m; sourceTree = ""; }; + 62B975DD4C2CA4DD18D4E5FBEBB63A2C /* DevicePlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DevicePlugin.h; path = ios/Plugin/DevicePlugin.h; sourceTree = ""; }; + 62C51465176701858B846F4D580F3E48 /* ImageSaver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageSaver.swift; path = ios/Plugin/ImageSaver.swift; sourceTree = ""; }; + 62D00377E1A6D02F6D92561942042102 /* Capacitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Capacitor.h; path = Capacitor/Capacitor/Capacitor.h; sourceTree = ""; }; + 62F7D9BD7EF5A25667FD34442D1AAE00 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CAPBridgeViewController+CDVScreenOrientationDelegate.m"; path = "Capacitor/Capacitor/CAPBridgeViewController+CDVScreenOrientationDelegate.m"; sourceTree = ""; }; + 6325859959A142AB16EB2F1CF0D1954A /* CapacitorStatusBar.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorStatusBar.modulemap; sourceTree = ""; }; + 6383FED04DDB4483A80D1DDD48D06D95 /* CapacitorShare.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorShare.modulemap; sourceTree = ""; }; + 63B049463AB4A0A5D01748FD508D1D78 /* GMUStyleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUStyleMap.m; path = src/Geometry/Model/GMUStyleMap.m; sourceTree = ""; }; + 63D812D6B01BE483BEA167D6CD3FAEFD /* CapacitorUrlRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorUrlRequest.swift; sourceTree = ""; }; + 6428A32784C5CA1044899E44C665BF19 /* Data+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Capacitor.swift"; path = "Capacitor/Capacitor/Data+Capacitor.swift"; sourceTree = ""; }; + 643652819661FACEDD8B0349173569EE /* CapacitorNetwork-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorNetwork-dummy.m"; sourceTree = ""; }; + 64447D1564D0F003F4FD0F295288C67A /* CDVConfigParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVConfigParser.h; sourceTree = ""; }; + 6627116E9BE9360EC71B1F0B2C66A144 /* CapacitorNetwork.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorNetwork.debug.xcconfig; sourceTree = ""; }; + 66E6A765D0CAB829ACE60FA68F61A094 /* CapacitorDevice-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorDevice-prefix.pch"; sourceTree = ""; }; + 679BEAAF6CE3A649A4D56B90BB88A932 /* NotificationRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationRouter.swift; path = Capacitor/Capacitor/NotificationRouter.swift; sourceTree = ""; }; + 68EBAD27FFD136B3A01F7D84B2DE3852 /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIColor.swift; path = Capacitor/Capacitor/UIColor.swift; sourceTree = ""; }; + 69B0A016C0E72F37801D358AC8C34DB5 /* Capacitor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = Capacitor.modulemap; path = Capacitor/Capacitor/Capacitor.modulemap; sourceTree = ""; }; + 6A09EF0ADF22401613C81BD4037324B3 /* GMUGeometryCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGeometryCollection.h; path = src/Geometry/Model/GMUGeometryCollection.h; sourceTree = ""; }; + 6A176E2A43FAA5336CB0CE809687AF12 /* CapacitorCamera.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCamera.release.xcconfig; sourceTree = ""; }; + 6C90329A1C99F5C204C50285232F8792 /* NotificationHandlerProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationHandlerProtocol.swift; path = Capacitor/Capacitor/NotificationHandlerProtocol.swift; sourceTree = ""; }; + 6D2D314BB1BFE55C34EC1E25A4A00B3A /* NetworkPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NetworkPlugin.m; path = ios/Plugin/NetworkPlugin.m; sourceTree = ""; }; + 6D2F7843D7AFC1837FAD7630C9E5C504 /* CapacitorDevice */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorDevice; path = CapacitorDevice.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6EBC1C9C154B0BFF3B7FEDD8566F4161 /* CapacitorBrowser-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorBrowser-Info.plist"; sourceTree = ""; }; + 6F28C085E887396C58FD3FC1456C6982 /* CDVPlugin+Resources.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CDVPlugin+Resources.h"; sourceTree = ""; }; + 6FD58560147B359037BEECC20FC95886 /* CapacitorCordova.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorCordova.modulemap; sourceTree = ""; }; + 6FE3C683A344442D55261C9C26E96DF0 /* CapacitorKeyboard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorKeyboard-dummy.m"; sourceTree = ""; }; + 701B27319A546FCA864708F26BB246D2 /* Polyline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Polyline.swift; path = ios/Plugin/Polyline.swift; sourceTree = ""; }; + 7061838198E5AA643D05FC2E751F4717 /* GoogleMapCameraConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GoogleMapCameraConfig.swift; path = ios/Plugin/GoogleMapCameraConfig.swift; sourceTree = ""; }; + 707866C048A1531256230F6B517A0DAD /* LatLngRadians.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LatLngRadians.swift; path = src/GeometryUtils/Internal/LatLngRadians.swift; sourceTree = ""; }; + 71DDA40914F2339F7BD8518B2DC4570E /* CDVCommandDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVCommandDelegate.h; sourceTree = ""; }; + 72C84A3FC08798651F3AFD8FE2A15B36 /* native-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "native-bridge.js"; path = "Capacitor/Capacitor/assets/native-bridge.js"; sourceTree = ""; }; + 73DEFF31C4ADA1FF43A0A6759ADC8AD1 /* CAPBridgedJSTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPBridgedJSTypes.m; path = Capacitor/Capacitor/CAPBridgedJSTypes.m; sourceTree = ""; }; + 740B733F127AEB26C456D991C9A4B4A4 /* CAPNotifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPNotifications.swift; path = Capacitor/Capacitor/CAPNotifications.swift; sourceTree = ""; }; + 75094E99B56AE4BEBE4B0C76272B35E5 /* StatusBarPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = StatusBarPlugin.m; path = ios/Plugin/StatusBarPlugin.m; sourceTree = ""; }; + 76ACE47CFED9FAB18CECD159FE333EE8 /* CapacitorBrowser.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorBrowser.modulemap; sourceTree = ""; }; + 7757BDDE2674BFB4007A7B036A825900 /* SharePlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SharePlugin.swift; path = ios/Plugin/SharePlugin.swift; sourceTree = ""; }; + 77FA69F7F051EA8CD6B29E44D16F5808 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 786739ECD89CA669CF5DD5525365B775 /* CapacitorHaptics.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorHaptics.modulemap; sourceTree = ""; }; + 78B1D68479127328417E9BC82ECC3AFC /* GMSPolygon+GeometryUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GMSPolygon+GeometryUtils.swift"; path = "src/GeometryUtils/GMSPolygon+GeometryUtils.swift"; sourceTree = ""; }; + 78BF23DC14865786557F50DC32235AD9 /* GMUHeatmapTileLayer+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMUHeatmapTileLayer+Testing.h"; path = "src/Heatmap/GMUHeatmapTileLayer+Testing.h"; sourceTree = ""; }; + 7A307E357FDE1C5E966E2FFB5CF8F3C4 /* GMUHeatmapTileLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUHeatmapTileLayer.m; path = src/Heatmap/GMUHeatmapTileLayer.m; sourceTree = ""; }; + 7B8A48D4F4E78F53898574B2C2A07227 /* CapacitorStatusBar.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorStatusBar.release.xcconfig; sourceTree = ""; }; + 7D20EAE3311581B94AC71E3E49FDC75F /* CDV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDV.h; sourceTree = ""; }; + 7D9233393A943F5E6DD345CADB12081A /* CapacitorBrowser.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorBrowser.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 7E4C26A509A4D9217810697566ED9FCD /* Capacitor.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Capacitor.debug.xcconfig; sourceTree = ""; }; + 7EA711D8361724A13828BB7095C8D3E1 /* Capacitor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Capacitor.modulemap; sourceTree = ""; }; + 7F56FD043CFFFCB15E47A477BEFFECDA /* CAPInstancePlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstancePlugin.swift; path = Capacitor/Capacitor/CAPInstancePlugin.swift; sourceTree = ""; }; + 805E8F40E0D244369108472D379FD613 /* CapacitorGoogleMaps-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorGoogleMaps-umbrella.h"; sourceTree = ""; }; + 806BC1B663F5C2F574623C924386595F /* KeyboardPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KeyboardPlugin.m; path = ios/Plugin/KeyboardPlugin.m; sourceTree = ""; }; + 80CA4ADBD48E83E5A9FE15A4C4B1635D /* CapacitorNetwork.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorNetwork.modulemap; sourceTree = ""; }; + 810063DB5D14B617044ED211C54CE75D /* Haptics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Haptics.swift; path = ios/Plugin/Haptics.swift; sourceTree = ""; }; + 811BCC1F72CFA5F86B1CCFB663E03B58 /* GMUDefaultClusterRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUDefaultClusterRenderer.h; path = src/Clustering/View/GMUDefaultClusterRenderer.h; sourceTree = ""; }; + 819C5C569BA7625E430D59AE71F1315B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 826A274CF4281D936D71EA4377CA0A0B /* CordovaPlugins.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CordovaPlugins.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 83C625F24F0C1218CA03635CC10D9EB5 /* Capacitor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Capacitor-prefix.pch"; sourceTree = ""; }; + 83CF5DA5EEB972ED2ACD7F8437EEE5DA /* CapacitorKeyboard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorKeyboard-umbrella.h"; sourceTree = ""; }; + 83F2E17967298F0A69458C99957C080C /* GMULineString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMULineString.h; path = src/Geometry/Model/GMULineString.h; sourceTree = ""; }; + 84C73EFF9BA95B361FFFE6514A0E0BC2 /* GMUWeightedLatLng.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUWeightedLatLng.m; path = src/Heatmap/GMUWeightedLatLng.m; sourceTree = ""; }; + 851193462355087F0CF75B9B3AEADFB7 /* GMUStyleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUStyleMap.h; path = src/Geometry/Model/GMUStyleMap.h; sourceTree = ""; }; + 853A5EF09F799AC6838BF8087EF1ECFB /* CapacitorNetwork.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorNetwork.release.xcconfig; sourceTree = ""; }; + 854C770043773090F19C80F080A39B6E /* CapacitorBrowser.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorBrowser.release.xcconfig; sourceTree = ""; }; + 8559A029D40994BA3A549B5A355F5308 /* AppDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 855BD2831C383A6A618D2E6801E467F8 /* CapacitorKeyboard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorKeyboard-Info.plist"; sourceTree = ""; }; + 87545CCECEE3DBB3981AC72755C734CE /* GQTPointQuadTreeChild.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GQTPointQuadTreeChild.h; path = src/QuadTree/GQTPointQuadTreeChild.h; sourceTree = ""; }; + 89537FD66A5327F8FD6C8662C4B99BB1 /* Map.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Map.swift; path = ios/Plugin/Map.swift; sourceTree = ""; }; + 895922265FE97E01F8AEF40F9C7AC184 /* CapacitorGoogleMaps.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorGoogleMaps.release.xcconfig; sourceTree = ""; }; + 89F7148E65A836AC4C416F94719E7B84 /* GMUNonHierarchicalDistanceBasedAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUNonHierarchicalDistanceBasedAlgorithm.h; path = src/Clustering/Algo/GMUNonHierarchicalDistanceBasedAlgorithm.h; sourceTree = ""; }; + 8A6D1DEE1B96148FDFEE357732FB0C83 /* CAPApplicationDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPApplicationDelegateProxy.swift; path = Capacitor/Capacitor/CAPApplicationDelegateProxy.swift; sourceTree = ""; }; + 8B353C00348AF0CF25722800E2DD4A6F /* GMUStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUStyle.m; path = src/Geometry/Model/GMUStyle.m; sourceTree = ""; }; + 8BA4179785D5E4172685C44F6B9ED9BD /* CapacitorSplashScreen-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorSplashScreen-Info.plist"; sourceTree = ""; }; + 8CD6076414787CF0E5E20AD3A536ACED /* GMUClusterIconGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUClusterIconGenerator.h; path = src/Clustering/View/GMUClusterIconGenerator.h; sourceTree = ""; }; + 8D10F2F9D4766573F21421B4F5DEFDEA /* CDVViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVViewController.h; sourceTree = ""; }; + 8F1EA75D00F7041F89CE370128D6A66E /* CapacitorGeolocation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorGeolocation-prefix.pch"; sourceTree = ""; }; + 8F4E4688036EAD145EE71183E77FE753 /* CapacitorCordova-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorCordova-dummy.m"; sourceTree = ""; }; + 8FB47E0FB967E1F02BBE35EA22D5D16A /* CDVURLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVURLProtocol.m; sourceTree = ""; }; + 8FD7DCDF9FDA4D72EC3E44FF5B8DAF88 /* Pods-App-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-App-acknowledgements.markdown"; sourceTree = ""; }; + 8FDE6DB2203829FEBD0F27BBA38D087E /* GQTPointQuadTreeChild.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GQTPointQuadTreeChild.m; path = src/QuadTree/GQTPointQuadTreeChild.m; sourceTree = ""; }; + 905488119B59CE9E075BE7526F21DF2E /* CordovaPlugins */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CordovaPlugins; path = CordovaPlugins.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9086E5228F2589CADE45C3F7DCA6C184 /* StatusBarPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StatusBarPlugin.swift; path = ios/Plugin/StatusBarPlugin.swift; sourceTree = ""; }; + 91828E78D4D2D3C51C8196000FA1B8B9 /* CapacitorCordova-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorCordova-prefix.pch"; sourceTree = ""; }; + 935EEB79B315A38B977DF84BF8687097 /* MapPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MapPoint.swift; path = src/GeometryUtils/MapPoint.swift; sourceTree = ""; }; + 93DCE4EE8DEF2C976C0E59561685E200 /* HapticsPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HapticsPlugin.swift; path = ios/Plugin/HapticsPlugin.swift; sourceTree = ""; }; + 9517C1282EFA756387C3CA0CBBC55E18 /* Router.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Router.swift; path = Capacitor/Capacitor/Router.swift; sourceTree = ""; }; + 95AA376BD818EDF43A84D213133CCC03 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 971FBAC778F22FBBA60AF4EE43155E18 /* BrowserPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BrowserPlugin.m; path = ios/Plugin/BrowserPlugin.m; sourceTree = ""; }; + 97223C8D9031151C843566D4135CD31E /* CapacitorCamera-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorCamera-umbrella.h"; sourceTree = ""; }; + 9779FB99183CEFB7AF386C33D3B410D0 /* CapacitorStatusBar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorStatusBar-dummy.m"; sourceTree = ""; }; + 97A6C4B65C68E1F73D074A6B1D2E459D /* CapacitorCookies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorCookies.swift; sourceTree = ""; }; + 982F08EFD1430A2552B0ED4BE9B0B0A4 /* CapacitorBrowser-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorBrowser-umbrella.h"; sourceTree = ""; }; + 987F69D9BCD0655BDFFCDD4766EF035E /* GMSMarker+GMUClusteritem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GMSMarker+GMUClusteritem.m"; path = "src/Clustering/GMSMarker+GMUClusteritem.m"; sourceTree = ""; }; + 996BF05A924C7F75744E369215C94AE6 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 9971763490737DB927EF530F4C5BA9CA /* CapacitorCordova.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCordova.release.xcconfig; sourceTree = ""; }; + 99B7359DBA6E4691A7147434A42266FA /* CAPLog.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPLog.swift; path = Capacitor/Capacitor/CAPLog.swift; sourceTree = ""; }; + 9BAAF138DA4EA4C0D48B621AB1B9D881 /* CapacitorSplashScreen-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorSplashScreen-prefix.pch"; sourceTree = ""; }; + 9BB8779F949D5F7B32072C1EEFFFEAF9 /* CameraPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraPlugin.swift; path = ios/Plugin/CameraPlugin.swift; sourceTree = ""; }; + 9D3BC4ED95E65A6F3EA7713E331C1A7D /* DevicePlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DevicePlugin.m; path = ios/Plugin/DevicePlugin.m; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A0AC37A89F1DB86171DD3C8D77E847DC /* CapacitorSplashScreen.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorSplashScreen.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A1D4096941C0E4B2AFAF48F7423B3609 /* GMUClusterItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUClusterItem.h; path = src/Clustering/GMUClusterItem.h; sourceTree = ""; }; + A1D7CEA3754B3ADE2CE169F9FD853CA7 /* CapacitorCamera.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorCamera.modulemap; sourceTree = ""; }; + A215FCD1E900C227751C7DEA20055980 /* CapacitorDevice-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorDevice-dummy.m"; sourceTree = ""; }; + A237AF51250B3E819509B9E5DF47861D /* BrowserPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BrowserPlugin.h; path = ios/Plugin/BrowserPlugin.h; sourceTree = ""; }; + A3146C3C278220B6D6C2F2F84725C69B /* GMUGeoJSONParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGeoJSONParser.h; path = src/Geometry/GMUGeoJSONParser.h; sourceTree = ""; }; + A46BAEE2FB0FC48966292071F59091A4 /* GoogleMapErrors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GoogleMapErrors.swift; path = ios/Plugin/GoogleMapErrors.swift; sourceTree = ""; }; + A4E2C6DD181888AE5515B62876C1C914 /* GMUGradient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGradient.h; path = src/Heatmap/GMUGradient.h; sourceTree = ""; }; + A4F6218899774AB9C7DF533383097E0D /* CapacitorBrowser.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorBrowser.debug.xcconfig; sourceTree = ""; }; + A503E951032D910BDEBA51D9BC697598 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + A5517CAAD5F7F8FCC4F53313164DB995 /* CAPPluginMethod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPluginMethod.h; path = Capacitor/Capacitor/CAPPluginMethod.h; sourceTree = ""; }; + A5838B0DAD9CEBF6E0AD1B8541AAF449 /* CDVPluginResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPluginResult.m; sourceTree = ""; }; + A60135599BA436B4A540E7E9B24C699D /* CapacitorBrowser */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorBrowser; path = CapacitorBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A683E83F9735DCC796068B2BF6DC42C1 /* JS.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JS.swift; path = Capacitor/Capacitor/JS.swift; sourceTree = ""; }; + A6ECB609E741A43C31976822AE7FB45B /* CAPBridgeProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeProtocol.swift; path = Capacitor/Capacitor/CAPBridgeProtocol.swift; sourceTree = ""; }; + A6FB731505901C14861A86D486F14A14 /* GMSPath+GeometryUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GMSPath+GeometryUtils.swift"; path = "src/GeometryUtils/GMSPath+GeometryUtils.swift"; sourceTree = ""; }; + A7AE88085C81CA615F8A3A2D73D76C69 /* GMUGroundOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGroundOverlay.h; path = src/Geometry/Model/GMUGroundOverlay.h; sourceTree = ""; }; + A7B8A95CA8C9BB4C4495B4D994192888 /* CapacitorBrowser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorBrowser-prefix.pch"; sourceTree = ""; }; + A892875D0B957E3AD1C9E5D7F944CFBB /* CDVPluginResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPluginResult.h; sourceTree = ""; }; + A917987B4C4A42F0E421A15E677922E9 /* CapacitorBrowser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorBrowser-dummy.m"; sourceTree = ""; }; + A96715C2CEC7BC49407C6A80C813798F /* CAPPluginMethod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPluginMethod.m; path = Capacitor/Capacitor/CAPPluginMethod.m; sourceTree = ""; }; + AB52A8B7BF88F4A3D3BCE5ECBE0471BA /* Pods-App-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-App-frameworks.sh"; sourceTree = ""; }; + AC38C75C5690352900A730323E7BE961 /* CDVPluginManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPluginManager.h; sourceTree = ""; }; + AD5ED62A6376DA42265D67BFD025E927 /* CapacitorHaptics.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorHaptics.debug.xcconfig; sourceTree = ""; }; + ADD30A4F3C4A25F160B5A5E2A1D41502 /* SplashScreen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SplashScreen.swift; path = ios/Plugin/SplashScreen.swift; sourceTree = ""; }; + AF848745CE31565FBF5C09B5B0E110FB /* GoogleMaps.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = GoogleMaps.bundle; path = "Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle"; sourceTree = ""; }; + B06F1A999E6941786776F252A40059D2 /* Network.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Network.swift; path = ios/Plugin/Network.swift; sourceTree = ""; }; + B117A449ABEDEEFE3D5026672C9D3E35 /* CapacitorGoogleMaps-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorGoogleMaps-prefix.pch"; sourceTree = ""; }; + B1EFB4D4A15B9650DB765ADBF7A266AD /* CDVPlugin+Resources.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CDVPlugin+Resources.m"; sourceTree = ""; }; + B3A3F21790AFC74F553A22503C2F2DC5 /* CapacitorKeyboard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorKeyboard.release.xcconfig; sourceTree = ""; }; + B3C3A01386A353818DDB3782295BD4C2 /* Capacitor-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Capacitor-Info.plist"; sourceTree = ""; }; + B5A3F6811C7F1A8CF72C97ADB548CC88 /* CordovaPlugins.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CordovaPlugins.release.xcconfig; sourceTree = ""; }; + B5C0CD7909491A30B5B7162CAB1BE3F9 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = ios/Plugin/Marker.swift; sourceTree = ""; }; + B5D5AEDA19D6250E080CB8DA18234D76 /* Pods-App-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-App-resources.sh"; sourceTree = ""; }; + B7203DB93ECE8DA96B20416CA2A6CD47 /* CapacitorKeyboard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorKeyboard.modulemap; sourceTree = ""; }; + B7265B233DD61FCD87003B8A577D2B1C /* CAPInstanceDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPInstanceDescriptor.h; path = Capacitor/Capacitor/CAPInstanceDescriptor.h; sourceTree = ""; }; + B799B748AB24218373C89013DDB301B4 /* GMUDefaultClusterRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUDefaultClusterRenderer.m; path = src/Clustering/View/GMUDefaultClusterRenderer.m; sourceTree = ""; }; + B8424D33E75A0595D378E56B2B024B45 /* NetworkPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NetworkPlugin.h; path = ios/Plugin/NetworkPlugin.h; sourceTree = ""; }; + B8BD028BE371DAC274BEA120C28FE783 /* CapacitorShare.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorShare.debug.xcconfig; sourceTree = ""; }; + B9959F744771013D1549B22D9FCB772C /* Pods-App-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-App-acknowledgements.plist"; sourceTree = ""; }; + B9F2D13149610BC58E216C69AB0ED9E9 /* Google-Maps-iOS-Utils-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Google-Maps-iOS-Utils-Info.plist"; sourceTree = ""; }; + BAC5FD9A5A3F8A24FBCEB560011B5BB9 /* GMULineString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMULineString.m; path = src/Geometry/Model/GMULineString.m; sourceTree = ""; }; + BB38AD326CD1596FEDD86A317ABA9EFD /* CapacitorGeolocation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorGeolocation-Info.plist"; sourceTree = ""; }; + BB6A12834C69D7EE67C51674AA8148D3 /* GMUKMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUKMLParser.h; path = src/Geometry/GMUKMLParser.h; sourceTree = ""; }; + BBC986E7757AC8C6D830AF2582B203ED /* GMUPolygon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUPolygon.m; path = src/Geometry/Model/GMUPolygon.m; sourceTree = ""; }; + BDCD17C273B05F57DB9D15EDD6135357 /* CapacitorDevice-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorDevice-umbrella.h"; sourceTree = ""; }; + BE19DD73D41E55F8024E9C8E87B27327 /* SplashScreenPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SplashScreenPlugin.swift; path = ios/Plugin/SplashScreenPlugin.swift; sourceTree = ""; }; + BFF123A16432E00BB7AD2BB0DB5CF5BC /* CAPPluginCall.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPluginCall.h; path = Capacitor/Capacitor/CAPPluginCall.h; sourceTree = ""; }; + C01B5344419CC54835AC5E6640C3FF73 /* CapacitorShare.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorShare.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + C0319F6494CC473020FCF4BA85351E3F /* Circle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Circle.swift; path = ios/Plugin/Circle.swift; sourceTree = ""; }; + C1CFDB4D9A36BB0F8AE9807AEACB71DE /* HapticsPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HapticsPlugin.m; path = ios/Plugin/HapticsPlugin.m; sourceTree = ""; }; + C252182ADC3F8E56450E8A513438DBB4 /* WKWebView+Capacitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WKWebView+Capacitor.h"; path = "Capacitor/Capacitor/WKWebView+Capacitor.h"; sourceTree = ""; }; + C26B06BCCF194FD193792E94573B5B87 /* CapacitorStatusBar-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorStatusBar-umbrella.h"; sourceTree = ""; }; + C29BFF94B66894147D8BB99979D251F1 /* PluginConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PluginConfig.swift; path = Capacitor/Capacitor/PluginConfig.swift; sourceTree = ""; }; + C2A135C9ED20386519D84413CF4496D5 /* CordovaPlugins-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CordovaPlugins-Info.plist"; sourceTree = ""; }; + C36F840F5612C90D52B814DE480E9D3C /* CAPFile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPFile.swift; path = Capacitor/Capacitor/CAPFile.swift; sourceTree = ""; }; + C38A8AD8FC5441BD1C2DF9FBCE84EEF4 /* CapacitorGoogleMaps */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorGoogleMaps; path = CapacitorGoogleMaps.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C3A42C467A3DC7421C09C04E49C19085 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + C3E469253914052F34F463C0620162CE /* SplashScreenSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SplashScreenSettings.swift; path = ios/Plugin/SplashScreenSettings.swift; sourceTree = ""; }; + C3E6F4D703ED83D317160A70CCFE1B16 /* GMUPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUPoint.h; path = src/Geometry/Model/GMUPoint.h; sourceTree = ""; }; + C4080614FB2729D6B5358B723C2F7519 /* Pods-App-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-App-dummy.m"; sourceTree = ""; }; + C49B9D983DC25212143BC8567C1591F3 /* CDVScreenOrientationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVScreenOrientationDelegate.h; sourceTree = ""; }; + C551AB59EAEB18549211D5CC5881474D /* Keyboard.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Keyboard.h; path = ios/Plugin/Keyboard.h; sourceTree = ""; }; + C65A446435A6DF1C0312A03372D16172 /* GoogleMaps-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "GoogleMaps-xcframeworks.sh"; sourceTree = ""; }; + C79E12DFF4CE96FD084B864B8F179342 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + C7A219DC9CBB374A1A982EE2F871DAA9 /* NetworkPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkPlugin.swift; path = ios/Plugin/NetworkPlugin.swift; sourceTree = ""; }; + C9622DC85FF289C2715F9433D3B9EF36 /* CapacitorGeolocation.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorGeolocation.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + CA5ECA9D2529FD4D711B2E496CC81238 /* GMUGridBasedClusterAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGridBasedClusterAlgorithm.h; path = src/Clustering/Algo/GMUGridBasedClusterAlgorithm.h; sourceTree = ""; }; + CA6943A0D5FE1915F5F483B64D43ACEF /* Capacitor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Capacitor-dummy.m"; sourceTree = ""; }; + CBCBD0CFBA2ABB89CC786EA4D5493A78 /* DocLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DocLinks.swift; path = Capacitor/Capacitor/DocLinks.swift; sourceTree = ""; }; + CD2BF8B3E66531EF9A504D5314539F9C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + CED5A956297C23418F576A09836DAB44 /* CapacitorCordova.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CapacitorCordova.h; path = CapacitorCordova/CapacitorCordova/CapacitorCordova.h; sourceTree = ""; }; + D055C2F34A76E1987AFF17751A90D512 /* CapacitorCordova-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorCordova-Info.plist"; sourceTree = ""; }; + D1D2D06EA3BC385DAF74D942583A6BAD /* CapacitorShare-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorShare-umbrella.h"; sourceTree = ""; }; + D1DBB07504DB9E35792933311691E212 /* CapacitorNetwork */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorNetwork; path = CapacitorNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D266001734470B7E4A2141905934B755 /* CapacitorHaptics.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorHaptics.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + D324CD3FEDF2F29EDAD0E1730C2181C0 /* Math.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Math.swift; path = src/GeometryUtils/Math.swift; sourceTree = ""; }; + D3DD6C401B16A05339B639218181DC8E /* WKWebView+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKWebView+Capacitor.swift"; path = "Capacitor/Capacitor/WKWebView+Capacitor.swift"; sourceTree = ""; }; + D3F259339E6D26CDEE4EE1BEEAEC1D8D /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + D4DB2D9640E25E9FC1A7A51C8D6C5DEE /* AppDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + D50F147468B9BD9B4C8FC3867960BEC9 /* JSExport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSExport.swift; path = Capacitor/Capacitor/JSExport.swift; sourceTree = ""; }; + D5507329FAE281803DFE78780FCCD13A /* CapacitorSplashScreen-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorSplashScreen-dummy.m"; sourceTree = ""; }; + D593FE74197A10C945B35112B15109F7 /* GMUPolygon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUPolygon.h; path = src/Geometry/Model/GMUPolygon.h; sourceTree = ""; }; + D7991AC7C52F06BB678CBD6F848F4D3B /* CAPBridgedPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPBridgedPlugin.h; path = Capacitor/Capacitor/CAPBridgedPlugin.h; sourceTree = ""; }; + D7DD25806AA4F6B4FCB5315701CE34EA /* GMUStaticCluster.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUStaticCluster.m; path = src/Clustering/GMUStaticCluster.m; sourceTree = ""; }; + D7F5E1187B449C01B41BD189F356F5BA /* GMUWrappingDictionaryKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUWrappingDictionaryKey.m; path = src/Clustering/Algo/GMUWrappingDictionaryKey.m; sourceTree = ""; }; + D87372490D4D02E98E16D8E25A0265C7 /* CapacitorGoogleMaps-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorGoogleMaps-Info.plist"; sourceTree = ""; }; + D90221EB1CF0D555900E44C15219D0CC /* WebViewAssetHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebViewAssetHandler.swift; path = Capacitor/Capacitor/WebViewAssetHandler.swift; sourceTree = ""; }; + DBEDE483841D0475D5066B14AEFEEC38 /* SplashScreenPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SplashScreenPlugin.m; path = ios/Plugin/SplashScreenPlugin.m; sourceTree = ""; }; + DC3A976E99F31DF234C2FB4F50C9E1F3 /* CAPPluginCall.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPluginCall.m; path = Capacitor/Capacitor/CAPPluginCall.m; sourceTree = ""; }; + DC4267E2A3BD8939524B6D17A5EA2F93 /* CDVAvailability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVAvailability.h; sourceTree = ""; }; + DD3A1B977B1A6752D055D0D04C1C100C /* CapacitorHaptics-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorHaptics-umbrella.h"; sourceTree = ""; }; + DDA36B9DCF4AB50B43037242272776CF /* Polygon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Polygon.swift; path = ios/Plugin/Polygon.swift; sourceTree = ""; }; + DE779331F80083C36D940683E8AB48C2 /* GMUDefaultClusterIconGenerator+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GMUDefaultClusterIconGenerator+Testing.h"; path = "src/Clustering/View/GMUDefaultClusterIconGenerator+Testing.h"; sourceTree = ""; }; + DF7303F391A2B538FDCFF07ADDD6CF3F /* CapacitorCamera-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorCamera-dummy.m"; sourceTree = ""; }; + DF73E12370712204EE3F5839F72FCD46 /* Pods-App-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-App-Info.plist"; sourceTree = ""; }; + E090858FBF292E388C43E8F340934F6E /* CapacitorCamera.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorCamera.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + E1415D240A4547F79B33EE242594AE28 /* GMUHeatmapTileLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUHeatmapTileLayer.h; path = src/Heatmap/GMUHeatmapTileLayer.h; sourceTree = ""; }; + E28E7AC885FE59153BDC68E4210F01D1 /* GeolocationPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GeolocationPlugin.m; path = ios/Plugin/GeolocationPlugin.m; sourceTree = ""; }; + E29FF95B9419DF9DDB736E05D7730225 /* CDVConfigParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVConfigParser.m; sourceTree = ""; }; + E2E39542828F20D42B2F1F26422E261B /* CapacitorShare */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorShare; path = CapacitorShare.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E3CAC3F6ED2891853EC51A169194CE1F /* CDVPluginManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPluginManager.m; sourceTree = ""; }; + E413E99B74C82C9744515D66D0AF7166 /* GMUPlacemark.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUPlacemark.h; path = src/Geometry/Model/GMUPlacemark.h; sourceTree = ""; }; + E4803E19B5777C450F0F4D729C94EF25 /* Google-Maps-iOS-Utils.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Google-Maps-iOS-Utils.debug.xcconfig"; sourceTree = ""; }; + E4DB139D9DA434753BBA108F6C6C56BC /* BrowserPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BrowserPlugin.swift; path = ios/Plugin/BrowserPlugin.swift; sourceTree = ""; }; + E5AB6A4DF6599553062EDCC754243B00 /* GMUGradient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGradient.m; path = src/Heatmap/GMUGradient.m; sourceTree = ""; }; + E616299214E185751FDC0E0B2321C26A /* CapacitorCamera-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorCamera-prefix.pch"; sourceTree = ""; }; + E69FBA4E823D5BF72D744F785BE1D177 /* GMUStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUStyle.h; path = src/Geometry/Model/GMUStyle.h; sourceTree = ""; }; + E8153483BE3862ACC7C942AF3C530644 /* GMUDefaultClusterIconGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUDefaultClusterIconGenerator.m; path = src/Clustering/View/GMUDefaultClusterIconGenerator.m; sourceTree = ""; }; + EB0AE78EBE032234D591670CC635F8D3 /* CapacitorHttp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorHttp.swift; sourceTree = ""; }; + EBA0FD52E17192CD17AA92CD77FEFEC8 /* CapacitorGoogleMaps.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorGoogleMaps.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + ECB9D96D52D58541178F71211AC380C4 /* GMUGeometryRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUGeometryRenderer.h; path = src/Geometry/GMUGeometryRenderer.h; sourceTree = ""; }; + ED56CD96752E144CEB127ED3479A6FCA /* CapacitorKeyboard-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorKeyboard-prefix.pch"; sourceTree = ""; }; + EE3F73A3EBA82A9B99BA27C6CDA2CEF1 /* GoogleMaps.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = GoogleMaps.bundle; path = "Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle"; sourceTree = ""; }; + EE71E6A400B8058DD9F99E6FBD17072A /* CapacitorShare-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorShare-dummy.m"; sourceTree = ""; }; + EFFA1E993D7696FB5C78DEE582B6EA0A /* JSTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSTypes.swift; path = Capacitor/Capacitor/JSTypes.swift; sourceTree = ""; }; + F0191BC2A4F137F8DAE5B14F2EDEFF04 /* GoogleMaps.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleMaps.debug.xcconfig; sourceTree = ""; }; + F0D8148588B697CC38576BF9505B4D76 /* CAPPluginCall.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPPluginCall.swift; path = Capacitor/Capacitor/CAPPluginCall.swift; sourceTree = ""; }; + F1870E3B7D290C132E57581392839576 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + F2376A97821729B9C7D81DB546FE8553 /* CapacitorDevice.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorDevice.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + F3B3413E32A2C6F376FE0DB6585D6444 /* UIStatusBarManager+CAPHandleTapAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStatusBarManager+CAPHandleTapAction.m"; path = "Capacitor/Capacitor/UIStatusBarManager+CAPHandleTapAction.m"; sourceTree = ""; }; + F3BA02CE2F72B36F22BBD3F914CBFDBD /* HttpRequestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HttpRequestHandler.swift; sourceTree = ""; }; + F5514F3F025BE9A283A2AE3808837DC1 /* CapacitorDevice.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorDevice.debug.xcconfig; sourceTree = ""; }; + F683CF181060A0FC6E64B3E9FB4FA615 /* CDVInvokedUrlCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVInvokedUrlCommand.h; sourceTree = ""; }; + F6EE75712C7554BF0AA02716989A3495 /* CordovaPlugins-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CordovaPlugins-dummy.m"; sourceTree = ""; }; + F83C3C39290D8FF45A0D193927909E8C /* CapacitorCamera.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCamera.debug.xcconfig; sourceTree = ""; }; + F8CC593EFBF4C59813DF1603CEED4DEF /* CDVInvokedUrlCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVInvokedUrlCommand.m; sourceTree = ""; }; + F912ED6A307900B31CC286DFF4AE8CA5 /* CapacitorBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CapacitorBridge.swift; path = Capacitor/Capacitor/CapacitorBridge.swift; sourceTree = ""; }; + F93359CC63E6C1C6B05C5FD2BA298ECD /* CapacitorSplashScreen-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorSplashScreen-umbrella.h"; sourceTree = ""; }; + F9893662CFD2A06E7087188387F1D144 /* NSDictionary+CordovaPreferences.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+CordovaPreferences.m"; sourceTree = ""; }; + F9F6A949BC3827E6CC60552C6BB92558 /* CapacitorGeolocation.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorGeolocation.release.xcconfig; sourceTree = ""; }; + FA7E341CDA369EE7460E41BA3C2B018B /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + FB23BBC4959F98F15D014D81F938A891 /* CapacitorGeolocation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorGeolocation.modulemap; sourceTree = ""; }; + FB7753DA68E0526EACE4D87EA628F4E0 /* CapacitorStatusBar.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorStatusBar.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + FBD6098326297CB8C21EAE839DD63113 /* GMUWeightedLatLng.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GMUWeightedLatLng.h; path = src/Heatmap/GMUWeightedLatLng.h; sourceTree = ""; }; + FC4B4D674139DD15C9209D55712246AB /* GMUGeometryCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGeometryCollection.m; path = src/Geometry/Model/GMUGeometryCollection.m; sourceTree = ""; }; + FD01F7BC12B8E3DE42A43AC984E89E02 /* Google-Maps-iOS-Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Google-Maps-iOS-Utils-dummy.m"; sourceTree = ""; }; + FD1C9312D4BAFF3A7CC8E8DACA3435C8 /* SharePlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SharePlugin.h; path = ios/Plugin/SharePlugin.h; sourceTree = ""; }; + FD4F4CA5F3D976FA866E379600C7E271 /* CAPBridgeViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeViewController.swift; path = Capacitor/Capacitor/CAPBridgeViewController.swift; sourceTree = ""; }; + FDCA4C83BC9258C58741BF3D2816C9C2 /* GMUGeometryRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GMUGeometryRenderer.m; path = src/Geometry/GMUGeometryRenderer.m; sourceTree = ""; }; + FE796D27BB599ADBAADCE300C59CDF00 /* Pods-App-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-App-umbrella.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00F8157BBDFF2F3D48CD04EE63B16DBC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 81471507CA97E7DD685450D21202DC83 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0BFB73F34FDC31CBDC847A985E6AB460 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D8180F85D33A40D85D8787C893939F3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 11D5E82E7EE6FFCF79567DBDBF14036E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CC5E01D87AB4D33E2CAEE531BCE2EBC4 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2396B59BEB64175653DAC13785B2841A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F2024F1B8898DA71419830808082B4AB /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4186D1CCD66B13BDFB76435A79D9C37E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D7A5EC11250D2DA639621F6933135210 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 533AD974FCD5BF948A26A0D23500E63C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E0BFB25E238575912415C4D71D5AEB45 /* Foundation.framework in Frameworks */, + EE0A6B15ADAD6A942D4EF30A47CA7104 /* WebKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5660EEE242726A078B9C3743CAEF904D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C8B84350A357282BEF3B16E00AC2B7EE /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 624208343F907A9B1D651FE638148D22 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 987E63F89AE6816CFDD5679EDBD6029E /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6ECF799787754FFEC8635946A3A5CA57 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2867677C299770D081C6341E36CBF44A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 722FE78FF358F7AAE37A384BB000F1B6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FCB11F77BCF49ECF108123D2985B7D34 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7A91BFBF36961A4A67F7BB7FF986D3A3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 740239870B89691EA3B5DA6C1A0B2447 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7D05977341DAE84AF90A4DBD332464B3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BEBC401534BA2E483ADE30E52982361 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AD9BBAB1DF84DC65D286432842C0B75E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 015BFD2102D6364AF859D463153D12E1 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C78D95F44D3A18666F1088A2208B3135 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E39994922C483D9F08421ABBD9E68E5 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C874AE316AFFD2C7E371BB27879D0A82 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 09D53820E3A08086F99729853944D8B7 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DA6AD4BB0D9695EF69E8CD8E1230C2E5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6314BE7FE93A4401179D307212CDB572 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 030843E527B6F9C68287BBFA7F50D168 /* Base */ = { + isa = PBXGroup; + children = ( + A04B8BF5DF180FCA62D19D53FFC28506 /* Frameworks */, + ); + name = Base; + sourceTree = ""; + }; + 10983AF95A100AA78BB275DDF45F032A /* CapacitorGoogleMaps */ = { + isa = PBXGroup; + children = ( + 15CFE4527BEB86AD5D5E591DCCEC0334 /* CapacitorGoogleMapsPlugin.h */, + 2B7DF4FD2147638416E3BDBDD66EE5A2 /* CapacitorGoogleMapsPlugin.m */, + 629B5C01A4FFA6B34F6D78B3D18687C6 /* CapacitorGoogleMapsPlugin.swift */, + C0319F6494CC473020FCF4BA85351E3F /* Circle.swift */, + 7061838198E5AA643D05FC2E751F4717 /* GoogleMapCameraConfig.swift */, + 576A0282110BD65AD8EE021C0AA1BF5F /* GoogleMapConfig.swift */, + A46BAEE2FB0FC48966292071F59091A4 /* GoogleMapErrors.swift */, + 0E1BD7CB284D348E6B89F0ACE2D24D58 /* GoogleMapPadding.swift */, + 89537FD66A5327F8FD6C8662C4B99BB1 /* Map.swift */, + B5C0CD7909491A30B5B7162CAB1BE3F9 /* Marker.swift */, + DDA36B9DCF4AB50B43037242272776CF /* Polygon.swift */, + 701B27319A546FCA864708F26BB246D2 /* Polyline.swift */, + C0AAD921B81158F4AED4FEED95358F62 /* Pod */, + D4F9FB68A72E6278DC32E724FB68416C /* Support Files */, + ); + name = CapacitorGoogleMaps; + path = "../../../node_modules/@capacitor/google-maps"; + sourceTree = ""; + }; + 147DC5111A6D36C257C0BFA12F0F84FB /* Pod */ = { + isa = PBXGroup; + children = ( + E090858FBF292E388C43E8F340934F6E /* CapacitorCamera.podspec */, + 5A65E7B8715855D12D529FFD6A0BAC46 /* LICENSE */, + 4902D237EECF3B7F46A455E342DFD129 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { + isa = PBXGroup; + children = ( + D4666CE1A84ECF5C342FAD3C508C69DE /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 16A5275F63A2717F61DB448B812B0A95 /* Heatmap */ = { + isa = PBXGroup; + children = ( + A4E2C6DD181888AE5515B62876C1C914 /* GMUGradient.h */, + E5AB6A4DF6599553062EDCC754243B00 /* GMUGradient.m */, + E1415D240A4547F79B33EE242594AE28 /* GMUHeatmapTileLayer.h */, + 7A307E357FDE1C5E966E2FFB5CF8F3C4 /* GMUHeatmapTileLayer.m */, + 78BF23DC14865786557F50DC32235AD9 /* GMUHeatmapTileLayer+Testing.h */, + FBD6098326297CB8C21EAE839DD63113 /* GMUWeightedLatLng.h */, + 84C73EFF9BA95B361FFFE6514A0E0BC2 /* GMUWeightedLatLng.m */, + 55978B2987E6492C2C29B7492932ACA7 /* HeatMapInterpolationPoints.swift */, + ); + name = Heatmap; + sourceTree = ""; + }; + 190A8FEDF2B9A72E33E827B68A09324E /* Pods-App */ = { + isa = PBXGroup; + children = ( + 29EB30DAFAF5BF56516861F092035100 /* Pods-App.modulemap */, + 8FD7DCDF9FDA4D72EC3E44FF5B8DAF88 /* Pods-App-acknowledgements.markdown */, + B9959F744771013D1549B22D9FCB772C /* Pods-App-acknowledgements.plist */, + C4080614FB2729D6B5358B723C2F7519 /* Pods-App-dummy.m */, + AB52A8B7BF88F4A3D3BCE5ECBE0471BA /* Pods-App-frameworks.sh */, + DF73E12370712204EE3F5839F72FCD46 /* Pods-App-Info.plist */, + B5D5AEDA19D6250E080CB8DA18234D76 /* Pods-App-resources.sh */, + FE796D27BB599ADBAADCE300C59CDF00 /* Pods-App-umbrella.h */, + 2D57C5D51C30D39B525B8AC846A00DD0 /* Pods-App.debug.xcconfig */, + 0C153CE484A67EFF2491D31D200C47F6 /* Pods-App.release.xcconfig */, + ); + name = "Pods-App"; + path = "Target Support Files/Pods-App"; + sourceTree = ""; + }; + 1BE6076340A3792DA58CD99E6623EC35 /* CapacitorStatusBar */ = { + isa = PBXGroup; + children = ( + 528DB4C3F4FEBED3C10DC2081841CEEB /* StatusBarPlugin.h */, + 75094E99B56AE4BEBE4B0C76272B35E5 /* StatusBarPlugin.m */, + 9086E5228F2589CADE45C3F7DCA6C184 /* StatusBarPlugin.swift */, + FC6CC71F680D26446AB903A096601458 /* Pod */, + EC238D4C638D708ED030184B5B9FB615 /* Support Files */, + ); + name = CapacitorStatusBar; + path = "../../../node_modules/@capacitor/status-bar"; + sourceTree = ""; + }; + 21D78A4AE62636A1F39717A4BF91AF84 /* Pod */ = { + isa = PBXGroup; + children = ( + C9622DC85FF289C2715F9433D3B9EF36 /* CapacitorGeolocation.podspec */, + 54A2F22E001B70B2C97CE1F6AF4F202E /* LICENSE */, + 17E9DF1E732F11C5E3E715ECDAC6CAE7 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + 228BCC2C7E5E30878F05102C996E6595 /* Pod */ = { + isa = PBXGroup; + children = ( + 7D9233393A943F5E6DD345CADB12081A /* CapacitorBrowser.podspec */, + 6055C567B65A552C0355C3551506FD6C /* LICENSE */, + 996BF05A924C7F75744E369215C94AE6 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + 2574DA08772827CD8F662174BC551D68 /* Support Files */ = { + isa = PBXGroup; + children = ( + 5F4E483ABAB2BD3CFA69EA1F29127807 /* CapacitorDevice.modulemap */, + A215FCD1E900C227751C7DEA20055980 /* CapacitorDevice-dummy.m */, + 52C83A91B71229E5F5FEDCFFC2E95F8F /* CapacitorDevice-Info.plist */, + 66E6A765D0CAB829ACE60FA68F61A094 /* CapacitorDevice-prefix.pch */, + BDCD17C273B05F57DB9D15EDD6135357 /* CapacitorDevice-umbrella.h */, + F5514F3F025BE9A283A2AE3808837DC1 /* CapacitorDevice.debug.xcconfig */, + 1A58D85D43E52C202A79D66B8152A90C /* CapacitorDevice.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorDevice"; + sourceTree = ""; + }; + 2A0CBF0E5F44AB57BDE22AD7E28A9F87 /* Support Files */ = { + isa = PBXGroup; + children = ( + C65A446435A6DF1C0312A03372D16172 /* GoogleMaps-xcframeworks.sh */, + F0191BC2A4F137F8DAE5B14F2EDEFF04 /* GoogleMaps.debug.xcconfig */, + 211EFDDAD4E27E8543BE96E307D87912 /* GoogleMaps.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/GoogleMaps"; + sourceTree = ""; + }; + 2A9CC825154AC8D5D205328519CB4866 /* Support Files */ = { + isa = PBXGroup; + children = ( + 7EA711D8361724A13828BB7095C8D3E1 /* Capacitor.modulemap */, + CA6943A0D5FE1915F5F483B64D43ACEF /* Capacitor-dummy.m */, + B3C3A01386A353818DDB3782295BD4C2 /* Capacitor-Info.plist */, + 83C625F24F0C1218CA03635CC10D9EB5 /* Capacitor-prefix.pch */, + 7E4C26A509A4D9217810697566ED9FCD /* Capacitor.debug.xcconfig */, + 4BB9D1B71302E4C69FB33C482D97FC88 /* Capacitor.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/Capacitor"; + sourceTree = ""; + }; + 2AE710A7E43437753EFA88E20AE147BF /* Pod */ = { + isa = PBXGroup; + children = ( + 69B0A016C0E72F37801D358AC8C34DB5 /* Capacitor.modulemap */, + 507B49777EA6A9ACB74EF4B76F9C9F1B /* Capacitor.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + 2BA96EE596B51E0B6A2F7CD0253A7330 /* Public */ = { + isa = PBXGroup; + children = ( + D4DB2D9640E25E9FC1A7A51C8D6C5DEE /* AppDelegate.h */, + 8559A029D40994BA3A549B5A355F5308 /* AppDelegate.m */, + 7D20EAE3311581B94AC71E3E49FDC75F /* CDV.h */, + DC4267E2A3BD8939524B6D17A5EA2F93 /* CDVAvailability.h */, + 71DDA40914F2339F7BD8518B2DC4570E /* CDVCommandDelegate.h */, + 30FA8D172749E662EF778A1D4738BA49 /* CDVCommandDelegateImpl.h */, + 1171815F6BCF699E0399D1D3615B1279 /* CDVCommandDelegateImpl.m */, + 64447D1564D0F003F4FD0F295288C67A /* CDVConfigParser.h */, + E29FF95B9419DF9DDB736E05D7730225 /* CDVConfigParser.m */, + F683CF181060A0FC6E64B3E9FB4FA615 /* CDVInvokedUrlCommand.h */, + F8CC593EFBF4C59813DF1603CEED4DEF /* CDVInvokedUrlCommand.m */, + 4378CD4D104E15E4DE374F7AE2E1F941 /* CDVPlugin.h */, + 1160B8F042C3F9D0413B902ABE088C51 /* CDVPlugin.m */, + 6F28C085E887396C58FD3FC1456C6982 /* CDVPlugin+Resources.h */, + B1EFB4D4A15B9650DB765ADBF7A266AD /* CDVPlugin+Resources.m */, + AC38C75C5690352900A730323E7BE961 /* CDVPluginManager.h */, + E3CAC3F6ED2891853EC51A169194CE1F /* CDVPluginManager.m */, + A892875D0B957E3AD1C9E5D7F944CFBB /* CDVPluginResult.h */, + A5838B0DAD9CEBF6E0AD1B8541AAF449 /* CDVPluginResult.m */, + C49B9D983DC25212143BC8567C1591F3 /* CDVScreenOrientationDelegate.h */, + 27288F36CEAA62E8295EEA60AF6C7C9B /* CDVURLProtocol.h */, + 8FB47E0FB967E1F02BBE35EA22D5D16A /* CDVURLProtocol.m */, + 8D10F2F9D4766573F21421B4F5DEFDEA /* CDVViewController.h */, + 3D76AA87E402DFA06409861126F3D92C /* CDVViewController.m */, + 1190666C68BF7F4BAB6FBF019EDCA7B5 /* NSDictionary+CordovaPreferences.h */, + F9893662CFD2A06E7087188387F1D144 /* NSDictionary+CordovaPreferences.m */, + ); + name = Public; + path = Public; + sourceTree = ""; + }; + 2EB0D51203ECC8DA4D24C02BB7CB53B7 /* Support Files */ = { + isa = PBXGroup; + children = ( + 76ACE47CFED9FAB18CECD159FE333EE8 /* CapacitorBrowser.modulemap */, + A917987B4C4A42F0E421A15E677922E9 /* CapacitorBrowser-dummy.m */, + 6EBC1C9C154B0BFF3B7FEDD8566F4161 /* CapacitorBrowser-Info.plist */, + A7B8A95CA8C9BB4C4495B4D994192888 /* CapacitorBrowser-prefix.pch */, + 982F08EFD1430A2552B0ED4BE9B0B0A4 /* CapacitorBrowser-umbrella.h */, + A4F6218899774AB9C7DF533383097E0D /* CapacitorBrowser.debug.xcconfig */, + 854C770043773090F19C80F080A39B6E /* CapacitorBrowser.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorBrowser"; + sourceTree = ""; + }; + 2FE73529C3FCB5826BDB2D0E1E107202 /* GeometryUtils */ = { + isa = PBXGroup; + children = ( + 15626776627C179472986457664301EC /* CatesianPoint.swift */, + 3C455097FFBABB024C54A6E48E5703C0 /* CLLocationCoordinate2D+GeometryUtils.swift */, + A6FB731505901C14861A86D486F14A14 /* GMSPath+GeometryUtils.swift */, + 78B1D68479127328417E9BC82ECC3AFC /* GMSPolygon+GeometryUtils.swift */, + 0B294EDA71DCBB2E729DC983289AA249 /* GMSPolyline+GeometryUtils.swift */, + 707866C048A1531256230F6B517A0DAD /* LatLngRadians.swift */, + 935EEB79B315A38B977DF84BF8687097 /* MapPoint.swift */, + D324CD3FEDF2F29EDAD0E1730C2181C0 /* Math.swift */, + ); + name = GeometryUtils; + sourceTree = ""; + }; + 304612615F303FBE6EF0193993319C17 /* Pod */ = { + isa = PBXGroup; + children = ( + 826A274CF4281D936D71EA4377CA0A0B /* CordovaPlugins.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + 30490398C6A37DDFE0ED0441CC3163C8 /* Support Files */ = { + isa = PBXGroup; + children = ( + FB23BBC4959F98F15D014D81F938A891 /* CapacitorGeolocation.modulemap */, + 094ED69D5782084C0CD8631A0DBB5BBD /* CapacitorGeolocation-dummy.m */, + BB38AD326CD1596FEDD86A317ABA9EFD /* CapacitorGeolocation-Info.plist */, + 8F1EA75D00F7041F89CE370128D6A66E /* CapacitorGeolocation-prefix.pch */, + 2CB925F62DBA680F4FE21464EF0EFCD5 /* CapacitorGeolocation-umbrella.h */, + 08225397E55AEF41187194826AA3425E /* CapacitorGeolocation.debug.xcconfig */, + F9F6A949BC3827E6CC60552C6BB92558 /* CapacitorGeolocation.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorGeolocation"; + sourceTree = ""; + }; + 393814722E1CCC829BA6F747093495DB /* Support Files */ = { + isa = PBXGroup; + children = ( + 3EA9E28B74E322EA0006C957054009A9 /* Google-Maps-iOS-Utils.modulemap */, + FD01F7BC12B8E3DE42A43AC984E89E02 /* Google-Maps-iOS-Utils-dummy.m */, + B9F2D13149610BC58E216C69AB0ED9E9 /* Google-Maps-iOS-Utils-Info.plist */, + 61EA3F25D4D8EEF7AB1533FFD9C4B183 /* Google-Maps-iOS-Utils-prefix.pch */, + 2B3DDBE52524F8FA8A9FB85276FBFA2F /* Google-Maps-iOS-Utils-umbrella.h */, + E4803E19B5777C450F0F4D729C94EF25 /* Google-Maps-iOS-Utils.debug.xcconfig */, + 2F4B8C0D5BB2F86DEFB151C1AC85BC91 /* Google-Maps-iOS-Utils.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Google-Maps-iOS-Utils"; + sourceTree = ""; + }; + 395A8D647C412D3F6F1A019FF6BB274B /* Support Files */ = { + isa = PBXGroup; + children = ( + 6383FED04DDB4483A80D1DDD48D06D95 /* CapacitorShare.modulemap */, + EE71E6A400B8058DD9F99E6FBD17072A /* CapacitorShare-dummy.m */, + 57E2F5C19C8FD063DEFBDA5B795AC11E /* CapacitorShare-Info.plist */, + 008CCFBCC52BEBF17ED8DEAAFD2D7A81 /* CapacitorShare-prefix.pch */, + D1D2D06EA3BC385DAF74D942583A6BAD /* CapacitorShare-umbrella.h */, + B8BD028BE371DAC274BEA120C28FE783 /* CapacitorShare.debug.xcconfig */, + 2D7B63343CABE9D2A5727CFEA05D5E92 /* CapacitorShare.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorShare"; + sourceTree = ""; + }; + 3C6D94108C1C0E8E84B54C7267E318BA /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 190A8FEDF2B9A72E33E827B68A09324E /* Pods-App */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 3EC90C8DD696C099435EF7DE8F8AE03B /* Support Files */ = { + isa = PBXGroup; + children = ( + 786739ECD89CA669CF5DD5525365B775 /* CapacitorHaptics.modulemap */, + 5B7AB502493EC2713E8D683BEA1D5D67 /* CapacitorHaptics-dummy.m */, + 0B3D11C5DC20876CCF24CB621F0E994E /* CapacitorHaptics-Info.plist */, + 0533954F7F1661CE1B75A803B95CDA54 /* CapacitorHaptics-prefix.pch */, + DD3A1B977B1A6752D055D0D04C1C100C /* CapacitorHaptics-umbrella.h */, + AD5ED62A6376DA42265D67BFD025E927 /* CapacitorHaptics.debug.xcconfig */, + 4253EC398439557396E16BC146796793 /* CapacitorHaptics.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorHaptics"; + sourceTree = ""; + }; + 46C7F7CBAE808C3E366F453DACD6E766 /* Google-Maps-iOS-Utils */ = { + isa = PBXGroup; + children = ( + 4C8FAB1AC517A55276685F4003E01245 /* Clustering */, + 701996B0C8EAEE558919B42C5C2F1ABC /* Geometry */, + 2FE73529C3FCB5826BDB2D0E1E107202 /* GeometryUtils */, + 16A5275F63A2717F61DB448B812B0A95 /* Heatmap */, + D2FF8EB75AA8807372034CDFE0EDDDAA /* QuadTree */, + 393814722E1CCC829BA6F747093495DB /* Support Files */, + ); + name = "Google-Maps-iOS-Utils"; + path = "Google-Maps-iOS-Utils"; + sourceTree = ""; + }; + 46F71D3C533C2606D4136B66296A2377 /* CapacitorCamera */ = { + isa = PBXGroup; + children = ( + 332DA844D92BCA5E2E66DBD686E5BC16 /* CameraExtensions.swift */, + 1036761F1F6277EDC35BCEA3B260ACB6 /* CameraPlugin.h */, + 40B997D573B9287A627D5B16E8FEDA5A /* CameraPlugin.m */, + 9BB8779F949D5F7B32072C1EEFFFEAF9 /* CameraPlugin.swift */, + 43C1F84D627A9A40A7F0155108B2DD75 /* CameraTypes.swift */, + 62C51465176701858B846F4D580F3E48 /* ImageSaver.swift */, + 147DC5111A6D36C257C0BFA12F0F84FB /* Pod */, + D2058A9ED316EAF409EC16F622F19034 /* Support Files */, + ); + name = CapacitorCamera; + path = "../../../node_modules/@capacitor/camera"; + sourceTree = ""; + }; + 4A401B3D71F12DCA500D0C48D98B2458 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 18A1E3F32EF882E5AC26B1722AFEF862 /* GoogleMaps.xcframework */, + 3E746FDF3C50F438262218FA15AAC2CF /* GoogleMapsCore.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 4C8FAB1AC517A55276685F4003E01245 /* Clustering */ = { + isa = PBXGroup; + children = ( + 110322AE52802435CF76623D5AC54465 /* GMSMarker+GMUClusteritem.h */, + 987F69D9BCD0655BDFFCDD4766EF035E /* GMSMarker+GMUClusteritem.m */, + 4D3409FE076E9FFA23BB554CC9B0F84A /* GMUCluster.h */, + 39EEDD900294E0C1F760B200762131B6 /* GMUClusterAlgorithm.h */, + 8CD6076414787CF0E5E20AD3A536ACED /* GMUClusterIconGenerator.h */, + A1D4096941C0E4B2AFAF48F7423B3609 /* GMUClusterItem.h */, + 030B5C03593840D4ACE93E63EC62FBC3 /* GMUClusterManager.h */, + 1483FCB970C7E4E42A334DCA5D98786E /* GMUClusterManager.m */, + 4080BB5AF95D2204F670E4769A9525B3 /* GMUClusterManager+Testing.h */, + 5895979931C7D87790353BB3661FB54B /* GMUClusterRenderer.h */, + 02E6B1A0F945F999B05DAB41786E73F6 /* GMUDefaultClusterIconGenerator.h */, + E8153483BE3862ACC7C942AF3C530644 /* GMUDefaultClusterIconGenerator.m */, + DE779331F80083C36D940683E8AB48C2 /* GMUDefaultClusterIconGenerator+Testing.h */, + 811BCC1F72CFA5F86B1CCFB663E03B58 /* GMUDefaultClusterRenderer.h */, + B799B748AB24218373C89013DDB301B4 /* GMUDefaultClusterRenderer.m */, + 2B792AD3A20BB6EB1A0B3DA5D297264C /* GMUDefaultClusterRenderer+Testing.h */, + CA5ECA9D2529FD4D711B2E496CC81238 /* GMUGridBasedClusterAlgorithm.h */, + 28E1AD858527E297FF4B729897752EF0 /* GMUGridBasedClusterAlgorithm.m */, + 89F7148E65A836AC4C416F94719E7B84 /* GMUNonHierarchicalDistanceBasedAlgorithm.h */, + 62B6BF20395E7867E484E089BDD7C471 /* GMUNonHierarchicalDistanceBasedAlgorithm.m */, + 4C0DB19FF0437E6A2A38444511FACACE /* GMUSimpleClusterAlgorithm.h */, + 5778F4ED154F0E6FDFB3E6133C72608E /* GMUSimpleClusterAlgorithm.m */, + 3D12729A02B5DBB1196DB1627F2C9820 /* GMUStaticCluster.h */, + D7DD25806AA4F6B4FCB5315701CE34EA /* GMUStaticCluster.m */, + 5B30ADC18C448344C4C32DF4B1B87311 /* GMUWrappingDictionaryKey.h */, + D7F5E1187B449C01B41BD189F356F5BA /* GMUWrappingDictionaryKey.m */, + ); + name = Clustering; + sourceTree = ""; + }; + 5ACA95D2321BA512C5F68BF319FA9511 /* Pod */ = { + isa = PBXGroup; + children = ( + 34AAECF30B9171420AE864774EFB0F20 /* CapacitorNetwork.podspec */, + CD2BF8B3E66531EF9A504D5314539F9C /* LICENSE */, + 95AA376BD818EDF43A84D213133CCC03 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + 701996B0C8EAEE558919B42C5C2F1ABC /* Geometry */ = { + isa = PBXGroup; + children = ( + 2DB297D724008914A6919472A35D7A09 /* GMUFeature.h */, + 47DF6CCABD22147C94CE841A994F2723 /* GMUFeature.m */, + A3146C3C278220B6D6C2F2F84725C69B /* GMUGeoJSONParser.h */, + 5B6A0EA8C03C7167C93C57FFB9A5983B /* GMUGeoJSONParser.m */, + 61AF2DFA2A0AF79F69E90995DDC0EE37 /* GMUGeometry.h */, + 6A09EF0ADF22401613C81BD4037324B3 /* GMUGeometryCollection.h */, + FC4B4D674139DD15C9209D55712246AB /* GMUGeometryCollection.m */, + 2C0DC5325C75FDB903F29E6219BB6BB4 /* GMUGeometryContainer.h */, + ECB9D96D52D58541178F71211AC380C4 /* GMUGeometryRenderer.h */, + FDCA4C83BC9258C58741BF3D2816C9C2 /* GMUGeometryRenderer.m */, + 40602FA7403A27EDFFB3AEA42FB22E56 /* GMUGeometryRenderer+Testing.h */, + A7AE88085C81CA615F8A3A2D73D76C69 /* GMUGroundOverlay.h */, + 1F824BA35646383CB277C267C2B7DA58 /* GMUGroundOverlay.m */, + BB6A12834C69D7EE67C51674AA8148D3 /* GMUKMLParser.h */, + 281A90D0977A36AD7B6B4A1A3F133FDD /* GMUKMLParser.m */, + 83F2E17967298F0A69458C99957C080C /* GMULineString.h */, + BAC5FD9A5A3F8A24FBCEB560011B5BB9 /* GMULineString.m */, + 3C44BAD661E660FD1343D317148AE635 /* GMUPair.h */, + 4A3AE3DFF6BE23D59D2CA203A5031E7E /* GMUPair.m */, + E413E99B74C82C9744515D66D0AF7166 /* GMUPlacemark.h */, + 4B5E728390904C5EB06CDC0AAF89BFA3 /* GMUPlacemark.m */, + C3E6F4D703ED83D317160A70CCFE1B16 /* GMUPoint.h */, + 13CA54E05F8A2A11F13BC7F86B8DCC07 /* GMUPoint.m */, + D593FE74197A10C945B35112B15109F7 /* GMUPolygon.h */, + BBC986E7757AC8C6D830AF2582B203ED /* GMUPolygon.m */, + E69FBA4E823D5BF72D744F785BE1D177 /* GMUStyle.h */, + 8B353C00348AF0CF25722800E2DD4A6F /* GMUStyle.m */, + 851193462355087F0CF75B9B3AEADFB7 /* GMUStyleMap.h */, + 63B049463AB4A0A5D01748FD508D1D78 /* GMUStyleMap.m */, + ); + name = Geometry; + sourceTree = ""; + }; + 772964F1407E714A101A4D0DC80A75D2 /* Support Files */ = { + isa = PBXGroup; + children = ( + B7203DB93ECE8DA96B20416CA2A6CD47 /* CapacitorKeyboard.modulemap */, + 6FE3C683A344442D55261C9C26E96DF0 /* CapacitorKeyboard-dummy.m */, + 855BD2831C383A6A618D2E6801E467F8 /* CapacitorKeyboard-Info.plist */, + ED56CD96752E144CEB127ED3479A6FCA /* CapacitorKeyboard-prefix.pch */, + 83CF5DA5EEB972ED2ACD7F8437EEE5DA /* CapacitorKeyboard-umbrella.h */, + 56F3A033B0D2B0425A927B811853F45A /* CapacitorKeyboard.debug.xcconfig */, + B3A3F21790AFC74F553A22503C2F2DC5 /* CapacitorKeyboard.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorKeyboard"; + sourceTree = ""; + }; + 7BBAC0887BAD5266578E66F6630127E5 /* CapacitorCordova */ = { + isa = PBXGroup; + children = ( + CED5A956297C23418F576A09836DAB44 /* CapacitorCordova.h */, + 9008E307FA9CC69A3E575C39D9F3BCA7 /* Classes */, + CD27FBC8C912D47E575E3635F6F040E3 /* Pod */, + AEE317FFB07C8D6ECD5CB60F8EB0D05E /* Support Files */, + ); + name = CapacitorCordova; + path = "../../../node_modules/@capacitor/ios"; + sourceTree = ""; + }; + 800850C5E37012565C94AD76C800D29F /* CapacitorDevice */ = { + isa = PBXGroup; + children = ( + 601120E6ECF0BB8EE730B42B02B9F401 /* Device.swift */, + 62B975DD4C2CA4DD18D4E5FBEBB63A2C /* DevicePlugin.h */, + 9D3BC4ED95E65A6F3EA7713E331C1A7D /* DevicePlugin.m */, + 59EE1908FB1192C9E2D6811ACAD46B38 /* DevicePlugin.swift */, + D6EE29AFF202F2FB7EBD15754DF09F3C /* Pod */, + 2574DA08772827CD8F662174BC551D68 /* Support Files */, + ); + name = CapacitorDevice; + path = "../../../node_modules/@capacitor/device"; + sourceTree = ""; + }; + 81985DDA25D588F1778E76D3622C2504 /* CapacitorBrowser */ = { + isa = PBXGroup; + children = ( + 0FD893F2CA4068046FFDBB5994A173BD /* Browser.swift */, + A237AF51250B3E819509B9E5DF47861D /* BrowserPlugin.h */, + 971FBAC778F22FBBA60AF4EE43155E18 /* BrowserPlugin.m */, + E4DB139D9DA434753BBA108F6C6C56BC /* BrowserPlugin.swift */, + 228BCC2C7E5E30878F05102C996E6595 /* Pod */, + 2EB0D51203ECC8DA4D24C02BB7CB53B7 /* Support Files */, + ); + name = CapacitorBrowser; + path = "../../../node_modules/@capacitor/browser"; + sourceTree = ""; + }; + 9008E307FA9CC69A3E575C39D9F3BCA7 /* Classes */ = { + isa = PBXGroup; + children = ( + 2BA96EE596B51E0B6A2F7CD0253A7330 /* Public */, + ); + name = Classes; + path = CapacitorCordova/CapacitorCordova/Classes; + sourceTree = ""; + }; + 9A483E719AF327265A2204C175AE6C77 /* Pod */ = { + isa = PBXGroup; + children = ( + C01B5344419CC54835AC5E6640C3FF73 /* CapacitorShare.podspec */, + F1870E3B7D290C132E57581392839576 /* LICENSE */, + 37BF9C049283E4F96CBE7B79AD129168 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + A04B8BF5DF180FCA62D19D53FFC28506 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 483EDA0599A3E7F8F84740ED510E952A /* GoogleMapsBase.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A2837C3BCE24C039E3EF7B43E403ABDF /* CordovaPlugins */ = { + isa = PBXGroup; + children = ( + 07432432AE88BF5FB8525065DCEDCE64 /* IonicCordovaCommon.h */, + 5004F173599560893CB57378FF7B611F /* IonicCordovaCommon.m */, + 304612615F303FBE6EF0193993319C17 /* Pod */, + B5796AB6A5FCA125E31F922810EFBB54 /* Support Files */, + ); + name = CordovaPlugins; + path = "../../capacitor-cordova-ios-plugins"; + sourceTree = ""; + }; + A78B5A04FE0E5E27BF9012F3855DC6C4 /* CapacitorSplashScreen */ = { + isa = PBXGroup; + children = ( + ADD30A4F3C4A25F160B5A5E2A1D41502 /* SplashScreen.swift */, + 52687E9643DCEE8928A02625151743EE /* SplashScreenConfig.swift */, + 26DD3A1ECFE17A06DA5BE6719B675360 /* SplashScreenPlugin.h */, + DBEDE483841D0475D5066B14AEFEEC38 /* SplashScreenPlugin.m */, + BE19DD73D41E55F8024E9C8E87B27327 /* SplashScreenPlugin.swift */, + C3E469253914052F34F463C0620162CE /* SplashScreenSettings.swift */, + B8715ED46CFF22DD6ABCA19F41DFEA0B /* Pod */, + DB497119ED039F757FFD7270C154D8F8 /* Support Files */, + ); + name = CapacitorSplashScreen; + path = "../../../node_modules/@capacitor/splash-screen"; + sourceTree = ""; + }; + AEE317FFB07C8D6ECD5CB60F8EB0D05E /* Support Files */ = { + isa = PBXGroup; + children = ( + 6FD58560147B359037BEECC20FC95886 /* CapacitorCordova.modulemap */, + 8F4E4688036EAD145EE71183E77FE753 /* CapacitorCordova-dummy.m */, + D055C2F34A76E1987AFF17751A90D512 /* CapacitorCordova-Info.plist */, + 91828E78D4D2D3C51C8196000FA1B8B9 /* CapacitorCordova-prefix.pch */, + 3A0CA97224EE732BAD4B509F46EA3B37 /* CapacitorCordova.debug.xcconfig */, + 9971763490737DB927EF530F4C5BA9CA /* CapacitorCordova.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorCordova"; + sourceTree = ""; + }; + B1F10E20504E8BFD623DEE4F8FA5CC95 /* Development Pods */ = { + isa = PBXGroup; + children = ( + FDB1DFFC76679F25218A77569D7C676D /* Capacitor */, + 81985DDA25D588F1778E76D3622C2504 /* CapacitorBrowser */, + 46F71D3C533C2606D4136B66296A2377 /* CapacitorCamera */, + 7BBAC0887BAD5266578E66F6630127E5 /* CapacitorCordova */, + 800850C5E37012565C94AD76C800D29F /* CapacitorDevice */, + B3B4E95B17CDE0C6E1D4C42652B6D37F /* CapacitorGeolocation */, + 10983AF95A100AA78BB275DDF45F032A /* CapacitorGoogleMaps */, + F7BB5FED13D43C9734EF1FBA7B4D6367 /* CapacitorHaptics */, + CB845ED0FD198DF35233A28F1A13C10A /* CapacitorKeyboard */, + DBC2E7EBE0AEDB9A3E81CDD016744AD7 /* CapacitorNetwork */, + EBBE57DB94C3893E1988C025388E22B6 /* CapacitorShare */, + A78B5A04FE0E5E27BF9012F3855DC6C4 /* CapacitorSplashScreen */, + 1BE6076340A3792DA58CD99E6623EC35 /* CapacitorStatusBar */, + A2837C3BCE24C039E3EF7B43E403ABDF /* CordovaPlugins */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + B3B4E95B17CDE0C6E1D4C42652B6D37F /* CapacitorGeolocation */ = { + isa = PBXGroup; + children = ( + 15DC41EE83D394BFCBD4D65C24A3EC29 /* GeolocationPlugin.h */, + E28E7AC885FE59153BDC68E4210F01D1 /* GeolocationPlugin.m */, + 57F6B2FB00E00CE8A1EB1716A5DA46F4 /* GeolocationPlugin.swift */, + 21D78A4AE62636A1F39717A4BF91AF84 /* Pod */, + 30490398C6A37DDFE0ED0441CC3163C8 /* Support Files */, + ); + name = CapacitorGeolocation; + path = "../../../node_modules/@capacitor/geolocation"; + sourceTree = ""; + }; + B5796AB6A5FCA125E31F922810EFBB54 /* Support Files */ = { + isa = PBXGroup; + children = ( + 46CC12C851316C518A8535B7D56661A8 /* CordovaPlugins.modulemap */, + F6EE75712C7554BF0AA02716989A3495 /* CordovaPlugins-dummy.m */, + C2A135C9ED20386519D84413CF4496D5 /* CordovaPlugins-Info.plist */, + 4B2764148AFFA80C343C21DB7F5D0C69 /* CordovaPlugins-prefix.pch */, + 2F6DB81A220CADE71E9633D7D674BB86 /* CordovaPlugins-umbrella.h */, + 4564580AA215CE6C361D09A521831141 /* CordovaPlugins.debug.xcconfig */, + B5A3F6811C7F1A8CF72C97ADB548CC88 /* CordovaPlugins.release.xcconfig */, + ); + name = "Support Files"; + path = "../App/Pods/Target Support Files/CordovaPlugins"; + sourceTree = ""; + }; + B8715ED46CFF22DD6ABCA19F41DFEA0B /* Pod */ = { + isa = PBXGroup; + children = ( + A0AC37A89F1DB86171DD3C8D77E847DC /* CapacitorSplashScreen.podspec */, + C3A42C467A3DC7421C09C04E49C19085 /* LICENSE */, + D3F259339E6D26CDEE4EE1BEEAEC1D8D /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + BAEC5ACDA55DBC521B7AFF781A50A113 /* Maps */ = { + isa = PBXGroup; + children = ( + 4A401B3D71F12DCA500D0C48D98B2458 /* Frameworks */, + FBB0B88398DF5F51186514B267C285C6 /* Resources */, + ); + name = Maps; + sourceTree = ""; + }; + BD50200D9D77EF79EBEF397AEF0D64BE /* Plugins */ = { + isa = PBXGroup; + children = ( + 0ABE7D781BFC08D628BFA2C4B5590DF2 /* CapacitorCookieManager.swift */, + 97A6C4B65C68E1F73D074A6B1D2E459D /* CapacitorCookies.swift */, + EB0AE78EBE032234D591670CC635F8D3 /* CapacitorHttp.swift */, + 63D812D6B01BE483BEA167D6CD3FAEFD /* CapacitorUrlRequest.swift */, + 1F58215E25E4724887CBE6B328ED513E /* Console.swift */, + 52F7FDFD9C71AD8F5435EAF27DE9AEFC /* DefaultPlugins.m */, + F3BA02CE2F72B36F22BBD3F914CBFDBD /* HttpRequestHandler.swift */, + 517384C04DB2FEC9C01BA36B5E448BC4 /* WebView.swift */, + ); + name = Plugins; + path = Capacitor/Capacitor/Plugins; + sourceTree = ""; + }; + BE8930528BFFC777A0285D0F38AADD3C /* Support Files */ = { + isa = PBXGroup; + children = ( + 80CA4ADBD48E83E5A9FE15A4C4B1635D /* CapacitorNetwork.modulemap */, + 643652819661FACEDD8B0349173569EE /* CapacitorNetwork-dummy.m */, + 432E1E622F84E8D844E16294C6F995F0 /* CapacitorNetwork-Info.plist */, + 544739C6CFC1B79A2CA0673CD1DA7436 /* CapacitorNetwork-prefix.pch */, + 0502B7DF80C602CE185C372EF5FCD1F2 /* CapacitorNetwork-umbrella.h */, + 6627116E9BE9360EC71B1F0B2C66A144 /* CapacitorNetwork.debug.xcconfig */, + 853A5EF09F799AC6838BF8087EF1ECFB /* CapacitorNetwork.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorNetwork"; + sourceTree = ""; + }; + C0AAD921B81158F4AED4FEED95358F62 /* Pod */ = { + isa = PBXGroup; + children = ( + EBA0FD52E17192CD17AA92CD77FEFEC8 /* CapacitorGoogleMaps.podspec */, + A503E951032D910BDEBA51D9BC697598 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + C80FDD14A405A9C9F6297473D0459521 /* Pod */ = { + isa = PBXGroup; + children = ( + 54DCCB728FFA766AE9B1F25AEF5F6A57 /* CapacitorKeyboard.podspec */, + 3FA8AA5F2CAD53323CFE0721EB340F60 /* LICENSE */, + 77FA69F7F051EA8CD6B29E44D16F5808 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + CB845ED0FD198DF35233A28F1A13C10A /* CapacitorKeyboard */ = { + isa = PBXGroup; + children = ( + C551AB59EAEB18549211D5CC5881474D /* Keyboard.h */, + 0BC110304734F9BA380E10E7D0626FC5 /* Keyboard.m */, + 019C445EF449E031FCF0B5BCA5D98EA8 /* KeyboardPlugin.h */, + 806BC1B663F5C2F574623C924386595F /* KeyboardPlugin.m */, + C80FDD14A405A9C9F6297473D0459521 /* Pod */, + 772964F1407E714A101A4D0DC80A75D2 /* Support Files */, + ); + name = CapacitorKeyboard; + path = "../../../node_modules/@capacitor/keyboard"; + sourceTree = ""; + }; + CBF88972D27CB3AF1A0BD92CE262284B /* Pod */ = { + isa = PBXGroup; + children = ( + D266001734470B7E4A2141905934B755 /* CapacitorHaptics.podspec */, + 263DF2B21F234AD9F2994F36180BB2ED /* LICENSE */, + 819C5C569BA7625E430D59AE71F1315B /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + CD27FBC8C912D47E575E3635F6F040E3 /* Pod */ = { + isa = PBXGroup; + children = ( + 11D985016D963ADF76B8BBFB9336BA9F /* CapacitorCordova.modulemap */, + 4A0FEAF1F38F95F8366121B40763E96A /* CapacitorCordova.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + B1F10E20504E8BFD623DEE4F8FA5CC95 /* Development Pods */, + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, + EB097A39E8877B7A384F220A1F094F97 /* Pods */, + D389DECFE76388D0F1B5A370AF9D4753 /* Products */, + 3C6D94108C1C0E8E84B54C7267E318BA /* Targets Support Files */, + ); + sourceTree = ""; + }; + D2058A9ED316EAF409EC16F622F19034 /* Support Files */ = { + isa = PBXGroup; + children = ( + A1D7CEA3754B3ADE2CE169F9FD853CA7 /* CapacitorCamera.modulemap */, + DF7303F391A2B538FDCFF07ADDD6CF3F /* CapacitorCamera-dummy.m */, + 40DBD9184E6A48302F019C1FD8A1999A /* CapacitorCamera-Info.plist */, + E616299214E185751FDC0E0B2321C26A /* CapacitorCamera-prefix.pch */, + 97223C8D9031151C843566D4135CD31E /* CapacitorCamera-umbrella.h */, + F83C3C39290D8FF45A0D193927909E8C /* CapacitorCamera.debug.xcconfig */, + 6A176E2A43FAA5336CB0CE809687AF12 /* CapacitorCamera.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorCamera"; + sourceTree = ""; + }; + D2FF8EB75AA8807372034CDFE0EDDDAA /* QuadTree */ = { + isa = PBXGroup; + children = ( + 55E667C388709DCC6EA6BB14D72BFD9C /* GQTBounds.h */, + 1C8D67AEA3CB980269FEE9F99B52F324 /* GQTPoint.h */, + 17D63720DAC6363C343864A8C091FC5A /* GQTPointQuadTree.h */, + 2EF199A97A10FD00046A60594869F9DD /* GQTPointQuadTree.m */, + 87545CCECEE3DBB3981AC72755C734CE /* GQTPointQuadTreeChild.h */, + 8FDE6DB2203829FEBD0F27BBA38D087E /* GQTPointQuadTreeChild.m */, + 07B8490BCEAEEBDD44D51132AD4E6D1E /* GQTPointQuadTreeItem.h */, + ); + name = QuadTree; + sourceTree = ""; + }; + D389DECFE76388D0F1B5A370AF9D4753 /* Products */ = { + isa = PBXGroup; + children = ( + 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */, + A60135599BA436B4A540E7E9B24C699D /* CapacitorBrowser */, + 026A691286A2668863FEACBF5E52AD02 /* CapacitorCamera */, + 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */, + 6D2F7843D7AFC1837FAD7630C9E5C504 /* CapacitorDevice */, + 26969F9EEC9F4DDCD493EF0884E1EDEC /* CapacitorGeolocation */, + C38A8AD8FC5441BD1C2DF9FBCE84EEF4 /* CapacitorGoogleMaps */, + 4830CABC2D58B5C50BE6EFECA34B2895 /* CapacitorHaptics */, + 43F80CDA05D5624A6B812123E023B138 /* CapacitorKeyboard */, + D1DBB07504DB9E35792933311691E212 /* CapacitorNetwork */, + E2E39542828F20D42B2F1F26422E261B /* CapacitorShare */, + 0391CB10F6FC8CE6B82C8A5DDD52C704 /* CapacitorSplashScreen */, + 37915BEC3E9EB6CD453C07348A49B51A /* CapacitorStatusBar */, + 905488119B59CE9E075BE7526F21DF2E /* CordovaPlugins */, + 5CA9E6FE438CE79CD76FA3B34CC95836 /* Google-Maps-iOS-Utils */, + 5BEF4602752E47C46E8C10FB8B4B57F2 /* Pods-App */, + ); + name = Products; + sourceTree = ""; + }; + D4666CE1A84ECF5C342FAD3C508C69DE /* iOS */ = { + isa = PBXGroup; + children = ( + 32D20E8E61FE391C0ED97D6F5A9EEEFD /* Foundation.framework */, + 2BB655F8A3B9F0C3DB37D349580B2779 /* WebKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + D4F9FB68A72E6278DC32E724FB68416C /* Support Files */ = { + isa = PBXGroup; + children = ( + 4E24CA56E676B31D263C18620383F12B /* CapacitorGoogleMaps.modulemap */, + 16A278647AC827B8FC986BB9D71E0C13 /* CapacitorGoogleMaps-dummy.m */, + D87372490D4D02E98E16D8E25A0265C7 /* CapacitorGoogleMaps-Info.plist */, + B117A449ABEDEEFE3D5026672C9D3E35 /* CapacitorGoogleMaps-prefix.pch */, + 805E8F40E0D244369108472D379FD613 /* CapacitorGoogleMaps-umbrella.h */, + 571D9B3157913DDE9A857A069A334446 /* CapacitorGoogleMaps.debug.xcconfig */, + 895922265FE97E01F8AEF40F9C7AC184 /* CapacitorGoogleMaps.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorGoogleMaps"; + sourceTree = ""; + }; + D6EE29AFF202F2FB7EBD15754DF09F3C /* Pod */ = { + isa = PBXGroup; + children = ( + F2376A97821729B9C7D81DB546FE8553 /* CapacitorDevice.podspec */, + 4A309385FC5B96ADBCB01BB9E01BA26B /* LICENSE */, + 3A1E57E5C6234F9ED43A6AA9ECC898E1 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + DB497119ED039F757FFD7270C154D8F8 /* Support Files */ = { + isa = PBXGroup; + children = ( + 5F2C6DD83CB96C82E3B0F078DF77C244 /* CapacitorSplashScreen.modulemap */, + D5507329FAE281803DFE78780FCCD13A /* CapacitorSplashScreen-dummy.m */, + 8BA4179785D5E4172685C44F6B9ED9BD /* CapacitorSplashScreen-Info.plist */, + 9BAAF138DA4EA4C0D48B621AB1B9D881 /* CapacitorSplashScreen-prefix.pch */, + F93359CC63E6C1C6B05C5FD2BA298ECD /* CapacitorSplashScreen-umbrella.h */, + 14883F2A4312E21CEB6CB4E1C77D17D7 /* CapacitorSplashScreen.debug.xcconfig */, + 161E9590D153254C243AD67B36F1E178 /* CapacitorSplashScreen.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorSplashScreen"; + sourceTree = ""; + }; + DBC2E7EBE0AEDB9A3E81CDD016744AD7 /* CapacitorNetwork */ = { + isa = PBXGroup; + children = ( + B06F1A999E6941786776F252A40059D2 /* Network.swift */, + B8424D33E75A0595D378E56B2B024B45 /* NetworkPlugin.h */, + 6D2D314BB1BFE55C34EC1E25A4A00B3A /* NetworkPlugin.m */, + C7A219DC9CBB374A1A982EE2F871DAA9 /* NetworkPlugin.swift */, + 0F98563936B60F9860E0EC2994CF361D /* Reachability.swift */, + 5ACA95D2321BA512C5F68BF319FA9511 /* Pod */, + BE8930528BFFC777A0285D0F38AADD3C /* Support Files */, + ); + name = CapacitorNetwork; + path = "../../../node_modules/@capacitor/network"; + sourceTree = ""; + }; + EB097A39E8877B7A384F220A1F094F97 /* Pods */ = { + isa = PBXGroup; + children = ( + 46C7F7CBAE808C3E366F453DACD6E766 /* Google-Maps-iOS-Utils */, + EF76645689215AE60C48C9B586361907 /* GoogleMaps */, + ); + name = Pods; + sourceTree = ""; + }; + EBBE57DB94C3893E1988C025388E22B6 /* CapacitorShare */ = { + isa = PBXGroup; + children = ( + FD1C9312D4BAFF3A7CC8E8DACA3435C8 /* SharePlugin.h */, + 2E2D9E26592835272A4815E92FFA1C27 /* SharePlugin.m */, + 7757BDDE2674BFB4007A7B036A825900 /* SharePlugin.swift */, + 9A483E719AF327265A2204C175AE6C77 /* Pod */, + 395A8D647C412D3F6F1A019FF6BB274B /* Support Files */, + ); + name = CapacitorShare; + path = "../../../node_modules/@capacitor/share"; + sourceTree = ""; + }; + EC238D4C638D708ED030184B5B9FB615 /* Support Files */ = { + isa = PBXGroup; + children = ( + 6325859959A142AB16EB2F1CF0D1954A /* CapacitorStatusBar.modulemap */, + 9779FB99183CEFB7AF386C33D3B410D0 /* CapacitorStatusBar-dummy.m */, + 141E528C00264566D1D5A75F64D017EA /* CapacitorStatusBar-Info.plist */, + 2FC81E0507F2B14FDB8E2D2846AAB68A /* CapacitorStatusBar-prefix.pch */, + C26B06BCCF194FD193792E94573B5B87 /* CapacitorStatusBar-umbrella.h */, + 29AC238BABAD0D91D9053DFE88DD0E47 /* CapacitorStatusBar.debug.xcconfig */, + 7B8A48D4F4E78F53898574B2C2A07227 /* CapacitorStatusBar.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios/App/Pods/Target Support Files/CapacitorStatusBar"; + sourceTree = ""; + }; + EF76645689215AE60C48C9B586361907 /* GoogleMaps */ = { + isa = PBXGroup; + children = ( + 030843E527B6F9C68287BBFA7F50D168 /* Base */, + BAEC5ACDA55DBC521B7AFF781A50A113 /* Maps */, + 2A0CBF0E5F44AB57BDE22AD7E28A9F87 /* Support Files */, + ); + name = GoogleMaps; + path = GoogleMaps; + sourceTree = ""; + }; + F7BB5FED13D43C9734EF1FBA7B4D6367 /* CapacitorHaptics */ = { + isa = PBXGroup; + children = ( + 810063DB5D14B617044ED211C54CE75D /* Haptics.swift */, + 4FDB0AEABD2502A0C199D950A981211F /* HapticsPlugin.h */, + C1CFDB4D9A36BB0F8AE9807AEACB71DE /* HapticsPlugin.m */, + 93DCE4EE8DEF2C976C0E59561685E200 /* HapticsPlugin.swift */, + CBF88972D27CB3AF1A0BD92CE262284B /* Pod */, + 3EC90C8DD696C099435EF7DE8F8AE03B /* Support Files */, + ); + name = CapacitorHaptics; + path = "../../../node_modules/@capacitor/haptics"; + sourceTree = ""; + }; + FBB0B88398DF5F51186514B267C285C6 /* Resources */ = { + isa = PBXGroup; + children = ( + AF848745CE31565FBF5C09B5B0E110FB /* GoogleMaps.bundle */, + EE3F73A3EBA82A9B99BA27C6CDA2CEF1 /* GoogleMaps.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + FC6CC71F680D26446AB903A096601458 /* Pod */ = { + isa = PBXGroup; + children = ( + FB7753DA68E0526EACE4D87EA628F4E0 /* CapacitorStatusBar.podspec */, + FA7E341CDA369EE7460E41BA3C2B018B /* LICENSE */, + C79E12DFF4CE96FD084B864B8F179342 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + FDB1DFFC76679F25218A77569D7C676D /* Capacitor */ = { + isa = PBXGroup; + children = ( + 4F4C2859DFF1D00E671508CB8EE79A5C /* AppUUID.swift */, + 006EDD10E21D7C73FF389F35916A5E25 /* Array+Capacitor.swift */, + 62D00377E1A6D02F6D92561942042102 /* Capacitor.h */, + F912ED6A307900B31CC286DFF4AE8CA5 /* CapacitorBridge.swift */, + 36FD4B2E696F789F214C409370DA0920 /* CapacitorExtension.swift */, + 8A6D1DEE1B96148FDFEE357732FB0C83 /* CAPApplicationDelegateProxy.swift */, + 47980E5F55F41E2B031AB6B11B197386 /* CAPBridge.swift */, + 5D4424A2D9F0D46897324AF4A849FE28 /* CAPBridgeDelegate.swift */, + 04EC2B08EEF6FAE70455837417A925E2 /* CAPBridgedJSTypes.h */, + 73DEFF31C4ADA1FF43A0A6759ADC8AD1 /* CAPBridgedJSTypes.m */, + D7991AC7C52F06BB678CBD6F848F4D3B /* CAPBridgedPlugin.h */, + 504EE5564A74A840C921D902648917A9 /* CAPBridgedPlugin+getMethod.swift */, + A6ECB609E741A43C31976822AE7FB45B /* CAPBridgeProtocol.swift */, + FD4F4CA5F3D976FA866E379600C7E271 /* CAPBridgeViewController.swift */, + 6192101B39EAB449622F8F6A660B84D6 /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */, + 62F7D9BD7EF5A25667FD34442D1AAE00 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */, + C36F840F5612C90D52B814DE480E9D3C /* CAPFile.swift */, + 2B9299E67BD39CF7001F8C498F28543C /* CAPInstanceConfiguration.h */, + 20D422518836D78FC12CD5C869AE645F /* CAPInstanceConfiguration.m */, + 065BD1077D666057839E8BB05D6AB897 /* CAPInstanceConfiguration.swift */, + B7265B233DD61FCD87003B8A577D2B1C /* CAPInstanceDescriptor.h */, + 4B1650715D10774E45B037A4E1BF66F3 /* CAPInstanceDescriptor.m */, + 297D5DDC58588524A1DBF8ECB33CC68A /* CAPInstanceDescriptor.swift */, + 7F56FD043CFFFCB15E47A477BEFFECDA /* CAPInstancePlugin.swift */, + 99B7359DBA6E4691A7147434A42266FA /* CAPLog.swift */, + 740B733F127AEB26C456D991C9A4B4A4 /* CAPNotifications.swift */, + 475062F828B7D0C94730AC748AFE1C4C /* CAPPlugin.h */, + 0F338C629F761784B6A6057FD8CE51E1 /* CAPPlugin.m */, + 45E588CB4D34F2A15CA1BB9439F087FD /* CAPPlugin+LoadInstance.swift */, + BFF123A16432E00BB7AD2BB0DB5CF5BC /* CAPPluginCall.h */, + DC3A976E99F31DF234C2FB4F50C9E1F3 /* CAPPluginCall.m */, + F0D8148588B697CC38576BF9505B4D76 /* CAPPluginCall.swift */, + A5517CAAD5F7F8FCC4F53313164DB995 /* CAPPluginMethod.h */, + A96715C2CEC7BC49407C6A80C813798F /* CAPPluginMethod.m */, + 4FA63BA45CA65303C8508B5160D2A743 /* CAPWebView.swift */, + 6428A32784C5CA1044899E44C665BF19 /* Data+Capacitor.swift */, + CBCBD0CFBA2ABB89CC786EA4D5493A78 /* DocLinks.swift */, + A683E83F9735DCC796068B2BF6DC42C1 /* JS.swift */, + D50F147468B9BD9B4C8FC3867960BEC9 /* JSExport.swift */, + EFFA1E993D7696FB5C78DEE582B6EA0A /* JSTypes.swift */, + 0ECA46536DFA17208195A32D5178993B /* KeyPath.swift */, + 72C84A3FC08798651F3AFD8FE2A15B36 /* native-bridge.js */, + 6C90329A1C99F5C204C50285232F8792 /* NotificationHandlerProtocol.swift */, + 679BEAAF6CE3A649A4D56B90BB88A932 /* NotificationRouter.swift */, + 4368DF7AF0C26ADF361230E02AFD9DB5 /* PluginCallResult.swift */, + C29BFF94B66894147D8BB99979D251F1 /* PluginConfig.swift */, + 9517C1282EFA756387C3CA0CBBC55E18 /* Router.swift */, + 60FBB91EE7FE1F52E9AC9FDA631D686F /* TmpViewController.swift */, + 68EBAD27FFD136B3A01F7D84B2DE3852 /* UIColor.swift */, + F3B3413E32A2C6F376FE0DB6585D6444 /* UIStatusBarManager+CAPHandleTapAction.m */, + D90221EB1CF0D555900E44C15219D0CC /* WebViewAssetHandler.swift */, + 446AD267718E4C58D16A192FFDFBC511 /* WebViewDelegationHandler.swift */, + C252182ADC3F8E56450E8A513438DBB4 /* WKWebView+Capacitor.h */, + 3D53E18BA8FA1C2A2B1C60BD2E713E71 /* WKWebView+Capacitor.m */, + D3DD6C401B16A05339B639218181DC8E /* WKWebView+Capacitor.swift */, + BD50200D9D77EF79EBEF397AEF0D64BE /* Plugins */, + 2AE710A7E43437753EFA88E20AE147BF /* Pod */, + 2A9CC825154AC8D5D205328519CB4866 /* Support Files */, + ); + name = Capacitor; + path = "../../../node_modules/@capacitor/ios"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0579112B0AAA5A56691C4C48F60882FD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A2ED1398AD0A291DBC1A63C2CB864A6E /* CapacitorGoogleMaps-umbrella.h in Headers */, + EA79BD4DD9A629B0F63AA6B9E09E5056 /* CapacitorGoogleMapsPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 079CD641776E3749A98F955F5517F0AF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1473A713F32E033419268D2F512672F1 /* CapacitorHaptics-umbrella.h in Headers */, + 4EEE20D686C7BCE8CE31DB6CED454D64 /* HapticsPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0B698083CD693938680B0914445D7C7E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 13EAF4483A84977C48A9D561B21A563E /* CapacitorNetwork-umbrella.h in Headers */, + E8D1B844F78795743083A97BF1717140 /* NetworkPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51349B10719AB3AF008252626D368078 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B42CC15368B81296B5F91C0B5939F8A8 /* CordovaPlugins-umbrella.h in Headers */, + 4611148B149B7EE9FC2596DF3288DA87 /* IonicCordovaCommon.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51ED48FD2A9F851232942F5F530B5570 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 698708514A91B09F6E75EBF72B56A66B /* CapacitorDevice-umbrella.h in Headers */, + FE0824B367B98C37875DD6B20DD3897D /* DevicePlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6D393EEA8316FD37FAEF275620B2B9B8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0AA0425E47CB451650D8C4BF4FCDD254 /* Pods-App-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8E27DEC5506503D1EC782C82F5E00FC0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2194B960D869BA69100DE35C4F25C18D /* CameraPlugin.h in Headers */, + 90FC9924DAE3127EC5E42C9B4088714B /* CapacitorCamera-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A298C0A033BDBB124AF8A2C0A540042F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B670BCC076D7AE43754CAA832246146 /* CapacitorStatusBar-umbrella.h in Headers */, + 414D1A06AE5547D660EE257635B1D4C3 /* StatusBarPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A2D4845440E94F514071D8CCF5A62B2B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3459CC7A069D6A8A392CCC55265A8DAD /* CapacitorShare-umbrella.h in Headers */, + EF550E1A6FD0B86C2D5D56F2371C8866 /* SharePlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A573CB9EA5F13BB6230FF59881B91DE3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 29FBEC04197075F59002C9530FE33C65 /* BrowserPlugin.h in Headers */, + 060941FABC7AF16B9BEF5E721154615A /* CapacitorBrowser-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AAA79AE30FA19905E93000956A5B5EEC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E1EFB2227D83398DB2C4705A6271E241 /* CapacitorGeolocation-umbrella.h in Headers */, + 05966A998808E583F32A127FDA40DE5D /* GeolocationPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BFF22A16F82FB5C129F21F731131CFA6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AB012A26D6D5ACDBA681DC5559EC7718 /* CapacitorKeyboard-umbrella.h in Headers */, + 960BC3DB691AC53BFDF7CFE5B80F7884 /* Keyboard.h in Headers */, + E4A1154397867F5210AA5B7A36AA4280 /* KeyboardPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DA1AA6C3D71C7CC4F1856F235512FB98 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A57A27DD15FEDD8649FA2FCA4E0C181 /* Capacitor.h in Headers */, + 36E932077F0D9EB7FD81AB26A2F498FE /* CAPBridgedJSTypes.h in Headers */, + D8EC3A035D26C65CEB8BA45347DE7BD9 /* CAPBridgedPlugin.h in Headers */, + E4C448681C61D203F6B116BFACFD2391 /* CAPBridgeViewController+CDVScreenOrientationDelegate.h in Headers */, + 6BAC3EB110AF916BA141E4DE93821660 /* CAPInstanceConfiguration.h in Headers */, + ED0FBE6F96B10D89918F37A05086B351 /* CAPInstanceDescriptor.h in Headers */, + A650FC944B924C08BD167753A71F4B59 /* CAPPlugin.h in Headers */, + 1185667BCEF4348EEBA4DB806BBD95AA /* CAPPluginCall.h in Headers */, + BA8F486EE89D4BD4F0B858DEC359F716 /* CAPPluginMethod.h in Headers */, + 625DEE488D2C658197C95DF057C02E0E /* WKWebView+Capacitor.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB864E7C384661B05C5DBF8879CD4CFC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AAC5DBA310CC0DD480F12418A3C7F0FC /* GMSMarker+GMUClusteritem.h in Headers */, + B31B5E62160420DDC7C906EBB1220D3F /* GMUCluster.h in Headers */, + 96DE46A6B466B185045FB7E867869D97 /* GMUClusterAlgorithm.h in Headers */, + 042EA472E3A56980342C5901249153C0 /* GMUClusterIconGenerator.h in Headers */, + 164EB1B53DE0BE1726F09E118ED4A072 /* GMUClusterItem.h in Headers */, + A0FF76B9DA628F80BC4481540FAC4D01 /* GMUClusterManager.h in Headers */, + C6C60979D2273FDB1D2A99A52E23C561 /* GMUClusterManager+Testing.h in Headers */, + 8D625994D29B7C7D29A1AFD9322D5AAA /* GMUClusterRenderer.h in Headers */, + 4832524F1D1F70D1F58C013597C8D857 /* GMUDefaultClusterIconGenerator.h in Headers */, + 60125A06D0995DB926CB977541DEB5A0 /* GMUDefaultClusterIconGenerator+Testing.h in Headers */, + B0D14E433E4B0AD2572FE8E3CD54AE94 /* GMUDefaultClusterRenderer.h in Headers */, + 7C593F00690901B7A5F7893745A47544 /* GMUDefaultClusterRenderer+Testing.h in Headers */, + DCDF9AE59DF36C565DECB52A2D55150A /* GMUFeature.h in Headers */, + 296B42C166783ECE7B7309F5220BC538 /* GMUGeoJSONParser.h in Headers */, + 7692A6F167C1ACD334E7E9DA316A402B /* GMUGeometry.h in Headers */, + AB9F3352CAE25DA382DBD9BAF01BB592 /* GMUGeometryCollection.h in Headers */, + 9FABCC8DF2809B186A29D268DF364217 /* GMUGeometryContainer.h in Headers */, + AA8CCE5C31BEC3F700C7EF0C8BEEE344 /* GMUGeometryRenderer.h in Headers */, + 708098D8C088E12CB23597E8DF29475E /* GMUGeometryRenderer+Testing.h in Headers */, + B4C3B87ADC969A01555785EEB733D02F /* GMUGradient.h in Headers */, + 553D68BBE8F7644B61D9C7919F1ABDB7 /* GMUGridBasedClusterAlgorithm.h in Headers */, + 2C5AF99EA7618249434BD7B509C83ECD /* GMUGroundOverlay.h in Headers */, + 759A37A5BAA1831F65802BABF0F4F0C9 /* GMUHeatmapTileLayer.h in Headers */, + 4C21BEB278654124F16374C7E81D0298 /* GMUHeatmapTileLayer+Testing.h in Headers */, + AC027013D060A7B23D48A2257D3B9ADE /* GMUKMLParser.h in Headers */, + D71D0F15BDB2EEF14150743D8AF0AC01 /* GMULineString.h in Headers */, + 3DEC2279909E698F5A96841DF31B1C78 /* GMUNonHierarchicalDistanceBasedAlgorithm.h in Headers */, + 170520B3A2F8F1830996AD780684E4A0 /* GMUPair.h in Headers */, + 8DD3ECC1F02F641A09FB5269D770E1B6 /* GMUPlacemark.h in Headers */, + 16CA2F9A17738F609C931F9926B1954A /* GMUPoint.h in Headers */, + B2ECED3AC014B993EB27650FC6909006 /* GMUPolygon.h in Headers */, + C2A4523DCA6194E4C2035B94F408AC33 /* GMUSimpleClusterAlgorithm.h in Headers */, + 5613B1598DE3FE797F3F5B5BD8A9351A /* GMUStaticCluster.h in Headers */, + 758D895BE7376F57B5CF3F0D87AE8043 /* GMUStyle.h in Headers */, + 8F6F9F47F081C05613D8A09491C4C78F /* GMUStyleMap.h in Headers */, + C22883EE01301A2491BE6C1620096F46 /* GMUWeightedLatLng.h in Headers */, + F3E21E64E40B5B05D077B304E7064833 /* GMUWrappingDictionaryKey.h in Headers */, + D8897EB0C93D30F83AA6411DBD29A5F7 /* Google-Maps-iOS-Utils-umbrella.h in Headers */, + B6767B5A7B074D4CAA9B4645FC2110EB /* GQTBounds.h in Headers */, + 507F17CDDEF1624BF92544F696CBC18F /* GQTPoint.h in Headers */, + C2897D43781098F5D6D8857A6E660787 /* GQTPointQuadTree.h in Headers */, + 5E45658DF784FD7965A4B6C7F8C629ED /* GQTPointQuadTreeChild.h in Headers */, + 7BA48345F9FFF9CE14B7CF165DA80F8B /* GQTPointQuadTreeItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC6177D71C04A487EE49CE919925E96B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BABBFB5404D7327216624BB68A2C4689 /* AppDelegate.h in Headers */, + 8A28DA8CFCED60943E2B1D841D8E365F /* CapacitorCordova.h in Headers */, + 744B95E8A1085BA6845399147513CC45 /* CDV.h in Headers */, + 4ACBA269E27F7498EB93C9624839E66C /* CDVAvailability.h in Headers */, + CD3FB17F4C65D7B782523C6CBE4D4F10 /* CDVCommandDelegate.h in Headers */, + F6F3E6061E9C43E2FB59601B08770479 /* CDVCommandDelegateImpl.h in Headers */, + 895FBDE2A6310E869982E027E69740D1 /* CDVConfigParser.h in Headers */, + F412B52946162CF894D0D56537F2BBB1 /* CDVInvokedUrlCommand.h in Headers */, + 6EB21EB2A2B220315E4B0C3A805765D8 /* CDVPlugin.h in Headers */, + AE8CC53089143E158AE0759F199B7553 /* CDVPlugin+Resources.h in Headers */, + 77D7E778678CCEE938718E20019AEF5C /* CDVPluginManager.h in Headers */, + 5A876FCE3E9A75C4456F3ECB172267A7 /* CDVPluginResult.h in Headers */, + EC7203DFAFFEC85B80E020CFA89FFFF5 /* CDVScreenOrientationDelegate.h in Headers */, + 6EEE951C531BC545317F7ABA829001CA /* CDVURLProtocol.h in Headers */, + 55D7AEE6D17505C334ADFEE7ACCE9ECB /* CDVViewController.h in Headers */, + C5D6CB8A1AD05D282FBD8C4062F89ECA /* NSDictionary+CordovaPreferences.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE9C4BA5D59E517C2C5F36DDAE1DC6FA /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B598C1784E43A43D66195F80D0947027 /* CapacitorSplashScreen-umbrella.h in Headers */, + BDB3344B9E2820CC05B1B47D9AAEB7FA /* SplashScreenPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0658A74B495D65D0FF7A51E6ECB58F24 /* CapacitorBrowser */ = { + isa = PBXNativeTarget; + buildConfigurationList = F208B07F008AEB891580DB5408A2E954 /* Build configuration list for PBXNativeTarget "CapacitorBrowser" */; + buildPhases = ( + A573CB9EA5F13BB6230FF59881B91DE3 /* Headers */, + 98CB21E7564328671363EEDDD9546DE8 /* Sources */, + 4186D1CCD66B13BDFB76435A79D9C37E /* Frameworks */, + C86E8AF849C27EB7839E7FDB5525E730 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 10377F377923DCF71B5C7CC08D0E8070 /* PBXTargetDependency */, + ); + name = CapacitorBrowser; + productName = CapacitorBrowser; + productReference = A60135599BA436B4A540E7E9B24C699D /* CapacitorBrowser */; + productType = "com.apple.product-type.framework"; + }; + 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */ = { + isa = PBXNativeTarget; + buildConfigurationList = B199849C64840E0A9456B3139423B266 /* Build configuration list for PBXNativeTarget "Capacitor" */; + buildPhases = ( + DA1AA6C3D71C7CC4F1856F235512FB98 /* Headers */, + E40A7F65ED5B2118839B958E313D9DDA /* Sources */, + AD9BBAB1DF84DC65D286432842C0B75E /* Frameworks */, + 3A97EFA7B71B3FFD86BAC45D5F6918B9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 67B1E4F63CA60BDBFF3E349187442E43 /* PBXTargetDependency */, + ); + name = Capacitor; + productName = Capacitor; + productReference = 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */; + productType = "com.apple.product-type.framework"; + }; + 291499FE70301076C46663647D6398CF /* CapacitorSplashScreen */ = { + isa = PBXNativeTarget; + buildConfigurationList = 20FD8A6D0E9020CA6551C2DF3E4A1429 /* Build configuration list for PBXNativeTarget "CapacitorSplashScreen" */; + buildPhases = ( + FE9C4BA5D59E517C2C5F36DDAE1DC6FA /* Headers */, + D65D99A7BCEA88289352A6AAC7DE1D7A /* Sources */, + 7A91BFBF36961A4A67F7BB7FF986D3A3 /* Frameworks */, + 644C8AFD991A23778224966A4244443D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 829A97384735389A3C405DF57DEFEC7D /* PBXTargetDependency */, + ); + name = CapacitorSplashScreen; + productName = CapacitorSplashScreen; + productReference = 0391CB10F6FC8CE6B82C8A5DDD52C704 /* CapacitorSplashScreen */; + productType = "com.apple.product-type.framework"; + }; + 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */ = { + isa = PBXNativeTarget; + buildConfigurationList = D3C7E01912FF767ECAD293B6F5CC8D90 /* Build configuration list for PBXNativeTarget "CapacitorCordova" */; + buildPhases = ( + EC6177D71C04A487EE49CE919925E96B /* Headers */, + 25ED0EE81A8B4A574651F959B754171E /* Sources */, + 533AD974FCD5BF948A26A0D23500E63C /* Frameworks */, + ACE05BC42071BA9656416486D84C1E7A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CapacitorCordova; + productName = Cordova; + productReference = 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */; + productType = "com.apple.product-type.framework"; + }; + 5C415F33D02A6F89DB713EFB9D75A3FB /* Pods-App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 81DC7215A3B91B735FA1BCE78DBD7535 /* Build configuration list for PBXNativeTarget "Pods-App" */; + buildPhases = ( + 6D393EEA8316FD37FAEF275620B2B9B8 /* Headers */, + E38E448A983DF2A6EE39892C2D30CD92 /* Sources */, + C874AE316AFFD2C7E371BB27879D0A82 /* Frameworks */, + 4B10A3A010B88EDF590D44E75CC60E4B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + FDB597CF827598E54A57B7C833745F46 /* PBXTargetDependency */, + D3356A9306A82CA3386F97E6E474A426 /* PBXTargetDependency */, + BCD4108DC9CB83131E62A0981E9ED92A /* PBXTargetDependency */, + F4C1FB7E9B3378B18C25F75738DD3611 /* PBXTargetDependency */, + DE0FCBD4AB82C64A8631C03620BA5007 /* PBXTargetDependency */, + 58AEE202A564A1DD96A566E425410F27 /* PBXTargetDependency */, + AE8BB4E09C16F32536BEE40D09E1C098 /* PBXTargetDependency */, + F952C857E87FF0B6C4220AC7A862516B /* PBXTargetDependency */, + F645E55FAD67AEF8B9EB7F93285BD507 /* PBXTargetDependency */, + 43EDEDA087749D44F7C6CDD286665523 /* PBXTargetDependency */, + 9B4C08BEE8A85837D0820C43D47B8E21 /* PBXTargetDependency */, + A74C6D3890FB15CFC5CD540835F20DE0 /* PBXTargetDependency */, + D79D0C8EA495E1F66ADED9CF8B5D42A5 /* PBXTargetDependency */, + A5AB669C08BF79AB5F04468DDE694DF0 /* PBXTargetDependency */, + 20D18CFD18E4F73169CB55F60BA0B7A1 /* PBXTargetDependency */, + 857C531D8A4BE3BA7DCC2505E256161B /* PBXTargetDependency */, + ); + name = "Pods-App"; + productName = Pods_App; + productReference = 5BEF4602752E47C46E8C10FB8B4B57F2 /* Pods-App */; + productType = "com.apple.product-type.framework"; + }; + 6307A6219BDF2F9E7395AFCF4674D713 /* CapacitorDevice */ = { + isa = PBXNativeTarget; + buildConfigurationList = B6748D0B6EE0CF05C8087A5857933A81 /* Build configuration list for PBXNativeTarget "CapacitorDevice" */; + buildPhases = ( + 51ED48FD2A9F851232942F5F530B5570 /* Headers */, + C5553EB894B81E5A63C692D31EECC345 /* Sources */, + 722FE78FF358F7AAE37A384BB000F1B6 /* Frameworks */, + C6ADA7ED4F962A3C797107C14DE60DF5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 58352CE38AC2DCEBC0A717E86E4B127B /* PBXTargetDependency */, + ); + name = CapacitorDevice; + productName = CapacitorDevice; + productReference = 6D2F7843D7AFC1837FAD7630C9E5C504 /* CapacitorDevice */; + productType = "com.apple.product-type.framework"; + }; + 6CD167C7DA7BEBC0BB3AD67E5849503E /* CordovaPlugins */ = { + isa = PBXNativeTarget; + buildConfigurationList = 755E4481CBA5358BD1EF7CBB46F0467B /* Build configuration list for PBXNativeTarget "CordovaPlugins" */; + buildPhases = ( + 51349B10719AB3AF008252626D368078 /* Headers */, + 08EA4B79907897D79D21825497AF751C /* Sources */, + 00F8157BBDFF2F3D48CD04EE63B16DBC /* Frameworks */, + 66D1C34E79579D9E49CCD9CF78069874 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7724C846347EEAEDC7F230E33BD6E569 /* PBXTargetDependency */, + ); + name = CordovaPlugins; + productName = CordovaPlugins; + productReference = 905488119B59CE9E075BE7526F21DF2E /* CordovaPlugins */; + productType = "com.apple.product-type.framework"; + }; + 6FEE101BBF77F7C607B7C97D9E084732 /* CapacitorHaptics */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2946399E63289CBC30D3B2F6E3248CA5 /* Build configuration list for PBXNativeTarget "CapacitorHaptics" */; + buildPhases = ( + 079CD641776E3749A98F955F5517F0AF /* Headers */, + EFE536D36AAF96E5E74B63895A151480 /* Sources */, + 624208343F907A9B1D651FE638148D22 /* Frameworks */, + F2941057E1F8B933BE05CEBFF84957FC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 25C01A2929D9DE9F291FCCE1859099ED /* PBXTargetDependency */, + ); + name = CapacitorHaptics; + productName = CapacitorHaptics; + productReference = 4830CABC2D58B5C50BE6EFECA34B2895 /* CapacitorHaptics */; + productType = "com.apple.product-type.framework"; + }; + 7FDCE32DD1A6D7C943577EF51A41EDBC /* CapacitorStatusBar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9FFA14600443505327B959B64EFC65EB /* Build configuration list for PBXNativeTarget "CapacitorStatusBar" */; + buildPhases = ( + A298C0A033BDBB124AF8A2C0A540042F /* Headers */, + 44763FBBC93D8961327DAB0A4071601F /* Sources */, + 5660EEE242726A078B9C3743CAEF904D /* Frameworks */, + 5D30151A327B3A6265BDED7A17CEA8E6 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + FCDBA885F9B81695E626591942D87FED /* PBXTargetDependency */, + ); + name = CapacitorStatusBar; + productName = CapacitorStatusBar; + productReference = 37915BEC3E9EB6CD453C07348A49B51A /* CapacitorStatusBar */; + productType = "com.apple.product-type.framework"; + }; + 96E481B38FCD0337232020A4AC8546A6 /* CapacitorCamera */ = { + isa = PBXNativeTarget; + buildConfigurationList = 29A3C1E3FE15B83E9A6D53304B241280 /* Build configuration list for PBXNativeTarget "CapacitorCamera" */; + buildPhases = ( + 8E27DEC5506503D1EC782C82F5E00FC0 /* Headers */, + 4F47AA939B484E9FD8D78DD6359AF1C1 /* Sources */, + 0BFB73F34FDC31CBDC847A985E6AB460 /* Frameworks */, + 5C895C30727A057453937E83F6DF9A98 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C4B592777EACBC973C566C514B07F572 /* PBXTargetDependency */, + ); + name = CapacitorCamera; + productName = CapacitorCamera; + productReference = 026A691286A2668863FEACBF5E52AD02 /* CapacitorCamera */; + productType = "com.apple.product-type.framework"; + }; + 98C016A057FAEDD1CD09F30BD6212FED /* CapacitorGeolocation */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2DC5F99EC174216543B6EE3D3F0DA4B9 /* Build configuration list for PBXNativeTarget "CapacitorGeolocation" */; + buildPhases = ( + AAA79AE30FA19905E93000956A5B5EEC /* Headers */, + 757B362BD11633A40677B735AB778908 /* Sources */, + DA6AD4BB0D9695EF69E8CD8E1230C2E5 /* Frameworks */, + E92DCB17E5C214229F21E76B6D691347 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 1D12452EC1C018E35C599A7A3DAB50E3 /* PBXTargetDependency */, + ); + name = CapacitorGeolocation; + productName = CapacitorGeolocation; + productReference = 26969F9EEC9F4DDCD493EF0884E1EDEC /* CapacitorGeolocation */; + productType = "com.apple.product-type.framework"; + }; + 9D8F01D8A776A0B93D2D7FA97F949F10 /* CapacitorKeyboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8368D5B54E3C0B1B558427CB2BEE1D38 /* Build configuration list for PBXNativeTarget "CapacitorKeyboard" */; + buildPhases = ( + BFF22A16F82FB5C129F21F731131CFA6 /* Headers */, + 7F2FAA2336C89C36A38A99C03FD2E10F /* Sources */, + 11D5E82E7EE6FFCF79567DBDBF14036E /* Frameworks */, + 962ED9012F7EB76485D2D709F6C60597 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BA05F8389A641E80D55220C6AD1AF31F /* PBXTargetDependency */, + ); + name = CapacitorKeyboard; + productName = CapacitorKeyboard; + productReference = 43F80CDA05D5624A6B812123E023B138 /* CapacitorKeyboard */; + productType = "com.apple.product-type.framework"; + }; + A5EEC7C2AA5BC7C67CFA2C7578AB62C7 /* Google-Maps-iOS-Utils */ = { + isa = PBXNativeTarget; + buildConfigurationList = 82D7CD8994DDE64A1F20BCF3E8074646 /* Build configuration list for PBXNativeTarget "Google-Maps-iOS-Utils" */; + buildPhases = ( + DB864E7C384661B05C5DBF8879CD4CFC /* Headers */, + 7820A72D954ACB239F2A764EAA144A85 /* Sources */, + 7D05977341DAE84AF90A4DBD332464B3 /* Frameworks */, + 476D7C2C43F2A9E10DCFBDD078FF2D05 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 884924610A5416C407EABB950BFD7931 /* PBXTargetDependency */, + ); + name = "Google-Maps-iOS-Utils"; + productName = GoogleMapsUtils; + productReference = 5CA9E6FE438CE79CD76FA3B34CC95836 /* Google-Maps-iOS-Utils */; + productType = "com.apple.product-type.framework"; + }; + C73E89114A362E3F753D00E133E067A4 /* CapacitorGoogleMaps */ = { + isa = PBXNativeTarget; + buildConfigurationList = BAFFCAFEED83ADF8248B9E3737A3DDFB /* Build configuration list for PBXNativeTarget "CapacitorGoogleMaps" */; + buildPhases = ( + 0579112B0AAA5A56691C4C48F60882FD /* Headers */, + 3214833B3EEB4A86B6E1E094C2764C26 /* Sources */, + 2396B59BEB64175653DAC13785B2841A /* Frameworks */, + AEB66509089C7B41642D42F70B848D37 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 01E20A81AA8332B96A24666C3CB67837 /* PBXTargetDependency */, + 810EFE1DDABF41EBBE249010B60289DC /* PBXTargetDependency */, + CB269098E76BDD77247024EF3803DCF0 /* PBXTargetDependency */, + ); + name = CapacitorGoogleMaps; + productName = CapacitorGoogleMaps; + productReference = C38A8AD8FC5441BD1C2DF9FBCE84EEF4 /* CapacitorGoogleMaps */; + productType = "com.apple.product-type.framework"; + }; + CB5770103B01C83F4A2086CA033FE710 /* CapacitorNetwork */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2CAFE4131805627CA9BF6E4D274047E5 /* Build configuration list for PBXNativeTarget "CapacitorNetwork" */; + buildPhases = ( + 0B698083CD693938680B0914445D7C7E /* Headers */, + C21841256DF0060777D5AF925B12A67C /* Sources */, + 6ECF799787754FFEC8635946A3A5CA57 /* Frameworks */, + AB2B1B5F8B85AE95BE6C6A8CFB3DE849 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + CACF7885ED8B9C765C57A48CE787040C /* PBXTargetDependency */, + ); + name = CapacitorNetwork; + productName = CapacitorNetwork; + productReference = D1DBB07504DB9E35792933311691E212 /* CapacitorNetwork */; + productType = "com.apple.product-type.framework"; + }; + E1D15AC1C9791963802615898D3D7F93 /* CapacitorShare */ = { + isa = PBXNativeTarget; + buildConfigurationList = F0ECC4CDED300CF5FF22C68FEDF8BBA2 /* Build configuration list for PBXNativeTarget "CapacitorShare" */; + buildPhases = ( + A2D4845440E94F514071D8CCF5A62B2B /* Headers */, + 83D4BA56DDDA252BA07EA3B0A2049053 /* Sources */, + C78D95F44D3A18666F1088A2208B3135 /* Frameworks */, + 3A2319A3823DB48F6947EEA9DCF5401C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C17F3CDA25D9311D08B9D9A40E42898B /* PBXTargetDependency */, + ); + name = CapacitorShare; + productName = CapacitorShare; + productReference = E2E39542828F20D42B2F1F26422E261B /* CapacitorShare */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1240; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = D389DECFE76388D0F1B5A370AF9D4753 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */, + 0658A74B495D65D0FF7A51E6ECB58F24 /* CapacitorBrowser */, + 96E481B38FCD0337232020A4AC8546A6 /* CapacitorCamera */, + 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */, + 6307A6219BDF2F9E7395AFCF4674D713 /* CapacitorDevice */, + 98C016A057FAEDD1CD09F30BD6212FED /* CapacitorGeolocation */, + C73E89114A362E3F753D00E133E067A4 /* CapacitorGoogleMaps */, + 6FEE101BBF77F7C607B7C97D9E084732 /* CapacitorHaptics */, + 9D8F01D8A776A0B93D2D7FA97F949F10 /* CapacitorKeyboard */, + CB5770103B01C83F4A2086CA033FE710 /* CapacitorNetwork */, + E1D15AC1C9791963802615898D3D7F93 /* CapacitorShare */, + 291499FE70301076C46663647D6398CF /* CapacitorSplashScreen */, + 7FDCE32DD1A6D7C943577EF51A41EDBC /* CapacitorStatusBar */, + 6CD167C7DA7BEBC0BB3AD67E5849503E /* CordovaPlugins */, + A5EEC7C2AA5BC7C67CFA2C7578AB62C7 /* Google-Maps-iOS-Utils */, + E5B4BBC6DD552AC8943C7E22772FC1D3 /* GoogleMaps */, + 5C415F33D02A6F89DB713EFB9D75A3FB /* Pods-App */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3A2319A3823DB48F6947EEA9DCF5401C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3A97EFA7B71B3FFD86BAC45D5F6918B9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 96D3F327423D4E2F0DE379C4ADC8D57D /* native-bridge.js in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 476D7C2C43F2A9E10DCFBDD078FF2D05 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4B10A3A010B88EDF590D44E75CC60E4B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5C895C30727A057453937E83F6DF9A98 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5D30151A327B3A6265BDED7A17CEA8E6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 644C8AFD991A23778224966A4244443D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 66D1C34E79579D9E49CCD9CF78069874 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 962ED9012F7EB76485D2D709F6C60597 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB2B1B5F8B85AE95BE6C6A8CFB3DE849 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ACE05BC42071BA9656416486D84C1E7A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AEB66509089C7B41642D42F70B848D37 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C6ADA7ED4F962A3C797107C14DE60DF5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C86E8AF849C27EB7839E7FDB5525E730 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E92DCB17E5C214229F21E76B6D691347 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F2941057E1F8B933BE05CEBFF84957FC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + B4825B3E9214DE53DC601E96752818A5 /* [CP] Copy XCFrameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy XCFrameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 08EA4B79907897D79D21825497AF751C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 79ABBC221191712234ED3E113891B19A /* CordovaPlugins-dummy.m in Sources */, + 1858B98F10E32BAB0D1F40B7A1EB09D3 /* IonicCordovaCommon.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 25ED0EE81A8B4A574651F959B754171E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D450BFEFBD5B48A4F7C80F1E9E83995 /* AppDelegate.m in Sources */, + 99024253797CA0678DDC0A1727D5C4D5 /* CapacitorCordova-dummy.m in Sources */, + 55DB8736C100391C07EC302ED83F7360 /* CDVCommandDelegateImpl.m in Sources */, + 98B4266F272D6B9B75A108F75BA1E78B /* CDVConfigParser.m in Sources */, + DCC3CB0917086E71E9B8C08C8444BBCE /* CDVInvokedUrlCommand.m in Sources */, + D7ECF7252B3941DF259B98141C22E944 /* CDVPlugin.m in Sources */, + AC12337297C335A8DDC9A7595F72869B /* CDVPlugin+Resources.m in Sources */, + 663EC80344775E94346D46C52F09A581 /* CDVPluginManager.m in Sources */, + 9E8190ED462A1A06C60D58147D93E2BA /* CDVPluginResult.m in Sources */, + 081025F26704EB6998780E7E6CBFF9A3 /* CDVURLProtocol.m in Sources */, + 21C355EB925D8BAB925752DC4E379D3F /* CDVViewController.m in Sources */, + 0E60D7D984212710E405718C7464DC10 /* NSDictionary+CordovaPreferences.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3214833B3EEB4A86B6E1E094C2764C26 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB6914D46E71BFA1C5A14D4F0C2651C3 /* CapacitorGoogleMaps-dummy.m in Sources */, + F0984728155C4DBC14D99D60C1CAFFCC /* CapacitorGoogleMapsPlugin.m in Sources */, + E16951AE90CBAA64592C058D40381B75 /* CapacitorGoogleMapsPlugin.swift in Sources */, + 9302F1C37C3DC40F93542B42F8AE3D8E /* Circle.swift in Sources */, + 995390058DA585F0DD028801ED05CFC0 /* GoogleMapCameraConfig.swift in Sources */, + 61B5066837F6F65A4D788A81CAEC9C4A /* GoogleMapConfig.swift in Sources */, + F3C0778F4F39934FDE075F6276D7F285 /* GoogleMapErrors.swift in Sources */, + 69AB76DB65DC04524E63DDB8490B8015 /* GoogleMapPadding.swift in Sources */, + D69ADE25CE381E125B9CFD31374D2049 /* Map.swift in Sources */, + F95A97664EABD95464FFA134A98902D5 /* Marker.swift in Sources */, + 147BD7D0BF9FE93BBEF7C3F6C514BEF6 /* Polygon.swift in Sources */, + D816DAAACBF1CE12863415BAA2530637 /* Polyline.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 44763FBBC93D8961327DAB0A4071601F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DDA8C7E04898E9B184993EA8DFC3DF95 /* CapacitorStatusBar-dummy.m in Sources */, + D7E204EAD54BD7C5DC386C378B4EC7AC /* StatusBarPlugin.m in Sources */, + 71947FB57A6467FEEEC32F25F7966EF9 /* StatusBarPlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F47AA939B484E9FD8D78DD6359AF1C1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D488CA91F4332BD3D2FECE6FF0426F8 /* CameraExtensions.swift in Sources */, + 49194F1EF13766F98AAD12725002EDB9 /* CameraPlugin.m in Sources */, + FD65D09CD8E1B2EFCF2853CF0808B5E5 /* CameraPlugin.swift in Sources */, + F61ADB8574B303F20F69A0AA821543F2 /* CameraTypes.swift in Sources */, + 0DFD7C36AAF90695FF3D8FBFFA867EA0 /* CapacitorCamera-dummy.m in Sources */, + 191EEFC8E8925D5083FE134EF3B15EAF /* ImageSaver.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 757B362BD11633A40677B735AB778908 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 065ED0B01890DE177532373C44D71E5F /* CapacitorGeolocation-dummy.m in Sources */, + B4CF710D2B49C9CF8808388C2AA16348 /* GeolocationPlugin.m in Sources */, + 3AD07A85B1A05A0D535F7FF92B270CD7 /* GeolocationPlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7820A72D954ACB239F2A764EAA144A85 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9CCF8AD2091EB13B3F2D64CBDF45AA39 /* CatesianPoint.swift in Sources */, + 9AE38FA691B4024D9EA73FAE346110E2 /* CLLocationCoordinate2D+GeometryUtils.swift in Sources */, + 502749DE896F21BB7AE21E27A73D9BF9 /* GMSMarker+GMUClusteritem.m in Sources */, + 1CAC79654C0DAA8F91B1DE47E3B4D119 /* GMSPath+GeometryUtils.swift in Sources */, + 32E7CD43EAC0185EC4AA9E78016958FA /* GMSPolygon+GeometryUtils.swift in Sources */, + 9713AF64AFDFDF8B8AB94C201EB369FC /* GMSPolyline+GeometryUtils.swift in Sources */, + D1F90202878B31B6D0C3F17984C380D8 /* GMUClusterManager.m in Sources */, + 1770B819855F47E6A008AF2BA210A9DD /* GMUDefaultClusterIconGenerator.m in Sources */, + 4C8F5EEE4BEF65099ED8D914638FB90D /* GMUDefaultClusterRenderer.m in Sources */, + 781FBD62488C1EDBF0520D764219B84B /* GMUFeature.m in Sources */, + DBE546F784F260C0DB1CFB2A07516406 /* GMUGeoJSONParser.m in Sources */, + 7F0FEBB203126D6E2F549386613DACBD /* GMUGeometryCollection.m in Sources */, + 7FAE859B70FB76DF6BD5179947297986 /* GMUGeometryRenderer.m in Sources */, + 53D5525A5167C3B1020D92CFDC0E0865 /* GMUGradient.m in Sources */, + FFB15768D21DD974328C4DE4E11F6DFF /* GMUGridBasedClusterAlgorithm.m in Sources */, + A9B2300A35B7F1C963BE04E9C13BAB4C /* GMUGroundOverlay.m in Sources */, + 91E9337139B42220940CA378D7CFE659 /* GMUHeatmapTileLayer.m in Sources */, + A2086C456A3EDADBACC3761D05E9DC44 /* GMUKMLParser.m in Sources */, + B2BE8240F5351F12387692AF9BCC8934 /* GMULineString.m in Sources */, + 9AB8083E9E575255E0DAAD58952434B5 /* GMUNonHierarchicalDistanceBasedAlgorithm.m in Sources */, + 0AC46A46022C148F96FDC41E7A6097DD /* GMUPair.m in Sources */, + 7F37801CB70CFE56052C3552BDBA71ED /* GMUPlacemark.m in Sources */, + 8A0C334E73B68873BCCDFFE506615DF5 /* GMUPoint.m in Sources */, + 713462FF015B23A8D919DA3796B83150 /* GMUPolygon.m in Sources */, + 1E82163CEA88D2E17DEFA5D67D296A87 /* GMUSimpleClusterAlgorithm.m in Sources */, + F66C6237C6B3602077578FF86111D74F /* GMUStaticCluster.m in Sources */, + 816322BD077A1EA8C57B197E3850B582 /* GMUStyle.m in Sources */, + 2431F8BA6986EB86009C54DF67D6BBE2 /* GMUStyleMap.m in Sources */, + 06D783DC8A271D7A3D58C20B48FF09A1 /* GMUWeightedLatLng.m in Sources */, + FE6B14B38C8C253F743E65233F1E76A6 /* GMUWrappingDictionaryKey.m in Sources */, + 202C886B909C3DC7B51B5ED96127FFED /* Google-Maps-iOS-Utils-dummy.m in Sources */, + 216730E9FF9DBCFB0B7280BD07413E72 /* GQTPointQuadTree.m in Sources */, + 461EF08FF98EE2C03A339604EF1DFD00 /* GQTPointQuadTreeChild.m in Sources */, + BCAA003B2273DF2EBCDBB9D82383DE71 /* HeatMapInterpolationPoints.swift in Sources */, + B1A20ABB57AC388103EF9CF1DEFE2587 /* LatLngRadians.swift in Sources */, + F98C5A9BE59EB4B89D80DEB2A5360C2F /* MapPoint.swift in Sources */, + 0750B75E6567F5229AC7B5B0005A1CD4 /* Math.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7F2FAA2336C89C36A38A99C03FD2E10F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 560BB928017E8FD666B31305A47EDF25 /* CapacitorKeyboard-dummy.m in Sources */, + 437FD4B4855E27A546674E0477CB1376 /* Keyboard.m in Sources */, + 22D42E128E793362E67DB460FB40E273 /* KeyboardPlugin.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 83D4BA56DDDA252BA07EA3B0A2049053 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5AD2005CCF0C7FF1F32F4D27D1B5386A /* CapacitorShare-dummy.m in Sources */, + 5C7C9410D13B93750F94234D20989759 /* SharePlugin.m in Sources */, + C3E2024442108C142F08063780FD8085 /* SharePlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 98CB21E7564328671363EEDDD9546DE8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C2A0ECBBFE11D2CCD2F367E6EB73B7B7 /* Browser.swift in Sources */, + F7294FDDB643818297E82B7FFA224146 /* BrowserPlugin.m in Sources */, + C9E9BA9DAD0D6744F35B217DE9FA4FC5 /* BrowserPlugin.swift in Sources */, + 516511CAD66CA580E34F7B1DB1F29603 /* CapacitorBrowser-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C21841256DF0060777D5AF925B12A67C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ED096A12813F347D9D272C1B056A6E07 /* CapacitorNetwork-dummy.m in Sources */, + 5979383B8E9D0EF4E7D5F356B09E3BA5 /* Network.swift in Sources */, + C46282F9A520E05B36E47081C8725F8C /* NetworkPlugin.m in Sources */, + 302C8924EF276468214DBFFE726A9963 /* NetworkPlugin.swift in Sources */, + 4C678EA9AA556FF530CB71FCA9195448 /* Reachability.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C5553EB894B81E5A63C692D31EECC345 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB15A29A8322F8AAEBA07673C071E340 /* CapacitorDevice-dummy.m in Sources */, + 0CD2D16BDD3369A30FDC20B7A1F63ACA /* Device.swift in Sources */, + 1D0487BB228E844DDA6F99247B8C7104 /* DevicePlugin.m in Sources */, + CC696FEA28AC89467E42A73D27A6182C /* DevicePlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D65D99A7BCEA88289352A6AAC7DE1D7A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9AAA0F553177958323214F8FDED3DA5F /* CapacitorSplashScreen-dummy.m in Sources */, + 62EB0A9FAEB75FAEA40075C91CAA4E31 /* SplashScreen.swift in Sources */, + F1983368D6D3506F3CD64A123A5BBE06 /* SplashScreenConfig.swift in Sources */, + 19A0703E665BF96881E89598E78AD76F /* SplashScreenPlugin.m in Sources */, + 6AEF8CDA8472B94DFE638264F02BAE89 /* SplashScreenPlugin.swift in Sources */, + F01D82C9BF37A995C8DE1E63BD1EBE48 /* SplashScreenSettings.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E38E448A983DF2A6EE39892C2D30CD92 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C98F61E51DACB8D068950DA5576F7E5 /* Pods-App-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E40A7F65ED5B2118839B958E313D9DDA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1F42EA990BB55F7B7B530410028CE16C /* AppUUID.swift in Sources */, + 87614EECFCD7508D55616574FE193539 /* Array+Capacitor.swift in Sources */, + 6B78161F1A9F83127C601030EA808C3A /* Capacitor-dummy.m in Sources */, + 4231D93F10E5ED3B70E061F8FE4064C7 /* CapacitorBridge.swift in Sources */, + 8043B6E2C6676504E50C87B7DADC8C17 /* CapacitorCookieManager.swift in Sources */, + 8082FC00A5D75BD075B1ABF368351A49 /* CapacitorCookies.swift in Sources */, + CB594FE817D44935C5E0EF08588FF44F /* CapacitorExtension.swift in Sources */, + 54927217C37B4E72D7AF0F89D18CE50C /* CapacitorHttp.swift in Sources */, + 488416DF903392C666B25E2EF0997BD5 /* CapacitorUrlRequest.swift in Sources */, + 8AF5B0A3E35BDAE31C8A3387438AB263 /* CAPApplicationDelegateProxy.swift in Sources */, + 4538D37504AB52487A09AA16330D0926 /* CAPBridge.swift in Sources */, + EB856AFCC0F5204A54BE5D4414948A14 /* CAPBridgeDelegate.swift in Sources */, + B2F923B9EAC780D88604EBD65D23D778 /* CAPBridgedJSTypes.m in Sources */, + C112889698B959D30D3B825C6DBD595D /* CAPBridgedPlugin+getMethod.swift in Sources */, + 1E68C93743AA2D068D6F1B18CC9C8E7E /* CAPBridgeProtocol.swift in Sources */, + C8679F30E9C7BC3076D666B90998E37C /* CAPBridgeViewController.swift in Sources */, + E046F53AA90DEDBE54700D9AE2CD2C8E /* CAPBridgeViewController+CDVScreenOrientationDelegate.m in Sources */, + F4989A71C1E53776EA6DB90F88F303A1 /* CAPFile.swift in Sources */, + 9411E5BB9430984782049C5FF5947E14 /* CAPInstanceConfiguration.m in Sources */, + D3486FE98873AEF44EC380E606C0FD31 /* CAPInstanceConfiguration.swift in Sources */, + A8905C0DEBCDF0F11C48A0C3E014C663 /* CAPInstanceDescriptor.m in Sources */, + 7A86C60BF39D22212BA7AFCD0ED8D213 /* CAPInstanceDescriptor.swift in Sources */, + 192F71942DC4AAF150F2CA05DD4955AC /* CAPInstancePlugin.swift in Sources */, + CCD0F26C32D5431A7DC4F0A59AC3FFE4 /* CAPLog.swift in Sources */, + 33F5C1E93ACF2D15DD385250FBD0E64F /* CAPNotifications.swift in Sources */, + C7666C140F13EF3890717569C0875304 /* CAPPlugin.m in Sources */, + 4155E4F333ED0BE75301B6295F0026F8 /* CAPPlugin+LoadInstance.swift in Sources */, + 5AD07F69F2BE3C5D7F028CE18553E5A6 /* CAPPluginCall.m in Sources */, + C3259BE13C3C269B625DA4EF70CA2934 /* CAPPluginCall.swift in Sources */, + DFF93D7CA4DABF46314CCF87B5B08741 /* CAPPluginMethod.m in Sources */, + A2510958BDA25A72D2D32B2DF0A073AA /* CAPWebView.swift in Sources */, + 618C0E001EF1B752EEB9CACB44EEC536 /* Console.swift in Sources */, + 046F6C0B861C6F38E5C231473451B12A /* Data+Capacitor.swift in Sources */, + 9485DCE8608360E9ABF3D033E025FAF7 /* DefaultPlugins.m in Sources */, + 96DBC9B49EE97F7A7FB06746186CA129 /* DocLinks.swift in Sources */, + 9715B2FF437B2449E1A1C6CD03A39D5D /* HttpRequestHandler.swift in Sources */, + 04EF9C5150A365B46562E613EE797D1A /* JS.swift in Sources */, + 3427F82054E36249530B7ECFE73494A6 /* JSExport.swift in Sources */, + 2F45D122302FB80D2210D91EB03960DA /* JSTypes.swift in Sources */, + 899DAC655BA73074EECE083A2EE14469 /* KeyPath.swift in Sources */, + E7AA4AF69C1828BCCA6E4557BD0D49F8 /* NotificationHandlerProtocol.swift in Sources */, + 26FB3C2A729B5AC0895DA82EA28975E1 /* NotificationRouter.swift in Sources */, + 4918731912A0E9D7779547119D8564C8 /* PluginCallResult.swift in Sources */, + 8ED7EABCB34E69DE88D6764F34CB06BE /* PluginConfig.swift in Sources */, + FF056C585DEEA70CAEB295266D9748DE /* Router.swift in Sources */, + 062C880AE7C05302158B2978CE0F7633 /* TmpViewController.swift in Sources */, + 6388BC9CDDEF9EC7F0814D4C06A6D19B /* UIColor.swift in Sources */, + 0E297980DC3AB824BB8E2DA800EEE77E /* UIStatusBarManager+CAPHandleTapAction.m in Sources */, + B55C5B9D96842063EECE8152F00AA95B /* WebView.swift in Sources */, + 992F6182768FDEA629ED9B03FC7C408E /* WebViewAssetHandler.swift in Sources */, + 551FD85F7C077DA8F39242156C1857DD /* WebViewDelegationHandler.swift in Sources */, + B2BD10AE4B3884B6BFF255203C7964BD /* WKWebView+Capacitor.m in Sources */, + 15FBBA3A7B58AC956DF455A76E8B4B69 /* WKWebView+Capacitor.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EFE536D36AAF96E5E74B63895A151480 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6466DF32F17DD849F28CAF82CA4479F3 /* CapacitorHaptics-dummy.m in Sources */, + 17041E4E28F1BDDE6E0E44BB52CE21A3 /* Haptics.swift in Sources */, + A1AFF75D9CFE8A8F741C29CBFE918EE1 /* HapticsPlugin.m in Sources */, + 8D3036D67328709DF040A77DB817BF87 /* HapticsPlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 01E20A81AA8332B96A24666C3CB67837 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = 7E7EDB38230BEA7BD27C5425FB662B42 /* PBXContainerItemProxy */; + }; + 10377F377923DCF71B5C7CC08D0E8070 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = F2CC4559BEEB24E4B12659704B04AFC9 /* PBXContainerItemProxy */; + }; + 1D12452EC1C018E35C599A7A3DAB50E3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = 25390978BB39ED907B9446B31B25A170 /* PBXContainerItemProxy */; + }; + 20D18CFD18E4F73169CB55F60BA0B7A1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Google-Maps-iOS-Utils"; + target = A5EEC7C2AA5BC7C67CFA2C7578AB62C7 /* Google-Maps-iOS-Utils */; + targetProxy = 465CE859A28D2F11FBED57784FB7E7B6 /* PBXContainerItemProxy */; + }; + 25C01A2929D9DE9F291FCCE1859099ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = CB0333D308DF64D06802170BBB6E2D09 /* PBXContainerItemProxy */; + }; + 43EDEDA087749D44F7C6CDD286665523 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorNetwork; + target = CB5770103B01C83F4A2086CA033FE710 /* CapacitorNetwork */; + targetProxy = 710DEE85CC2470AA01C1C5CFDC6F14FF /* PBXContainerItemProxy */; + }; + 58352CE38AC2DCEBC0A717E86E4B127B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = 8C0814C64A5CEFB10E0D49B5620F45AC /* PBXContainerItemProxy */; + }; + 58AEE202A564A1DD96A566E425410F27 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorGeolocation; + target = 98C016A057FAEDD1CD09F30BD6212FED /* CapacitorGeolocation */; + targetProxy = 955647A073AA8204E77FC439FB360309 /* PBXContainerItemProxy */; + }; + 67B1E4F63CA60BDBFF3E349187442E43 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorCordova; + target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */; + targetProxy = 8726995A63317B1F45BAE3205C936405 /* PBXContainerItemProxy */; + }; + 7724C846347EEAEDC7F230E33BD6E569 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorCordova; + target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */; + targetProxy = 02B20DFF560AF6C1A06120622F762250 /* PBXContainerItemProxy */; + }; + 810EFE1DDABF41EBBE249010B60289DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Google-Maps-iOS-Utils"; + target = A5EEC7C2AA5BC7C67CFA2C7578AB62C7 /* Google-Maps-iOS-Utils */; + targetProxy = 508D2B90BC649A3B6BF083EDA3D5E462 /* PBXContainerItemProxy */; + }; + 829A97384735389A3C405DF57DEFEC7D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = 4BC93A3C06483BA00F3845ED8C88BE16 /* PBXContainerItemProxy */; + }; + 857C531D8A4BE3BA7DCC2505E256161B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = GoogleMaps; + target = E5B4BBC6DD552AC8943C7E22772FC1D3 /* GoogleMaps */; + targetProxy = A67317B70E0200351C1EE1280E8693AC /* PBXContainerItemProxy */; + }; + 884924610A5416C407EABB950BFD7931 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = GoogleMaps; + target = E5B4BBC6DD552AC8943C7E22772FC1D3 /* GoogleMaps */; + targetProxy = 993D907D9AEC68F3A5F259924862F82E /* PBXContainerItemProxy */; + }; + 9B4C08BEE8A85837D0820C43D47B8E21 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorShare; + target = E1D15AC1C9791963802615898D3D7F93 /* CapacitorShare */; + targetProxy = EC8026CB337A33652DB6B91210DBC058 /* PBXContainerItemProxy */; + }; + A5AB669C08BF79AB5F04468DDE694DF0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CordovaPlugins; + target = 6CD167C7DA7BEBC0BB3AD67E5849503E /* CordovaPlugins */; + targetProxy = C2DBDE2027C470F7912894CE8A32849C /* PBXContainerItemProxy */; + }; + A74C6D3890FB15CFC5CD540835F20DE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorSplashScreen; + target = 291499FE70301076C46663647D6398CF /* CapacitorSplashScreen */; + targetProxy = E33ADE29ACF6EA97AD17A54DBE264A80 /* PBXContainerItemProxy */; + }; + AE8BB4E09C16F32536BEE40D09E1C098 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorGoogleMaps; + target = C73E89114A362E3F753D00E133E067A4 /* CapacitorGoogleMaps */; + targetProxy = 5EE1A3D951F4F198868AF006EFE95315 /* PBXContainerItemProxy */; + }; + BA05F8389A641E80D55220C6AD1AF31F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = BD3ED19715A0E0B3D399D701EEBB82E3 /* PBXContainerItemProxy */; + }; + BCD4108DC9CB83131E62A0981E9ED92A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorCamera; + target = 96E481B38FCD0337232020A4AC8546A6 /* CapacitorCamera */; + targetProxy = 8479FB2950698CEBE67EECD6D67A92AE /* PBXContainerItemProxy */; + }; + C17F3CDA25D9311D08B9D9A40E42898B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = D6C24742860727503F3D5C7AC0F21199 /* PBXContainerItemProxy */; + }; + C4B592777EACBC973C566C514B07F572 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = B3038C06B63C8B6C8C15B36177FB87C8 /* PBXContainerItemProxy */; + }; + CACF7885ED8B9C765C57A48CE787040C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = 69D2A0DA08335BE7B495ACBACD1E2E0F /* PBXContainerItemProxy */; + }; + CB269098E76BDD77247024EF3803DCF0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = GoogleMaps; + target = E5B4BBC6DD552AC8943C7E22772FC1D3 /* GoogleMaps */; + targetProxy = E05BEC119FC95816393D931F91D3745C /* PBXContainerItemProxy */; + }; + D3356A9306A82CA3386F97E6E474A426 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorBrowser; + target = 0658A74B495D65D0FF7A51E6ECB58F24 /* CapacitorBrowser */; + targetProxy = A35F6B7DC49D381F4DFA65DEBA316BCC /* PBXContainerItemProxy */; + }; + D79D0C8EA495E1F66ADED9CF8B5D42A5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorStatusBar; + target = 7FDCE32DD1A6D7C943577EF51A41EDBC /* CapacitorStatusBar */; + targetProxy = A7667665425B84AE42AA609E596079E6 /* PBXContainerItemProxy */; + }; + DE0FCBD4AB82C64A8631C03620BA5007 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorDevice; + target = 6307A6219BDF2F9E7395AFCF4674D713 /* CapacitorDevice */; + targetProxy = 3D09AAF9E6FE474275AE46520889C1B8 /* PBXContainerItemProxy */; + }; + F4C1FB7E9B3378B18C25F75738DD3611 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorCordova; + target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */; + targetProxy = E6962FA12EEE2DB98AC72698CC4D2E79 /* PBXContainerItemProxy */; + }; + F645E55FAD67AEF8B9EB7F93285BD507 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorKeyboard; + target = 9D8F01D8A776A0B93D2D7FA97F949F10 /* CapacitorKeyboard */; + targetProxy = A7FC83454C4156B45A6E7295154988F7 /* PBXContainerItemProxy */; + }; + F952C857E87FF0B6C4220AC7A862516B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CapacitorHaptics; + target = 6FEE101BBF77F7C607B7C97D9E084732 /* CapacitorHaptics */; + targetProxy = ED4C8A9DCDEC1AD19CDADE3E55A8EFBC /* PBXContainerItemProxy */; + }; + FCDBA885F9B81695E626591942D87FED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = AA6B97796EC9C2119EAB3CF9503EF829 /* PBXContainerItemProxy */; + }; + FDB597CF827598E54A57B7C833745F46 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Capacitor; + target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */; + targetProxy = B4E86DA5C9EEB57D5E68F15C16C4C2C8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 12AABF1BD47F4C30131648E9195E89F2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 56F3A033B0D2B0425A927B811853F45A /* CapacitorKeyboard.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard.modulemap"; + PRODUCT_MODULE_NAME = CapacitorKeyboard; + PRODUCT_NAME = CapacitorKeyboard; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 235D07C2844949078AFCC6989981864A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 14883F2A4312E21CEB6CB4E1C77D17D7 /* CapacitorSplashScreen.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.modulemap"; + PRODUCT_MODULE_NAME = CapacitorSplashScreen; + PRODUCT_NAME = CapacitorSplashScreen; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 29E77946DA13D4D5C29FEA670E96A651 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9971763490737DB927EF530F4C5BA9CA /* CapacitorCordova.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova.modulemap"; + PRODUCT_MODULE_NAME = Cordova; + PRODUCT_NAME = Cordova; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 2C4E8D428C032A6B92FDBFBA6CC89140 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 08225397E55AEF41187194826AA3425E /* CapacitorGeolocation.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation.modulemap"; + PRODUCT_MODULE_NAME = CapacitorGeolocation; + PRODUCT_NAME = CapacitorGeolocation; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 315231B00627A72E2052E37962CC2ADE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2F4B8C0D5BB2F86DEFB151C1AC85BC91 /* Google-Maps-iOS-Utils.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap"; + PRODUCT_MODULE_NAME = GoogleMapsUtils; + PRODUCT_NAME = GoogleMapsUtils; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 417FBC1D965C6F9A47C820BC78AB7D72 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7B8A48D4F4E78F53898574B2C2A07227 /* CapacitorStatusBar.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar.modulemap"; + PRODUCT_MODULE_NAME = CapacitorStatusBar; + PRODUCT_NAME = CapacitorStatusBar; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4889C92D04224D57351C5EE1E01F4465 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 29AC238BABAD0D91D9053DFE88DD0E47 /* CapacitorStatusBar.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorStatusBar/CapacitorStatusBar.modulemap"; + PRODUCT_MODULE_NAME = CapacitorStatusBar; + PRODUCT_NAME = CapacitorStatusBar; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DF0B9067639ACB33013024B20A70010 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 895922265FE97E01F8AEF40F9C7AC184 /* CapacitorGoogleMaps.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.modulemap"; + PRODUCT_MODULE_NAME = CapacitorGoogleMaps; + PRODUCT_NAME = CapacitorGoogleMaps; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4EF8A7C408444383F985B81BB7E97DEA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1A58D85D43E52C202A79D66B8152A90C /* CapacitorDevice.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorDevice/CapacitorDevice-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorDevice/CapacitorDevice-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorDevice/CapacitorDevice.modulemap"; + PRODUCT_MODULE_NAME = CapacitorDevice; + PRODUCT_NAME = CapacitorDevice; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 52F05D55A6EF19F1F5F81744F68C6C33 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B8BD028BE371DAC274BEA120C28FE783 /* CapacitorShare.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorShare/CapacitorShare-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorShare/CapacitorShare-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorShare/CapacitorShare.modulemap"; + PRODUCT_MODULE_NAME = CapacitorShare; + PRODUCT_NAME = CapacitorShare; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 55827CF0B4EB86326A43D0368E553CC0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4803E19B5777C450F0F4D729C94EF25 /* Google-Maps-iOS-Utils.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap"; + PRODUCT_MODULE_NAME = GoogleMapsUtils; + PRODUCT_NAME = GoogleMapsUtils; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 6A0F013127B27D8BB23108585462857C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 571D9B3157913DDE9A857A069A334446 /* CapacitorGoogleMaps.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.modulemap"; + PRODUCT_MODULE_NAME = CapacitorGoogleMaps; + PRODUCT_NAME = CapacitorGoogleMaps; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7412C416CAC2AB87F9C8D14FB25ACE0A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6627116E9BE9360EC71B1F0B2C66A144 /* CapacitorNetwork.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorNetwork/CapacitorNetwork-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorNetwork/CapacitorNetwork-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorNetwork/CapacitorNetwork.modulemap"; + PRODUCT_MODULE_NAME = CapacitorNetwork; + PRODUCT_NAME = CapacitorNetwork; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + 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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 91DC40239CD443CB269F1CC7E8154132 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2D57C5D51C30D39B525B8AC846A00DD0 /* Pods-App.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-App/Pods-App-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-App/Pods-App.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 94D82A4EB5B408CDB7ABFFA60606F44A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3A0CA97224EE732BAD4B509F46EA3B37 /* CapacitorCordova.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova.modulemap"; + PRODUCT_MODULE_NAME = Cordova; + PRODUCT_NAME = Cordova; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9972596614DF03AC70123A2F5CB84AEA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7E4C26A509A4D9217810697566ED9FCD /* Capacitor.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Capacitor/Capacitor-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Capacitor/Capacitor-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Capacitor/Capacitor.modulemap"; + PRODUCT_MODULE_NAME = Capacitor; + PRODUCT_NAME = Capacitor; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9B5927CE8F285477EBCAF50132FB975E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F0191BC2A4F137F8DAE5B14F2EDEFF04 /* GoogleMaps.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 9E406C6AAF85E580207CD97B0044DEAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + 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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + A8FB62F5F674B0930639DEC59B1C764B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4BB9D1B71302E4C69FB33C482D97FC88 /* Capacitor.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Capacitor/Capacitor-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Capacitor/Capacitor-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Capacitor/Capacitor.modulemap"; + PRODUCT_MODULE_NAME = Capacitor; + PRODUCT_NAME = Capacitor; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AF53F3DAF2EE18B3444722BBA404A895 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 211EFDDAD4E27E8543BE96E307D87912 /* GoogleMaps.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B706D58CAA3E003010FD20EAA68A2A89 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2D7B63343CABE9D2A5727CFEA05D5E92 /* CapacitorShare.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorShare/CapacitorShare-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorShare/CapacitorShare-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorShare/CapacitorShare.modulemap"; + PRODUCT_MODULE_NAME = CapacitorShare; + PRODUCT_NAME = CapacitorShare; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BD8A15F142E4FD78C2C03B95F32A0C59 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 853A5EF09F799AC6838BF8087EF1ECFB /* CapacitorNetwork.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorNetwork/CapacitorNetwork-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorNetwork/CapacitorNetwork-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorNetwork/CapacitorNetwork.modulemap"; + PRODUCT_MODULE_NAME = CapacitorNetwork; + PRODUCT_NAME = CapacitorNetwork; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BE06EDF41AE4D4678779BFEB3F528F02 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AD5ED62A6376DA42265D67BFD025E927 /* CapacitorHaptics.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorHaptics/CapacitorHaptics-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorHaptics/CapacitorHaptics-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorHaptics/CapacitorHaptics.modulemap"; + PRODUCT_MODULE_NAME = CapacitorHaptics; + PRODUCT_NAME = CapacitorHaptics; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BF7FD508C2EC1AEDFA82390A67F02DAB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4253EC398439557396E16BC146796793 /* CapacitorHaptics.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorHaptics/CapacitorHaptics-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorHaptics/CapacitorHaptics-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorHaptics/CapacitorHaptics.modulemap"; + PRODUCT_MODULE_NAME = CapacitorHaptics; + PRODUCT_NAME = CapacitorHaptics; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C2A9C190B58FFDD0FE73FBBBB818DA65 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 161E9590D153254C243AD67B36F1E178 /* CapacitorSplashScreen.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.modulemap"; + PRODUCT_MODULE_NAME = CapacitorSplashScreen; + PRODUCT_NAME = CapacitorSplashScreen; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CA4FF1458BC12A0F8D9210DF51997EA6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B3A3F21790AFC74F553A22503C2F2DC5 /* CapacitorKeyboard.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorKeyboard/CapacitorKeyboard.modulemap"; + PRODUCT_MODULE_NAME = CapacitorKeyboard; + PRODUCT_NAME = CapacitorKeyboard; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CF258EBECC82F195DC9F5EFDA39568C6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 854C770043773090F19C80F080A39B6E /* CapacitorBrowser.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorBrowser/CapacitorBrowser-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorBrowser/CapacitorBrowser-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorBrowser/CapacitorBrowser.modulemap"; + PRODUCT_MODULE_NAME = CapacitorBrowser; + PRODUCT_NAME = CapacitorBrowser; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DC981A640316AC8D88B983F81491FD1D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B5A3F6811C7F1A8CF72C97ADB548CC88 /* CordovaPlugins.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CordovaPlugins/CordovaPlugins-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CordovaPlugins/CordovaPlugins-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CordovaPlugins/CordovaPlugins.modulemap"; + PRODUCT_MODULE_NAME = CordovaPlugins; + PRODUCT_NAME = CordovaPlugins; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DDA5A6C08240D2B2D2E8B7FBBAEFD82C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A4F6218899774AB9C7DF533383097E0D /* CapacitorBrowser.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorBrowser/CapacitorBrowser-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorBrowser/CapacitorBrowser-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorBrowser/CapacitorBrowser.modulemap"; + PRODUCT_MODULE_NAME = CapacitorBrowser; + PRODUCT_NAME = CapacitorBrowser; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E2F33563CBCA2C33B3618E8F450B7130 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F5514F3F025BE9A283A2AE3808837DC1 /* CapacitorDevice.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorDevice/CapacitorDevice-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorDevice/CapacitorDevice-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorDevice/CapacitorDevice.modulemap"; + PRODUCT_MODULE_NAME = CapacitorDevice; + PRODUCT_NAME = CapacitorDevice; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E30715A4DB293F9F972C76482F8C66CE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F83C3C39290D8FF45A0D193927909E8C /* CapacitorCamera.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorCamera/CapacitorCamera-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorCamera/CapacitorCamera-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorCamera/CapacitorCamera.modulemap"; + PRODUCT_MODULE_NAME = CapacitorCamera; + PRODUCT_NAME = CapacitorCamera; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E32E9C9C33E5D116B73582BAA45C9062 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9F6A949BC3827E6CC60552C6BB92558 /* CapacitorGeolocation.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorGeolocation/CapacitorGeolocation.modulemap"; + PRODUCT_MODULE_NAME = CapacitorGeolocation; + PRODUCT_NAME = CapacitorGeolocation; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + E7F7EF40836A619BB0CDACB21A1A47A4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4564580AA215CE6C361D09A521831141 /* CordovaPlugins.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CordovaPlugins/CordovaPlugins-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CordovaPlugins/CordovaPlugins-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CordovaPlugins/CordovaPlugins.modulemap"; + PRODUCT_MODULE_NAME = CordovaPlugins; + PRODUCT_NAME = CordovaPlugins; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + ED94CA7F73160136776EA7D129DD9F52 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6A176E2A43FAA5336CB0CE809687AF12 /* CapacitorCamera.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/CapacitorCamera/CapacitorCamera-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CapacitorCamera/CapacitorCamera-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CapacitorCamera/CapacitorCamera.modulemap"; + PRODUCT_MODULE_NAME = CapacitorCamera; + PRODUCT_NAME = CapacitorCamera; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FE943AA7BCDEC261E6E8DFE74311FCA4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0C153CE484A67EFF2491D31D200C47F6 /* Pods-App.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-App/Pods-App-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-App/Pods-App.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 20FD8A6D0E9020CA6551C2DF3E4A1429 /* Build configuration list for PBXNativeTarget "CapacitorSplashScreen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 235D07C2844949078AFCC6989981864A /* Debug */, + C2A9C190B58FFDD0FE73FBBBB818DA65 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2946399E63289CBC30D3B2F6E3248CA5 /* Build configuration list for PBXNativeTarget "CapacitorHaptics" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BE06EDF41AE4D4678779BFEB3F528F02 /* Debug */, + BF7FD508C2EC1AEDFA82390A67F02DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 29A3C1E3FE15B83E9A6D53304B241280 /* Build configuration list for PBXNativeTarget "CapacitorCamera" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E30715A4DB293F9F972C76482F8C66CE /* Debug */, + ED94CA7F73160136776EA7D129DD9F52 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2CAFE4131805627CA9BF6E4D274047E5 /* Build configuration list for PBXNativeTarget "CapacitorNetwork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7412C416CAC2AB87F9C8D14FB25ACE0A /* Debug */, + BD8A15F142E4FD78C2C03B95F32A0C59 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2DC5F99EC174216543B6EE3D3F0DA4B9 /* Build configuration list for PBXNativeTarget "CapacitorGeolocation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C4E8D428C032A6B92FDBFBA6CC89140 /* Debug */, + E32E9C9C33E5D116B73582BAA45C9062 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */, + 9E406C6AAF85E580207CD97B0044DEAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 755E4481CBA5358BD1EF7CBB46F0467B /* Build configuration list for PBXNativeTarget "CordovaPlugins" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E7F7EF40836A619BB0CDACB21A1A47A4 /* Debug */, + DC981A640316AC8D88B983F81491FD1D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 81DC7215A3B91B735FA1BCE78DBD7535 /* Build configuration list for PBXNativeTarget "Pods-App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 91DC40239CD443CB269F1CC7E8154132 /* Debug */, + FE943AA7BCDEC261E6E8DFE74311FCA4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 82D7CD8994DDE64A1F20BCF3E8074646 /* Build configuration list for PBXNativeTarget "Google-Maps-iOS-Utils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 55827CF0B4EB86326A43D0368E553CC0 /* Debug */, + 315231B00627A72E2052E37962CC2ADE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8368D5B54E3C0B1B558427CB2BEE1D38 /* Build configuration list for PBXNativeTarget "CapacitorKeyboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 12AABF1BD47F4C30131648E9195E89F2 /* Debug */, + CA4FF1458BC12A0F8D9210DF51997EA6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9FFA14600443505327B959B64EFC65EB /* Build configuration list for PBXNativeTarget "CapacitorStatusBar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4889C92D04224D57351C5EE1E01F4465 /* Debug */, + 417FBC1D965C6F9A47C820BC78AB7D72 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B199849C64840E0A9456B3139423B266 /* Build configuration list for PBXNativeTarget "Capacitor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9972596614DF03AC70123A2F5CB84AEA /* Debug */, + A8FB62F5F674B0930639DEC59B1C764B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B6748D0B6EE0CF05C8087A5857933A81 /* Build configuration list for PBXNativeTarget "CapacitorDevice" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E2F33563CBCA2C33B3618E8F450B7130 /* Debug */, + 4EF8A7C408444383F985B81BB7E97DEA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BAFFCAFEED83ADF8248B9E3737A3DDFB /* Build configuration list for PBXNativeTarget "CapacitorGoogleMaps" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A0F013127B27D8BB23108585462857C /* Debug */, + 4DF0B9067639ACB33013024B20A70010 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D3C7E01912FF767ECAD293B6F5CC8D90 /* Build configuration list for PBXNativeTarget "CapacitorCordova" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 94D82A4EB5B408CDB7ABFFA60606F44A /* Debug */, + 29E77946DA13D4D5C29FEA670E96A651 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D94C401977DE6170FC7C8E25628E8BC4 /* Build configuration list for PBXAggregateTarget "GoogleMaps" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B5927CE8F285477EBCAF50132FB975E /* Debug */, + AF53F3DAF2EE18B3444722BBA404A895 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F0ECC4CDED300CF5FF22C68FEDF8BBA2 /* Build configuration list for PBXNativeTarget "CapacitorShare" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52F05D55A6EF19F1F5F81744F68C6C33 /* Debug */, + B706D58CAA3E003010FD20EAA68A2A89 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F208B07F008AEB891580DB5408A2E954 /* Build configuration list for PBXNativeTarget "CapacitorBrowser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DDA5A6C08240D2B2D2E8B7FBBAEFD82C /* Debug */, + CF258EBECC82F195DC9F5EFDA39568C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor-Info.plist b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-Info.plist new file mode 100644 index 00000000..3da7ed42 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.5.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor-dummy.m b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-dummy.m new file mode 100644 index 00000000..be1a8444 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Capacitor : NSObject +@end +@implementation PodsDummy_Capacitor +@end diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig new file mode 100644 index 00000000..67abc332 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Capacitor +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/ios +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor.modulemap b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.modulemap new file mode 100644 index 00000000..b39eb8e8 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.modulemap @@ -0,0 +1,8 @@ +framework module Capacitor { + umbrella header "Capacitor.h" + exclude header "CAPBridgedJSTypes.h" + exclude header "CAPBridgeViewController+CDVScreenOrientationDelegate.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig new file mode 100644 index 00000000..67abc332 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Capacitor +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/ios +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-Info.plist b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-Info.plist new file mode 100644 index 00000000..073e0642 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.1.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-dummy.m b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-dummy.m new file mode 100644 index 00000000..1f234134 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorBrowser : NSObject +@end +@implementation PodsDummy_CapacitorBrowser +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-umbrella.h new file mode 100644 index 00000000..cf2df74b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "BrowserPlugin.h" + +FOUNDATION_EXPORT double CapacitorBrowserVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorBrowserVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.debug.xcconfig new file mode 100644 index 00000000..62e5a7d4 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/browser +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.modulemap b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.modulemap new file mode 100644 index 00000000..ff9b18ad --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorBrowser { + umbrella header "CapacitorBrowser-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.release.xcconfig new file mode 100644 index 00000000..62e5a7d4 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorBrowser/CapacitorBrowser.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/browser +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-Info.plist b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-Info.plist new file mode 100644 index 00000000..1310f567 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.7 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-dummy.m b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-dummy.m new file mode 100644 index 00000000..41fece80 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorCamera : NSObject +@end +@implementation PodsDummy_CapacitorCamera +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-umbrella.h new file mode 100644 index 00000000..fabdbc4c --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "CameraPlugin.h" + +FOUNDATION_EXPORT double CapacitorCameraVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorCameraVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.debug.xcconfig new file mode 100644 index 00000000..28f4a401 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/camera +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.modulemap b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.modulemap new file mode 100644 index 00000000..7085b9bd --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorCamera { + umbrella header "CapacitorCamera-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.release.xcconfig new file mode 100644 index 00000000..28f4a401 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCamera/CapacitorCamera.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/camera +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist new file mode 100644 index 00000000..3da7ed42 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.5.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m new file mode 100644 index 00000000..47e9c39f --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorCordova : NSObject +@end +@implementation PodsDummy_CapacitorCordova +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig new file mode 100644 index 00000000..92bbb04b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "WebKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/ios +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap new file mode 100644 index 00000000..32af43c1 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap @@ -0,0 +1,6 @@ +framework module Cordova { + umbrella header "CapacitorCordova.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig new file mode 100644 index 00000000..92bbb04b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "WebKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/ios +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-Info.plist b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-dummy.m b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-dummy.m new file mode 100644 index 00000000..8dc11cb0 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorDevice : NSObject +@end +@implementation PodsDummy_CapacitorDevice +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-umbrella.h new file mode 100644 index 00000000..31e96bb6 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "DevicePlugin.h" + +FOUNDATION_EXPORT double CapacitorDeviceVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorDeviceVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.debug.xcconfig new file mode 100644 index 00000000..18ab4c3d --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/device +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.modulemap b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.modulemap new file mode 100644 index 00000000..57b1dee0 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorDevice { + umbrella header "CapacitorDevice-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.release.xcconfig new file mode 100644 index 00000000..18ab4c3d --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorDevice/CapacitorDevice.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/device +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-Info.plist b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-dummy.m b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-dummy.m new file mode 100644 index 00000000..119c3848 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorGeolocation : NSObject +@end +@implementation PodsDummy_CapacitorGeolocation +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-umbrella.h new file mode 100644 index 00000000..bcad3aca --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "GeolocationPlugin.h" + +FOUNDATION_EXPORT double CapacitorGeolocationVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorGeolocationVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.debug.xcconfig new file mode 100644 index 00000000..09f09585 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/geolocation +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.modulemap b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.modulemap new file mode 100644 index 00000000..6f914d7b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorGeolocation { + umbrella header "CapacitorGeolocation-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.release.xcconfig new file mode 100644 index 00000000..09f09585 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGeolocation/CapacitorGeolocation.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/geolocation +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-Info.plist b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-Info.plist new file mode 100644 index 00000000..8cbac08e --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.3.3 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-dummy.m b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-dummy.m new file mode 100644 index 00000000..af0edae9 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorGoogleMaps : NSObject +@end +@implementation PodsDummy_CapacitorGoogleMaps +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-umbrella.h new file mode 100644 index 00000000..4d792d55 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "CapacitorGoogleMapsPlugin.h" + +FOUNDATION_EXPORT double CapacitorGoogleMapsVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorGoogleMapsVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.debug.xcconfig new file mode 100644 index 00000000..3c7bab24 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils" "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/google-maps +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.modulemap b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.modulemap new file mode 100644 index 00000000..cf2ab032 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorGoogleMaps { + umbrella header "CapacitorGoogleMaps-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.release.xcconfig new file mode 100644 index 00000000..3c7bab24 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorGoogleMaps/CapacitorGoogleMaps.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils" "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/google-maps +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-Info.plist b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-dummy.m b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-dummy.m new file mode 100644 index 00000000..e40e561f --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorHaptics : NSObject +@end +@implementation PodsDummy_CapacitorHaptics +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-umbrella.h new file mode 100644 index 00000000..20c3b0fc --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "HapticsPlugin.h" + +FOUNDATION_EXPORT double CapacitorHapticsVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorHapticsVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.debug.xcconfig new file mode 100644 index 00000000..0eea065b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/haptics +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.modulemap b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.modulemap new file mode 100644 index 00000000..4b787795 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorHaptics { + umbrella header "CapacitorHaptics-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.release.xcconfig new file mode 100644 index 00000000..0eea065b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorHaptics/CapacitorHaptics.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/haptics +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-Info.plist b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-dummy.m b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-dummy.m new file mode 100644 index 00000000..2a8e5325 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorKeyboard : NSObject +@end +@implementation PodsDummy_CapacitorKeyboard +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-umbrella.h new file mode 100644 index 00000000..58502c2e --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard-umbrella.h @@ -0,0 +1,18 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "Keyboard.h" +#import "KeyboardPlugin.h" + +FOUNDATION_EXPORT double CapacitorKeyboardVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorKeyboardVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.debug.xcconfig new file mode 100644 index 00000000..d80848c6 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/keyboard +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.modulemap b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.modulemap new file mode 100644 index 00000000..50b78a7c --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorKeyboard { + umbrella header "CapacitorKeyboard-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.release.xcconfig new file mode 100644 index 00000000..d80848c6 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorKeyboard/CapacitorKeyboard.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/keyboard +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-Info.plist b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-dummy.m b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-dummy.m new file mode 100644 index 00000000..81d05819 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorNetwork : NSObject +@end +@implementation PodsDummy_CapacitorNetwork +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-umbrella.h new file mode 100644 index 00000000..461d1de0 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "NetworkPlugin.h" + +FOUNDATION_EXPORT double CapacitorNetworkVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorNetworkVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.debug.xcconfig new file mode 100644 index 00000000..2dc6f9db --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/network +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.modulemap b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.modulemap new file mode 100644 index 00000000..66acc96b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorNetwork { + umbrella header "CapacitorNetwork-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.release.xcconfig new file mode 100644 index 00000000..2dc6f9db --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorNetwork/CapacitorNetwork.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/network +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-Info.plist b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-dummy.m b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-dummy.m new file mode 100644 index 00000000..6609b149 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorShare : NSObject +@end +@implementation PodsDummy_CapacitorShare +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-umbrella.h new file mode 100644 index 00000000..ff251a1a --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SharePlugin.h" + +FOUNDATION_EXPORT double CapacitorShareVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorShareVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.debug.xcconfig new file mode 100644 index 00000000..4253d34b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/share +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.modulemap b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.modulemap new file mode 100644 index 00000000..79ddb2fe --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorShare { + umbrella header "CapacitorShare-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.release.xcconfig new file mode 100644 index 00000000..4253d34b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorShare/CapacitorShare.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/share +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-Info.plist b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-dummy.m b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-dummy.m new file mode 100644 index 00000000..2d543ae0 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorSplashScreen : NSObject +@end +@implementation PodsDummy_CapacitorSplashScreen +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-umbrella.h new file mode 100644 index 00000000..db01b6ae --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SplashScreenPlugin.h" + +FOUNDATION_EXPORT double CapacitorSplashScreenVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorSplashScreenVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.debug.xcconfig new file mode 100644 index 00000000..334a927c --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/splash-screen +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.modulemap b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.modulemap new file mode 100644 index 00000000..e34a0cb5 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorSplashScreen { + umbrella header "CapacitorSplashScreen-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.release.xcconfig new file mode 100644 index 00000000..334a927c --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorSplashScreen/CapacitorSplashScreen.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/splash-screen +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-Info.plist b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-Info.plist new file mode 100644 index 00000000..328e3855 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-dummy.m b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-dummy.m new file mode 100644 index 00000000..22492a5b --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CapacitorStatusBar : NSObject +@end +@implementation PodsDummy_CapacitorStatusBar +@end diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-prefix.pch b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-umbrella.h b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-umbrella.h new file mode 100644 index 00000000..e297f562 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "StatusBarPlugin.h" + +FOUNDATION_EXPORT double CapacitorStatusBarVersionNumber; +FOUNDATION_EXPORT const unsigned char CapacitorStatusBarVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.debug.xcconfig b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.debug.xcconfig new file mode 100644 index 00000000..265ef366 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/status-bar +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.modulemap b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.modulemap new file mode 100644 index 00000000..78281f88 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.modulemap @@ -0,0 +1,6 @@ +framework module CapacitorStatusBar { + umbrella header "CapacitorStatusBar-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.release.xcconfig b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.release.xcconfig new file mode 100644 index 00000000..265ef366 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CapacitorStatusBar/CapacitorStatusBar.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Capacitor" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../node_modules/@capacitor/status-bar +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-Info.plist b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-Info.plist new file mode 100644 index 00000000..3da7ed42 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.5.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-dummy.m b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-dummy.m new file mode 100644 index 00000000..9b11f977 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_CordovaPlugins : NSObject +@end +@implementation PodsDummy_CordovaPlugins +@end diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-prefix.pch b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-umbrella.h b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-umbrella.h new file mode 100644 index 00000000..b3ac997a --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "IonicCordovaCommon.h" + +FOUNDATION_EXPORT double CordovaPluginsVersionNumber; +FOUNDATION_EXPORT const unsigned char CordovaPluginsVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.debug.xcconfig b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.debug.xcconfig new file mode 100644 index 00000000..368a76fd --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1 +OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../capacitor-cordova-ios-plugins +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.modulemap b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.modulemap new file mode 100644 index 00000000..51b571da --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.modulemap @@ -0,0 +1,6 @@ +framework module CordovaPlugins { + umbrella header "CordovaPlugins-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.release.xcconfig b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.release.xcconfig new file mode 100644 index 00000000..368a76fd --- /dev/null +++ b/ios/App/Pods/Target Support Files/CordovaPlugins/CordovaPlugins.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1 +OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../capacitor-cordova-ios-plugins +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist new file mode 100644 index 00000000..b04e694e --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.2.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-dummy.m b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-dummy.m new file mode 100644 index 00000000..b124ae85 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Google_Maps_iOS_Utils : NSObject +@end +@implementation PodsDummy_Google_Maps_iOS_Utils +@end diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch new file mode 100644 index 00000000..beb2a244 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-umbrella.h b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-umbrella.h new file mode 100644 index 00000000..712b3256 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-umbrella.h @@ -0,0 +1,58 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "GMUClusterAlgorithm.h" +#import "GMUGridBasedClusterAlgorithm.h" +#import "GMUNonHierarchicalDistanceBasedAlgorithm.h" +#import "GMUSimpleClusterAlgorithm.h" +#import "GMUWrappingDictionaryKey.h" +#import "GMSMarker+GMUClusteritem.h" +#import "GMUCluster.h" +#import "GMUClusterItem.h" +#import "GMUClusterManager+Testing.h" +#import "GMUClusterManager.h" +#import "GMUStaticCluster.h" +#import "GMUClusterIconGenerator.h" +#import "GMUClusterRenderer.h" +#import "GMUDefaultClusterIconGenerator+Testing.h" +#import "GMUDefaultClusterIconGenerator.h" +#import "GMUDefaultClusterRenderer+Testing.h" +#import "GMUDefaultClusterRenderer.h" +#import "GMUGeoJSONParser.h" +#import "GMUGeometryRenderer+Testing.h" +#import "GMUGeometryRenderer.h" +#import "GMUKMLParser.h" +#import "GMUFeature.h" +#import "GMUGeometry.h" +#import "GMUGeometryCollection.h" +#import "GMUGeometryContainer.h" +#import "GMUGroundOverlay.h" +#import "GMULineString.h" +#import "GMUPair.h" +#import "GMUPlacemark.h" +#import "GMUPoint.h" +#import "GMUPolygon.h" +#import "GMUStyle.h" +#import "GMUStyleMap.h" +#import "GMUGradient.h" +#import "GMUHeatmapTileLayer+Testing.h" +#import "GMUHeatmapTileLayer.h" +#import "GMUWeightedLatLng.h" +#import "GQTBounds.h" +#import "GQTPoint.h" +#import "GQTPointQuadTree.h" +#import "GQTPointQuadTreeChild.h" +#import "GQTPointQuadTreeItem.h" + +FOUNDATION_EXPORT double GoogleMapsUtilsVersionNumber; +FOUNDATION_EXPORT const unsigned char GoogleMapsUtilsVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.debug.xcconfig b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.debug.xcconfig new file mode 100644 index 00000000..a9d7dc0f --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Google-Maps-iOS-Utils +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap new file mode 100644 index 00000000..9fdc9be6 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap @@ -0,0 +1,6 @@ +framework module GoogleMapsUtils { + umbrella header "Google-Maps-iOS-Utils-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.release.xcconfig b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.release.xcconfig new file mode 100644 index 00000000..a9d7dc0f --- /dev/null +++ b/ios/App/Pods/Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Google-Maps-iOS-Utils +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks.sh b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks.sh new file mode 100755 index 00000000..06154a41 --- /dev/null +++ b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks.sh @@ -0,0 +1,147 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + + +# 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 .*.??????") + + +variant_for_slice() +{ + case "$1" in + "GoogleMapsBase.xcframework/ios-arm64") + echo "" + ;; + "GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator") + echo "simulator" + ;; + "GoogleMaps.xcframework/ios-arm64_x86_64-simulator") + echo "simulator" + ;; + "GoogleMaps.xcframework/ios-arm64") + echo "" + ;; + "GoogleMapsCore.xcframework/ios-arm64") + echo "" + ;; + "GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator") + echo "simulator" + ;; + esac +} + +archs_for_slice() +{ + case "$1" in + "GoogleMapsBase.xcframework/ios-arm64") + echo "arm64" + ;; + "GoogleMapsBase.xcframework/ios-arm64_x86_64-simulator") + echo "arm64 x86_64" + ;; + "GoogleMaps.xcframework/ios-arm64_x86_64-simulator") + echo "arm64 x86_64" + ;; + "GoogleMaps.xcframework/ios-arm64") + echo "arm64" + ;; + "GoogleMapsCore.xcframework/ios-arm64") + echo "arm64" + ;; + "GoogleMapsCore.xcframework/ios-arm64_x86_64-simulator") + echo "arm64 x86_64" + ;; + esac +} + +copy_dir() +{ + local source="$1" + local destination="$2" + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" \"${source}*\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" "${source}"/* "${destination}" +} + +SELECT_SLICE_RETVAL="" + +select_slice() { + local xcframework_name="$1" + xcframework_name="${xcframework_name##*/}" + local paths=("${@:2}") + # Locate the correct slice of the .xcframework for the current architectures + local target_path="" + + # Split archs on space so we can find a slice that has all the needed archs + local target_archs=$(echo $ARCHS | tr " " "\n") + + local target_variant="" + if [[ "$PLATFORM_NAME" == *"simulator" ]]; then + target_variant="simulator" + fi + if [[ ! -z ${EFFECTIVE_PLATFORM_NAME+x} && "$EFFECTIVE_PLATFORM_NAME" == *"maccatalyst" ]]; then + target_variant="maccatalyst" + fi + for i in ${!paths[@]}; do + local matched_all_archs="1" + local slice_archs="$(archs_for_slice "${xcframework_name}/${paths[$i]}")" + local slice_variant="$(variant_for_slice "${xcframework_name}/${paths[$i]}")" + for target_arch in $target_archs; do + if ! [[ "${slice_variant}" == "$target_variant" ]]; then + matched_all_archs="0" + break + fi + + if ! echo "${slice_archs}" | tr " " "\n" | grep -F -q -x "$target_arch"; then + matched_all_archs="0" + break + fi + done + + if [[ "$matched_all_archs" == "1" ]]; then + # Found a matching slice + echo "Selected xcframework slice ${paths[$i]}" + SELECT_SLICE_RETVAL=${paths[$i]} + break + fi + done +} + +install_xcframework() { + local basepath="$1" + local name="$2" + local package_type="$3" + local paths=("${@:4}") + + # Locate the correct slice of the .xcframework for the current architectures + select_slice "${basepath}" "${paths[@]}" + local target_path="$SELECT_SLICE_RETVAL" + if [[ -z "$target_path" ]]; then + echo "warning: [CP] $(basename ${basepath}): Unable to find matching slice in '${paths[@]}' for the current build architectures ($ARCHS) and platform (${EFFECTIVE_PLATFORM_NAME-${PLATFORM_NAME}})." + return + fi + local source="$basepath/$target_path" + + local destination="${PODS_XCFRAMEWORKS_BUILD_DIR}/${name}" + + if [ ! -d "$destination" ]; then + mkdir -p "$destination" + fi + + copy_dir "$source/" "$destination" + echo "Copied $source to $destination" +} + +install_xcframework "${PODS_ROOT}/GoogleMaps/Base/Frameworks/GoogleMapsBase.xcframework" "GoogleMaps/Base" "framework" "ios-arm64" "ios-arm64_x86_64-simulator" +install_xcframework "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework" "GoogleMaps/Maps" "framework" "ios-arm64_x86_64-simulator" "ios-arm64" +install_xcframework "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMapsCore.xcframework" "GoogleMaps/Maps" "framework" "ios-arm64" "ios-arm64_x86_64-simulator" + diff --git a/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.debug.xcconfig b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.debug.xcconfig new file mode 100644 index 00000000..1cf83b39 --- /dev/null +++ b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GoogleMaps +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Accelerate" -framework "CoreData" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "ImageIO" -framework "Metal" -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_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleMaps +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.release.xcconfig b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.release.xcconfig new file mode 100644 index 00000000..1cf83b39 --- /dev/null +++ b/ios/App/Pods/Target Support Files/GoogleMaps/GoogleMaps.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GoogleMaps +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Accelerate" -framework "CoreData" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "ImageIO" -framework "Metal" -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_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleMaps +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-Info.plist b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-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/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.markdown b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.markdown new file mode 100644 index 00000000..a5b7b231 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.markdown @@ -0,0 +1,519 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## Capacitor + +MIT License + +Copyright (c) 2017-present Drifty Co. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## CapacitorBrowser + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## CapacitorCamera + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## CapacitorCordova + +MIT License + +Copyright (c) 2017-present Drifty Co. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## CapacitorDevice + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorGeolocation + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorHaptics + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorKeyboard + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorNetwork + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorShare + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## CapacitorSplashScreen + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## CapacitorStatusBar + +Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Google-Maps-iOS-Utils + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + + +## GoogleMaps + +Copyright 2023 Google +Generated by CocoaPods - https://cocoapods.org diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.plist b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.plist new file mode 100644 index 00000000..d66e997a --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-acknowledgements.plist @@ -0,0 +1,629 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2017-present Drifty Co. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Capacitor + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT + Title + CapacitorBrowser + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT + Title + CapacitorCamera + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2017-present Drifty Co. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + CapacitorCordova + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorDevice + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorGeolocation + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorHaptics + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorKeyboard + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorNetwork + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT + Title + CapacitorShare + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorSplashScreen + Type + PSGroupSpecifier + + + FooterText + Copyright 2020-present Ionic +https://ionic.io + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + CapacitorStatusBar + Type + PSGroupSpecifier + + + FooterText + Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + + License + Apache 2.0 + Title + Google-Maps-iOS-Utils + Type + PSGroupSpecifier + + + FooterText + Copyright 2023 Google + License + Copyright + Title + GoogleMaps + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-dummy.m b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-dummy.m new file mode 100644 index 00000000..ac0b6a18 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_App : NSObject +@end +@implementation PodsDummy_Pods_App +@end diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh new file mode 100755 index 00000000..494a66b0 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh @@ -0,0 +1,210 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# 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 .*.??????") + +# Copies and strips a vendored framework +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 + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --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}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + 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) + 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 and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# 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_identity + 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 +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Capacitor/Capacitor.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorBrowser/CapacitorBrowser.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCamera/CapacitorCamera.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCordova/Cordova.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorDevice/CapacitorDevice.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorGeolocation/CapacitorGeolocation.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorHaptics/CapacitorHaptics.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorKeyboard/CapacitorKeyboard.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorNetwork/CapacitorNetwork.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorShare/CapacitorShare.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorSplashScreen/CapacitorSplashScreen.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorStatusBar/CapacitorStatusBar.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CordovaPlugins/CordovaPlugins.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Capacitor/Capacitor.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorBrowser/CapacitorBrowser.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCamera/CapacitorCamera.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCordova/Cordova.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorDevice/CapacitorDevice.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorGeolocation/CapacitorGeolocation.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorHaptics/CapacitorHaptics.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorKeyboard/CapacitorKeyboard.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorNetwork/CapacitorNetwork.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorShare/CapacitorShare.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorSplashScreen/CapacitorSplashScreen.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CapacitorStatusBar/CapacitorStatusBar.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CordovaPlugins/CordovaPlugins.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-resources.sh b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-resources.sh new file mode 100755 index 00000000..901ae384 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-resources.sh @@ -0,0 +1,131 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful).as + exit 0 +fi + +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.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle" + install_resource "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_resource "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64/GoogleMaps.framework/Resources/GoogleMaps.bundle" + install_resource "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.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 -L "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + 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}" + else + 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}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App-umbrella.h b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-umbrella.h new file mode 100644 index 00000000..e6a69e53 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App-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_AppVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AppVersionString[]; + diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig new file mode 100644 index 00000000..62490133 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar" "${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils" "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser/CapacitorBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera/CapacitorCamera.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice/CapacitorDevice.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation/CapacitorGeolocation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps/CapacitorGoogleMaps.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics/CapacitorHaptics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard/CapacitorKeyboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork/CapacitorNetwork.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare/CapacitorShare.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen/CapacitorSplashScreen.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar/CapacitorStatusBar.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins/CordovaPlugins.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils/GoogleMapsUtils.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Accelerate" -framework "Capacitor" -framework "CapacitorBrowser" -framework "CapacitorCamera" -framework "CapacitorDevice" -framework "CapacitorGeolocation" -framework "CapacitorGoogleMaps" -framework "CapacitorHaptics" -framework "CapacitorKeyboard" -framework "CapacitorNetwork" -framework "CapacitorShare" -framework "CapacitorSplashScreen" -framework "CapacitorStatusBar" -framework "Cordova" -framework "CordovaPlugins" -framework "CoreData" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "GoogleMaps" -framework "GoogleMapsBase" -framework "GoogleMapsCore" -framework "GoogleMapsUtils" -framework "ImageIO" -framework "Metal" -framework "OpenGLES" -framework "QuartzCore" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App.modulemap b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.modulemap new file mode 100644 index 00000000..f4aba196 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.modulemap @@ -0,0 +1,6 @@ +framework module Pods_App { + umbrella header "Pods-App-umbrella.h" + + export * + module * { export * } +} diff --git a/ios/App/Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig new file mode 100644 index 00000000..62490133 --- /dev/null +++ b/ios/App/Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar" "${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils" "${PODS_ROOT}/GoogleMaps/Base/Frameworks" "${PODS_ROOT}/GoogleMaps/Maps/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Base" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleMaps/Maps" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorBrowser/CapacitorBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCamera/CapacitorCamera.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorDevice/CapacitorDevice.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGeolocation/CapacitorGeolocation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorGoogleMaps/CapacitorGoogleMaps.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorHaptics/CapacitorHaptics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorKeyboard/CapacitorKeyboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorNetwork/CapacitorNetwork.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorShare/CapacitorShare.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorSplashScreen/CapacitorSplashScreen.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorStatusBar/CapacitorStatusBar.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CordovaPlugins/CordovaPlugins.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Google-Maps-iOS-Utils/GoogleMapsUtils.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Accelerate" -framework "Capacitor" -framework "CapacitorBrowser" -framework "CapacitorCamera" -framework "CapacitorDevice" -framework "CapacitorGeolocation" -framework "CapacitorGoogleMaps" -framework "CapacitorHaptics" -framework "CapacitorKeyboard" -framework "CapacitorNetwork" -framework "CapacitorShare" -framework "CapacitorSplashScreen" -framework "CapacitorStatusBar" -framework "Cordova" -framework "CordovaPlugins" -framework "CoreData" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "GLKit" -framework "GoogleMaps" -framework "GoogleMapsBase" -framework "GoogleMapsCore" -framework "GoogleMapsUtils" -framework "ImageIO" -framework "Metal" -framework "OpenGLES" -framework "QuartzCore" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +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 +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES