diff --git a/platform/ios/app/Default-568h@2x.png b/platform/ios/app/Default-568h@2x.png deleted file mode 100644 index 0891b7aab..000000000 Binary files a/platform/ios/app/Default-568h@2x.png and /dev/null differ diff --git a/platform/ios/app/LaunchScreen.storyboard b/platform/ios/app/LaunchScreen.storyboard index 323bd4317..299e18688 100644 --- a/platform/ios/app/LaunchScreen.storyboard +++ b/platform/ios/app/LaunchScreen.storyboard @@ -1,8 +1,12 @@ - - + + + + + - + + @@ -14,9 +18,9 @@ - + - + diff --git a/platform/ios/app/MBXViewController.m b/platform/ios/app/MBXViewController.m index b6b9eea7d..992b7d587 100644 --- a/platform/ios/app/MBXViewController.m +++ b/platform/ios/app/MBXViewController.m @@ -34,7 +34,6 @@ typedef NS_ENUM(NSInteger, MBXSettingsCoreRenderingRows) { MBXSettingsCoreRenderingTimestamps, MBXSettingsCoreRenderingCollisionBoxes, MBXSettingsCoreRenderingOverdrawVisualization, - MBXSettingsCoreRenderingToggleTwoMaps, }; typedef NS_ENUM(NSInteger, MBXSettingsAnnotationsRows) { @@ -48,6 +47,7 @@ typedef NS_ENUM(NSInteger, MBXSettingsAnnotationsRows) { MBXSettingsAnnotationsTestShapes, MBXSettingsAnnotationsCustomCallout, MBXSettingsAnnotationsQueryAnnotations, + MBXSettingsAnnotationsCustomUserDot, MBXSettingsAnnotationsRemoveAnnotations, }; @@ -71,7 +71,6 @@ typedef NS_ENUM(NSInteger, MBXSettingsRuntimeStylingRows) { MBXSettingsRuntimeStylingUpdateShapeSourceFeatures, MBXSettingsRuntimeStylingVectorSource, MBXSettingsRuntimeStylingRasterSource, - MBXSettingsRuntimeStylingCountryLabels, MBXSettingsRuntimeStylingRouteLine, MBXSettingsRuntimeStylingDDSPolygon, }; @@ -79,9 +78,10 @@ typedef NS_ENUM(NSInteger, MBXSettingsRuntimeStylingRows) { typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { MBXSettingsMiscellaneousShowReuseQueueStats = 0, MBXSettingsMiscellaneousWorldTour, - MBXSettingsMiscellaneousCustomUserDot, MBXSettingsMiscellaneousShowZoomLevel, MBXSettingsMiscellaneousScrollView, + MBXSettingsMiscellaneousToggleTwoMaps, + MBXSettingsMiscellaneousCountryLabels, MBXSettingsMiscellaneousPrintLogFile, MBXSettingsMiscellaneousDeleteLogFile, }; @@ -303,8 +303,6 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { (debugMask & MGLMapDebugCollisionBoxesMask ? @"Hide" :@"Show")], [NSString stringWithFormat:@"%@ Overdraw Visualization", (debugMask & MGLMapDebugOverdrawVisualizationMask ? @"Hide" :@"Show")], - [NSString stringWithFormat:@"%@ Second Map", - ([self.view viewWithTag:2] == nil ? @"Show" : @"Hide")], ]]; break; case MBXSettingsAnnotations: @@ -319,6 +317,7 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { @"Add Test Shapes", @"Add Point With Custom Callout", @"Query Annotations", + [NSString stringWithFormat:@"%@ Custom User Dot", (_customUserLocationAnnnotationEnabled ? @"Disable" : @"Enable")], @"Remove Annotations", ]]; break; @@ -343,7 +342,6 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { @"Update Shape Source: Features", @"Style Vector Source", @"Style Raster Source", - [NSString stringWithFormat:@"Show Labels in %@", (_usingLocaleBasedCountryLabels ? @"Local Language" : [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[self bestLanguageForUser]])], @"Add Route Line", @"Dynamically Style Polygon", ]]; @@ -352,9 +350,10 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { [settingsTitles addObjectsFromArray:@[ [NSString stringWithFormat:@"%@ Reuse Queue Stats", (_reuseQueueStatsEnabled ? @"Hide" :@"Show")], @"Start World Tour", - [NSString stringWithFormat:@"%@ Custom User Dot", (_customUserLocationAnnnotationEnabled ? @"Disable" : @"Enable")], [NSString stringWithFormat:@"%@ Zoom Level", (_showZoomLevelEnabled ? @"Hide" :@"Show")], @"Embedded Map View", + [NSString stringWithFormat:@"%@ Second Map", ([self.view viewWithTag:2] == nil ? @"Show" : @"Hide")], + [NSString stringWithFormat:@"Show Labels in %@", (_usingLocaleBasedCountryLabels ? @"Default Language" : [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[self bestLanguageForUser]])], ]]; if (self.debugLoggingEnabled) @@ -399,7 +398,163 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { case MBXSettingsCoreRenderingOverdrawVisualization: self.mapView.debugMask ^= MGLMapDebugOverdrawVisualizationMask; break; - case MBXSettingsCoreRenderingToggleTwoMaps: + default: + NSAssert(NO, @"All core rendering setting rows should be implemented"); + break; + } + break; + case MBXSettingsAnnotations: + switch (indexPath.row) + { + case MBXSettingsAnnotations100Views: + [self parseFeaturesAddingCount:100 usingViews:YES]; + break; + case MBXSettingsAnnotations1000Views: + [self parseFeaturesAddingCount:1000 usingViews:YES]; + break; + case MBXSettingsAnnotations10000Views: + [self parseFeaturesAddingCount:10000 usingViews:YES]; + break; + case MBXSettingsAnnotations100Sprites: + [self parseFeaturesAddingCount:100 usingViews:NO]; + break; + case MBXSettingsAnnotations1000Sprites: + [self parseFeaturesAddingCount:1000 usingViews:NO]; + break; + case MBXSettingsAnnotations10000Sprites: + [self parseFeaturesAddingCount:10000 usingViews:NO]; + break; + case MBXSettingsAnnotationAnimation: + [self animateAnnotationView]; + break; + case MBXSettingsAnnotationsTestShapes: + [self addTestShapes]; + break; + case MBXSettingsAnnotationsCustomCallout: + [self addAnnotationWithCustomCallout]; + break; + case MBXSettingsAnnotationsQueryAnnotations: + [self testQueryPointAnnotations]; + break; + case MBXSettingsAnnotationsCustomUserDot: + [self toggleCustomUserDot]; + break; + case MBXSettingsAnnotationsRemoveAnnotations: + [self.mapView removeAnnotations:self.mapView.annotations]; + break; + default: + NSAssert(NO, @"All annotations setting rows should be implemented"); + break; + } + break; + case MBXSettingsRuntimeStyling: + switch (indexPath.row) + { + case MBXSettingsRuntimeStylingWater: + [self styleWaterLayer]; + break; + case MBXSettingsRuntimeStylingRoads: + [self styleRoadLayer]; + break; + case MBXSettingsRuntimeStylingRaster: + [self styleRasterLayer]; + break; + case MBXSettingsRuntimeStylingShape: + [self styleShapeSource]; + break; + case MBXSettingsRuntimeStylingSymbols: + [self styleSymbolLayer]; + break; + case MBXSettingsRuntimeStylingBuildings: + [self styleBuildingLayer]; + break; + case MBXSettingsRuntimeStylingFerry: + [self styleFerryLayer]; + break; + case MBXSettingsRuntimeStylingParks: + [self removeParkLayer]; + break; + case MBXSettingsRuntimeStylingFilteredFill: + [self styleFilteredFill]; + break; + case MBXSettingsRuntimeStylingFilteredLines: + [self styleFilteredLines]; + break; + case MBXSettingsRuntimeStylingNumericFilteredFill: + [self styleNumericFilteredFills]; + break; + case MBXSettingsRuntimeStylingStyleQuery: + [self styleQuery]; + break; + case MBXSettingsRuntimeStylingFeatureSource: + [self styleFeature]; + break; + case MBXSettingsRuntimeStylingPointCollection: + [self styleDynamicPointCollection]; + break; + case MBXSettingsRuntimeStylingUpdateShapeSourceURL: + [self updateShapeSourceURL]; + break; + case MBXSettingsRuntimeStylingUpdateShapeSourceData: + [self updateShapeSourceData]; + break; + case MBXSettingsRuntimeStylingUpdateShapeSourceFeatures: + [self updateShapeSourceFeatures]; + break; + case MBXSettingsRuntimeStylingVectorSource: + [self styleVectorSource]; + break; + case MBXSettingsRuntimeStylingRasterSource: + [self styleRasterSource]; + break; + case MBXSettingsRuntimeStylingRouteLine: + [self styleRouteLine]; + break; + case MBXSettingsRuntimeStylingDDSPolygon: + [self stylePolygonWithDDS]; + break; + default: + NSAssert(NO, @"All runtime styling setting rows should be implemented"); + break; + } + break; + case MBXSettingsMiscellaneous: + switch (indexPath.row) + { + case MBXSettingsMiscellaneousCountryLabels: + [self styleCountryLabelsLanguage]; + break; + case MBXSettingsMiscellaneousWorldTour: + [self startWorldTour]; + break; + case MBXSettingsMiscellaneousPrintLogFile: + [self printTelemetryLogFile]; + break; + case MBXSettingsMiscellaneousDeleteLogFile: + [self deleteTelemetryLogFile]; + break; + case MBXSettingsMiscellaneousShowReuseQueueStats: + { + self.reuseQueueStatsEnabled = !self.reuseQueueStatsEnabled; + self.hudLabel.hidden = !self.reuseQueueStatsEnabled; + self.showZoomLevelEnabled = NO; + break; + } + case MBXSettingsMiscellaneousShowZoomLevel: + { + self.showZoomLevelEnabled = !self.showZoomLevelEnabled; + self.hudLabel.hidden = !self.showZoomLevelEnabled; + self.reuseQueueStatsEnabled = NO; + break; + } + case MBXSettingsMiscellaneousScrollView: + { + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; + MBXEmbeddedMapViewController *embeddedMapViewController = (MBXEmbeddedMapViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MBXEmbeddedMapViewController"]; + [self.navigationController pushViewController:embeddedMapViewController animated:YES]; + break; + } + case MBXSettingsMiscellaneousToggleTwoMaps: if ([self.view viewWithTag:2] == nil) { MGLMapView *secondMapView = [[MGLMapView alloc] initWithFrame: CGRectMake(0, self.view.bounds.size.height / 2, @@ -474,162 +629,6 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { constant:0]]; } break; - default: - NSAssert(NO, @"All core rendering setting rows should be implemented"); - break; - } - break; - case MBXSettingsAnnotations: - switch (indexPath.row) - { - case MBXSettingsAnnotations100Views: - [self parseFeaturesAddingCount:100 usingViews:YES]; - break; - case MBXSettingsAnnotations1000Views: - [self parseFeaturesAddingCount:1000 usingViews:YES]; - break; - case MBXSettingsAnnotations10000Views: - [self parseFeaturesAddingCount:10000 usingViews:YES]; - break; - case MBXSettingsAnnotations100Sprites: - [self parseFeaturesAddingCount:100 usingViews:NO]; - break; - case MBXSettingsAnnotations1000Sprites: - [self parseFeaturesAddingCount:1000 usingViews:NO]; - break; - case MBXSettingsAnnotations10000Sprites: - [self parseFeaturesAddingCount:10000 usingViews:NO]; - break; - case MBXSettingsAnnotationAnimation: - [self animateAnnotationView]; - break; - case MBXSettingsAnnotationsTestShapes: - [self addTestShapes]; - break; - case MBXSettingsAnnotationsCustomCallout: - [self addAnnotationWithCustomCallout]; - break; - case MBXSettingsAnnotationsQueryAnnotations: - [self testQueryPointAnnotations]; - break; - case MBXSettingsAnnotationsRemoveAnnotations: - [self.mapView removeAnnotations:self.mapView.annotations]; - break; - default: - NSAssert(NO, @"All annotations setting rows should be implemented"); - break; - } - break; - case MBXSettingsRuntimeStyling: - switch (indexPath.row) - { - case MBXSettingsRuntimeStylingWater: - [self styleWaterLayer]; - break; - case MBXSettingsRuntimeStylingRoads: - [self styleRoadLayer]; - break; - case MBXSettingsRuntimeStylingRaster: - [self styleRasterLayer]; - break; - case MBXSettingsRuntimeStylingShape: - [self styleShapeSource]; - break; - case MBXSettingsRuntimeStylingSymbols: - [self styleSymbolLayer]; - break; - case MBXSettingsRuntimeStylingBuildings: - [self styleBuildingLayer]; - break; - case MBXSettingsRuntimeStylingFerry: - [self styleFerryLayer]; - break; - case MBXSettingsRuntimeStylingParks: - [self removeParkLayer]; - break; - case MBXSettingsRuntimeStylingFilteredFill: - [self styleFilteredFill]; - break; - case MBXSettingsRuntimeStylingFilteredLines: - [self styleFilteredLines]; - break; - case MBXSettingsRuntimeStylingNumericFilteredFill: - [self styleNumericFilteredFills]; - break; - case MBXSettingsRuntimeStylingStyleQuery: - [self styleQuery]; - break; - case MBXSettingsRuntimeStylingFeatureSource: - [self styleFeature]; - break; - case MBXSettingsRuntimeStylingPointCollection: - [self styleDynamicPointCollection]; - break; - case MBXSettingsRuntimeStylingUpdateShapeSourceURL: - [self updateShapeSourceURL]; - break; - case MBXSettingsRuntimeStylingUpdateShapeSourceData: - [self updateShapeSourceData]; - break; - case MBXSettingsRuntimeStylingUpdateShapeSourceFeatures: - [self updateShapeSourceFeatures]; - break; - case MBXSettingsRuntimeStylingVectorSource: - [self styleVectorSource]; - break; - case MBXSettingsRuntimeStylingRasterSource: - [self styleRasterSource]; - break; - case MBXSettingsRuntimeStylingCountryLabels: - [self styleCountryLabelsLanguage]; - break; - case MBXSettingsRuntimeStylingRouteLine: - [self styleRouteLine]; - break; - case MBXSettingsRuntimeStylingDDSPolygon: - [self stylePolygonWithDDS]; - break; - default: - NSAssert(NO, @"All runtime styling setting rows should be implemented"); - break; - } - break; - case MBXSettingsMiscellaneous: - switch (indexPath.row) - { - case MBXSettingsMiscellaneousWorldTour: - [self startWorldTour]; - break; - case MBXSettingsMiscellaneousCustomUserDot: - [self toggleCustomUserDot]; - break; - case MBXSettingsMiscellaneousPrintLogFile: - [self printTelemetryLogFile]; - break; - case MBXSettingsMiscellaneousDeleteLogFile: - [self deleteTelemetryLogFile]; - break; - case MBXSettingsMiscellaneousShowReuseQueueStats: - { - self.reuseQueueStatsEnabled = !self.reuseQueueStatsEnabled; - self.hudLabel.hidden = !self.reuseQueueStatsEnabled; - self.showZoomLevelEnabled = NO; - break; - } - case MBXSettingsMiscellaneousShowZoomLevel: - { - self.showZoomLevelEnabled = !self.showZoomLevelEnabled; - self.hudLabel.hidden = !self.showZoomLevelEnabled; - self.reuseQueueStatsEnabled = NO; - break; - } - case MBXSettingsMiscellaneousScrollView: - { - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; - MBXEmbeddedMapViewController *embeddedMapViewController = (MBXEmbeddedMapViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MBXEmbeddedMapViewController"]; - [self.navigationController pushViewController:embeddedMapViewController animated:YES]; - break; - } default: NSAssert(NO, @"All miscellaneous setting rows should be implemented"); break; @@ -1261,8 +1260,8 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { - (void)styleRasterSource { - NSArray *tileURLTemplates = @[@"https://stamen-tiles.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.jpg"]; - MGLRasterSource *rasterSource = [[MGLRasterSource alloc] initWithIdentifier:@"style-raster-source-id" tileURLTemplates:tileURLTemplates options:@{ + NSString *tileURL = [NSString stringWithFormat:@"https://stamen-tiles.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}%@.jpg", UIScreen.mainScreen.nativeScale > 1 ? @"@2x" : @""]; + MGLRasterSource *rasterSource = [[MGLRasterSource alloc] initWithIdentifier:@"style-raster-source-id" tileURLTemplates:@[tileURL] options:@{ MGLTileSourceOptionTileSize: @256, }]; [self.mapView.style addSource:rasterSource]; @@ -1574,7 +1573,7 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) { [sender setAccessibilityValue:nextAccessibilityValue]; } -#pragma mark - Map Delegate +#pragma mark - MGLMapViewDelegate - (MGLAnnotationView *)mapView:(MGLMapView *)mapView viewForAnnotation:(id)annotation { diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index 83b267df4..76b35be2d 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -233,7 +233,6 @@ DA1DC9971CB6E046006E619F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1DC9961CB6E046006E619F /* main.m */; }; DA1DC9991CB6E054006E619F /* MBXAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1DC9981CB6E054006E619F /* MBXAppDelegate.m */; }; DA1DC99B1CB6E064006E619F /* MBXViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1DC99A1CB6E064006E619F /* MBXViewController.m */; }; - DA1DC99D1CB6E076006E619F /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA1DC99C1CB6E076006E619F /* Default-568h@2x.png */; }; DA1DC99F1CB6E088006E619F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA1DC99E1CB6E088006E619F /* Assets.xcassets */; }; DA1F8F3D1EBD287B00367E42 /* MGLDocumentationGuideTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1F8F3C1EBD287B00367E42 /* MGLDocumentationGuideTests.swift */; }; DA2207BF1DC0805F0002F84D /* MGLStyleValueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2207BE1DC0805F0002F84D /* MGLStyleValueTests.swift */; }; @@ -718,7 +717,6 @@ DA1DC9961CB6E046006E619F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; DA1DC9981CB6E054006E619F /* MBXAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBXAppDelegate.m; sourceTree = ""; }; DA1DC99A1CB6E064006E619F /* MBXViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBXViewController.m; sourceTree = ""; }; - DA1DC99C1CB6E076006E619F /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; DA1DC99E1CB6E088006E619F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; DA1F8F3C1EBD287B00367E42 /* MGLDocumentationGuideTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MGLDocumentationGuideTests.swift; path = ../../darwin/test/MGLDocumentationGuideTests.swift; sourceTree = ""; }; DA2207BE1DC0805F0002F84D /* MGLStyleValueTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MGLStyleValueTests.swift; path = ../../darwin/test/MGLStyleValueTests.swift; sourceTree = ""; }; @@ -1154,6 +1152,20 @@ name = Sources; sourceTree = ""; }; + 9604FC341F313A5E003EEA02 /* Fixtures */ = { + isa = PBXGroup; + children = ( + 353BAEF51D646370009A8DA9 /* amsterdam.geojson */, + DA1DC96C1CB6C6CE006E619F /* points.geojson */, + DA1DC96D1CB6C6CE006E619F /* polyline.geojson */, + DA1DC96F1CB6C6CE006E619F /* threestates.geojson */, + DD4823721D94AE6C00EB71B7 /* fill_filter_style.json */, + DD4823731D94AE6C00EB71B7 /* line_filter_style.json */, + DD4823741D94AE6C00EB71B7 /* numeric_filter_style.json */, + ); + name = Fixtures; + sourceTree = ""; + }; DA1DC9411CB6C1C2006E619F = { isa = PBXGroup; children = ( @@ -1202,16 +1214,9 @@ DA821D051CCC6D59007508D4 /* Main.storyboard */, DA821D041CCC6D59007508D4 /* LaunchScreen.storyboard */, DA1DC99E1CB6E088006E619F /* Assets.xcassets */, - DA1DC96C1CB6C6CE006E619F /* points.geojson */, - DA1DC96D1CB6C6CE006E619F /* polyline.geojson */, - DA1DC96F1CB6C6CE006E619F /* threestates.geojson */, - 353BAEF51D646370009A8DA9 /* amsterdam.geojson */, - DD4823721D94AE6C00EB71B7 /* fill_filter_style.json */, - DD4823731D94AE6C00EB71B7 /* line_filter_style.json */, - DD4823741D94AE6C00EB71B7 /* numeric_filter_style.json */, DA1DC95E1CB6C1C2006E619F /* Info.plist */, - DA1DC99C1CB6E076006E619F /* Default-568h@2x.png */, 96E027251E57C76E004B8E66 /* Localizable.strings */, + 9604FC341F313A5E003EEA02 /* Fixtures */, DA1DC94D1CB6C1C2006E619F /* Supporting Files */, ); name = "Demo App"; @@ -2056,7 +2061,6 @@ 353BAEF61D646370009A8DA9 /* amsterdam.geojson in Resources */, DA1DC9711CB6C6CE006E619F /* polyline.geojson in Resources */, DD4823761D94AE6C00EB71B7 /* line_filter_style.json in Resources */, - DA1DC99D1CB6E076006E619F /* Default-568h@2x.png in Resources */, DA821D071CCC6D59007508D4 /* Main.storyboard in Resources */, DA1DC9731CB6C6CE006E619F /* threestates.geojson in Resources */, DA821D061CCC6D59007508D4 /* LaunchScreen.storyboard in Resources */,