From 0827eccc79c8b20c9516852e059b4b8dd62e59bf Mon Sep 17 00:00:00 2001 From: Fredrik Karlsson Date: Tue, 17 Jan 2017 20:52:45 +0100 Subject: [PATCH] Profile identifiers now bridges to Objective-C --- MapboxDirections.xcodeproj/project.pbxproj | 20 +++++++++++++ MapboxDirections/MBRouteOptions.h | 33 +++++++++++++++++++++ MapboxDirections/MBRouteOptions.m | 7 +++++ MapboxDirections/MBRouteOptions.swift | 34 ---------------------- MapboxDirections/MapboxDirections.h | 1 + 5 files changed, 61 insertions(+), 34 deletions(-) create mode 100644 MapboxDirections/MBRouteOptions.h create mode 100644 MapboxDirections/MBRouteOptions.m diff --git a/MapboxDirections.xcodeproj/project.pbxproj b/MapboxDirections.xcodeproj/project.pbxproj index 83ae7b9e9..c3870649e 100644 --- a/MapboxDirections.xcodeproj/project.pbxproj +++ b/MapboxDirections.xcodeproj/project.pbxproj @@ -8,6 +8,14 @@ /* Begin PBXBuildFile section */ 02599A9F4AFF2EA453B127B6 /* Pods_MapboxDirectionsTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 111718728E71A72F760BFBCE /* Pods_MapboxDirectionsTests.framework */; }; + 358D48811E2EAB2500F32A65 /* MBRouteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358D48821E2EAB2500F32A65 /* MBRouteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358D48831E2EAB2500F32A65 /* MBRouteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358D48841E2EAB2500F32A65 /* MBRouteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358D48861E2EAB4500F32A65 /* MBRouteOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */; }; + 358D48871E2EAB4500F32A65 /* MBRouteOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */; }; + 358D48881E2EAB4500F32A65 /* MBRouteOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */; }; + 358D48891E2EAB4500F32A65 /* MBRouteOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */; }; 5039C073831CA8E3B5B4C395 /* Pods_MapboxDirectionsMacTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6C14CAB4265B5BBE0668F98 /* Pods_MapboxDirectionsMacTests.framework */; }; 873562FBB5CA65F6AFFC28B2 /* Pods_MapboxDirectionsWatch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE88D8ACDE1F58C6F7CFF289 /* Pods_MapboxDirectionsWatch.framework */; }; 87E1756D85AAB62B82228FF3 /* Pods_Example__Swift_.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AF00AB3EFDCBBCCD611EFB8 /* Pods_Example__Swift_.framework */; }; @@ -179,6 +187,8 @@ 2AF00AB3EFDCBBCCD611EFB8 /* Pods_Example__Swift_.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example__Swift_.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2E1E30C7261B1CC9E446EF14 /* Pods-MapboxDirectionsWatch.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MapboxDirectionsWatch.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MapboxDirectionsWatch/Pods-MapboxDirectionsWatch.debug.xcconfig"; sourceTree = ""; }; 30A35E89A250687A8A4AB203 /* Pods_MapboxDirectionsTV.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MapboxDirectionsTV.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MBRouteOptions.h; sourceTree = ""; }; + 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBRouteOptions.m; sourceTree = ""; }; 3CBDF466DA79A0300E88AA8C /* Pods-MapboxDirections.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MapboxDirections.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MapboxDirections/Pods-MapboxDirections.debug.xcconfig"; sourceTree = ""; }; 45D272931D93A2185C1F3140 /* Pods-MapboxDirectionsTV.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MapboxDirectionsTV.release.xcconfig"; path = "Pods/Target Support Files/Pods-MapboxDirectionsTV/Pods-MapboxDirectionsTV.release.xcconfig"; sourceTree = ""; }; 46B778CDD353A9BEFD44A098 /* Pods-MapboxDirectionsTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MapboxDirectionsTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MapboxDirectionsTests/Pods-MapboxDirectionsTests.debug.xcconfig"; sourceTree = ""; }; @@ -364,6 +374,8 @@ DD6254731AE70CB700017857 /* MBDirections.swift */, DAC05F171CFC075300FA0071 /* MBRoute.swift */, DAC05F191CFC077C00FA0071 /* MBRouteLeg.swift */, + 358D48801E2EAB2500F32A65 /* MBRouteOptions.h */, + 358D48851E2EAB4500F32A65 /* MBRouteOptions.m */, DA2E03EA1CB0E13D00D1269A /* MBRouteOptions.swift */, DA2E03E81CB0E0B000D1269A /* MBRouteStep.swift */, C57D55001DB5669600B94B74 /* MBIntersection.swift */, @@ -497,6 +509,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 358D48821E2EAB2500F32A65 /* MBRouteOptions.h in Headers */, DA1A10C61D00F969009F82FA /* MapboxDirections.h in Headers */, C57B2E971DB8171300E9123A /* MBLaneIndication.h in Headers */, ); @@ -506,6 +519,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 358D48831E2EAB2500F32A65 /* MBRouteOptions.h in Headers */, DA1A10EC1D010247009F82FA /* MapboxDirections.h in Headers */, C57B2E981DB8171300E9123A /* MBLaneIndication.h in Headers */, ); @@ -515,6 +529,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 358D48841E2EAB2500F32A65 /* MBRouteOptions.h in Headers */, DA1A11031D0103A3009F82FA /* MapboxDirections.h in Headers */, C57B2E991DB8171300E9123A /* MBLaneIndication.h in Headers */, ); @@ -524,6 +539,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 358D48811E2EAB2500F32A65 /* MBRouteOptions.h in Headers */, DA6C9D8B1CAE442B00094FBC /* MapboxDirections.h in Headers */, C57B2E961DB8171300E9123A /* MBLaneIndication.h in Headers */, ); @@ -1227,6 +1243,7 @@ buildActionMask = 2147483647; files = ( DA1A10C91D00F969009F82FA /* MBRouteLeg.swift in Sources */, + 358D48871E2EAB4500F32A65 /* MBRouteOptions.m in Sources */, DA1A10CC1D00F969009F82FA /* MBWaypoint.swift in Sources */, DA1A10CA1D00F969009F82FA /* MBRouteOptions.swift in Sources */, DA1A10C81D00F969009F82FA /* MBRoute.swift in Sources */, @@ -1255,6 +1272,7 @@ buildActionMask = 2147483647; files = ( DA1A10EF1D010247009F82FA /* MBRouteLeg.swift in Sources */, + 358D48881E2EAB4500F32A65 /* MBRouteOptions.m in Sources */, DA1A10F21D010247009F82FA /* MBWaypoint.swift in Sources */, DA1A10F01D010247009F82FA /* MBRouteOptions.swift in Sources */, DA1A10EE1D010247009F82FA /* MBRoute.swift in Sources */, @@ -1283,6 +1301,7 @@ buildActionMask = 2147483647; files = ( DA1A11061D0103A3009F82FA /* MBRouteLeg.swift in Sources */, + 358D48891E2EAB4500F32A65 /* MBRouteOptions.m in Sources */, DA1A11091D0103A3009F82FA /* MBWaypoint.swift in Sources */, DA1A11071D0103A3009F82FA /* MBRouteOptions.swift in Sources */, DA1A11051D0103A3009F82FA /* MBRoute.swift in Sources */, @@ -1309,6 +1328,7 @@ buildActionMask = 2147483647; files = ( DA2E03EB1CB0E13D00D1269A /* MBRouteOptions.swift in Sources */, + 358D48861E2EAB4500F32A65 /* MBRouteOptions.m in Sources */, DAC05F161CFBFAC400FA0071 /* MBWaypoint.swift in Sources */, C57D55081DB58C0200B94B74 /* MBLane.swift in Sources */, DAC05F181CFC075300FA0071 /* MBRoute.swift in Sources */, diff --git a/MapboxDirections/MBRouteOptions.h b/MapboxDirections/MBRouteOptions.h new file mode 100644 index 000000000..4a58d33ca --- /dev/null +++ b/MapboxDirections/MBRouteOptions.h @@ -0,0 +1,33 @@ +#import + + +typedef NSString * MBDirectionsProfileIdentifier NS_EXTENSIBLE_STRING_ENUM; + +/** + The returned directions are appropriate for driving or riding a car, truck, or motorcycle. + + This profile prioritizes fast routes by preferring high-speed roads like highways. A driving route may use a ferry where necessary. + */ +extern MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierAutomobile; + +/** + The returned directions are appropriate for driving or riding a car, truck, or motorcycle. + + This profile avoids traffic congestion based on current traffic data. A driving route may use a ferry where necessary. + + - experiment: This profile is experimental. Where traffic data is absent, this profile prefers high-speed roads like highways, similar to `MBDirectionsProfileIdentifierAutomobile`. + */ +extern MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierAutomobileAvoidingTraffic; + +/** + The returned directions are appropriate for riding a bicycle. + + This profile prioritizes short, safe routes by avoiding highways and preferring cycling infrastructure, such as bike lanes on surface streets. A cycling route may, where necessary, use other modes of transportation, such as ferries or trains, or require dismounting the bicycle for a distance. + */ +extern MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierCycling; +/** + The returned directions are appropriate for walking or hiking. + + This profile prioritizes short routes, making use of sidewalks and trails where available. A walking route may use other modes of transportation, such as ferries or trains, where necessary. + */ +extern MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierWalking; diff --git a/MapboxDirections/MBRouteOptions.m b/MapboxDirections/MBRouteOptions.m new file mode 100644 index 000000000..d8d7f68da --- /dev/null +++ b/MapboxDirections/MBRouteOptions.m @@ -0,0 +1,7 @@ +#import "MBRouteOptions.h" + + +MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierAutomobile = @"mapbox/driving"; +MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierAutomobileAvoidingTraffic = @"mapbox/driving-traffic"; +MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierCycling = @"mapbox/cycling"; +MBDirectionsProfileIdentifier const MBDirectionsProfileIdentifierWalking = @"mapbox/walking"; diff --git a/MapboxDirections/MBRouteOptions.swift b/MapboxDirections/MBRouteOptions.swift index b058f64f2..ab085cb2c 100644 --- a/MapboxDirections/MBRouteOptions.swift +++ b/MapboxDirections/MBRouteOptions.swift @@ -1,37 +1,3 @@ -// MARK: Specifying the Routing Profile - -/** - The returned directions are appropriate for driving or riding a car, truck, or motorcycle. - - This profile prioritizes fast routes by preferring high-speed roads like highways. A driving route may use a ferry where necessary. - */ -public let MBDirectionsProfileIdentifierAutomobile = "mapbox/driving" - -/** - The returned directions are appropriate for driving or riding a car, truck, or motorcycle. - - This profile avoids traffic congestion based on current traffic data. A driving route may use a ferry where necessary. - - - experiment: This profile is experimental. Where traffic data is absent, this profile prefers high-speed roads like highways, similar to `MBDirectionsProfileIdentifierAutomobile`. - */ -public let MBDirectionsProfileIdentifierAutomobileAvoidingTraffic = "mapbox/driving-traffic" - -/** - The returned directions are appropriate for riding a bicycle. - - This profile prioritizes short, safe routes by avoiding highways and preferring cycling infrastructure, such as bike lanes on surface streets. A cycling route may, where necessary, use other modes of transportation, such as ferries or trains, or require dismounting the bicycle for a distance. - */ -public let MBDirectionsProfileIdentifierCycling = "mapbox/cycling" - -/** - The returned directions are appropriate for walking or hiking. - - This profile prioritizes short routes, making use of sidewalks and trails where available. A walking route may use other modes of transportation, such as ferries or trains, where necessary. - */ -public let MBDirectionsProfileIdentifierWalking = "mapbox/walking" - -// MARK: - - /** A `RouteShapeFormat` indicates the format of a route’s shape in the raw HTTP response. */ diff --git a/MapboxDirections/MapboxDirections.h b/MapboxDirections/MapboxDirections.h index f5f8fe405..0272398ba 100644 --- a/MapboxDirections/MapboxDirections.h +++ b/MapboxDirections/MapboxDirections.h @@ -8,3 +8,4 @@ FOUNDATION_EXPORT double MapboxDirectionsVersionNumber; FOUNDATION_EXPORT const unsigned char MapboxDirectionsVersionString[]; #import "MBLaneIndication.h" +#import "MBRouteOptions.h"