CartoType iOS API 9.0-11-g64131709d
for development in Swift and Objective C for iOS and Mac OS
Loading...
Searching...
No Matches
CartoTypeRouter.h
Go to the documentation of this file.
1/*
2CartoTypeRouter.h
3Copyright 2013-2024 CartoType Ltd.
4See www.cartotype.com for more information.
5*/
6
7#ifndef CartoTypeRouter_h__
8#define CartoTypeRouter_h__
9
10#import <CartoType/CartoTypeBase.h>
11
16
18static const uint32_t CtMaxRoutesDisplayed = 16;
19
21typedef NS_ENUM(NSInteger,CtRouteProfileType)
22 {
24 CtRouteProfileTypeCar,
26 CtRouteProfileTypeWalk,
28 CtRouteProfileTypeBike,
30 CtRouteProfileTypeCycle = CtRouteProfileTypeBike,
32 CtRouteProfileTypeHike,
34 CtRouteProfileTypeSki
35 };
36
37typedef CtRouteProfileType CartoTypeRouteProfileType;
38
43@interface CtRouteProfile: NSObject
45 -(id)init;
46
48 -(id)initWithProfileType:(CtRouteProfileType)aProfileType;
49
51 @property (nonatomic, strong) NSString* name;
52
57 @property (nonatomic) uint32_t vehicleType;
58
60 @property (nonatomic) double weight;
61
63 @property (nonatomic) double axleLoad;
64
66 @property (nonatomic) double doubleAxleLoad;
67
69 @property (nonatomic) double tripleAxleLoad;
70
72 @property (nonatomic) double height;
73
75 @property (nonatomic) double width;
76
78 @property (nonatomic) double length;
79
81 @property (nonatomic) bool hazMat;
82
84 -(double)speed:(unsigned int)aIndex;
86 -(void)setSpeed:(unsigned int)aIndex to:(double)aValue;
92 -(double)bonus:(unsigned int)aIndex;
94 -(void)setBonus:(unsigned int)aIndex to:(double)aValue;
95
99 -(uint32_t)restrictionOverride:(unsigned int)aIndex;
106 -(void)setRestrictionOverride:(unsigned int)aIndex to:(uint32_t)aValue;
107
112 @property (nonatomic) int turnTime;
113
118 @property (nonatomic) int uTurnTime;
119
127 @property (nonatomic) int crossTrafficTurnTime;
128
132 @property (nonatomic) int trafficLightTime;
133
135 @property (nonatomic) bool shortest;
136
138 @property (nonatomic) bool shortestByTime;
139
146 @property (nonatomic) double tollPenalty;
147
154 -(double)gradientSpeed:(unsigned int)aIndex;
156 -(void)setGradientSpeed:(unsigned int)aIndex to:(double)aValue;
157
159 -(double)gradientBonus:(unsigned int)aIndex;
161 -(void)setGradientBonus:(unsigned int)aIndex to:(double)aValue;
162
167 @property (nonatomic) uint32_t gradientFlags;
168
170 -(void*)profile;
171@end
173@compatibility_alias CartoTypeRouteProfile CtRouteProfile;
174
176typedef NS_ENUM(NSInteger,CtRouterType)
177 {
179 CtRouterTypeDefault,
181 CtRouterTypeStandardAStar,
183 CtRouterTypeTurnExpandedAStar,
188 CtRouterTypeStandardContractionHierarchy,
190 CtRouterTypeTECH
191 };
192
193typedef CtRouterType CartoTypeRouterType;
194
204typedef NS_ENUM(NSInteger,CtTurnType)
205 {
207 CtTurnTypeNone,
212 CtTurnTypeAhead,
217 CtTurnTypeBearRight,
219 CtTurnTypeRight,
221 CtTurnTypeSharpRight,
223 CtTurnTypeAround,
225 CtTurnTypeSharpLeft,
227 CtTurnTypeLeft,
232 CtTurnTypeBearLeft
233 };
234
235typedef CtTurnType CartoTypeTurnType;
236
241typedef NS_ENUM(NSInteger,CtRoundaboutState)
242 {
244 CtRoundaboutStateNone,
246 CtRoundaboutStateEnter,
248 CtRoundaboutStateContinue,
250 CtRoundaboutStateExit
251 };
252
253typedef CtRoundaboutState CartoTypeRoundaboutState;
254
256@interface CtTurn: NSObject
258 @property (nonatomic) CtTurnType turnType;
260 @property (nonatomic) bool isContinue;
262 @property (nonatomic) CtRoundaboutState roundaboutState;
264 @property (nonatomic) double turnAngle;
266 @property (nonatomic) int exitNumber;
268 @property (nonatomic) double distance;
270 @property (nonatomic) double time;
272 @property (nonatomic, strong) NSString* fromName;
274 @property (nonatomic, strong) NSString* fromRef;
276 @property (nonatomic) CtFeatureInfo* fromRouteInfo;
278 @property (nonatomic, strong) NSString* toName;
280 @property (nonatomic, strong) NSString* toRef;
282 @property (nonatomic) CtFeatureInfo* toRouteInfo;
284 @property (nonatomic, strong) NSString* destination;
286 @property (nonatomic) CtPoint position;
288 @property (nonatomic, strong) NSString* instructions;
290 @property (nonatomic) int index;
291@end
293@compatibility_alias CartoTypeTurn CtTurn;
294
296typedef NS_ENUM(NSInteger,CtSideOfRoad)
297 {
298 CtSideOfRoadNone,
299 CtSideOfRoadRight,
300 CtSideOfRoadLeft,
301 CtSideOfRoadBoth
302 };
303
304typedef CtSideOfRoad CartoTypeSideOfRoad;
305
307@interface CtNearestRoadInfo: NSObject
309 @property (nonatomic, strong) CtFeatureInfo* featureInfo;
314 @property (nonatomic) double maxSpeed;
316 @property (nonatomic, strong) NSString* name;
318 @property (nonatomic, strong) NSString* ref;
320 @property (nonatomic) CtPoint nearestPoint;
322 @property (nonatomic) double distance;
324 @property (nonatomic) double headingInDegrees;
326 @property (nonatomic) CtPoint headingVector;
332 @property (nonatomic) CtSideOfRoad sideOfRoad;
333@end
335@compatibility_alias CartoTypeNearestRoadInfo CtNearestRoadInfo;
336
338@interface CtLocationMatchParam: NSObject
340 -(id)init;
346 @property (nonatomic) double locationAccuracyInMeters;
352 @property (nonatomic) double headingAccuracyInDegrees;
358 @property (nonatomic) double maxRoadDistanceInMeters;
359@end
361@compatibility_alias CartoTypeLocationMatchParam CtLocationMatchParam;
362
364@interface CtRoutePoint: NSObject
366 @property (nonatomic) CtPoint point;
368 @property (nonatomic) double heading;
370 @property (nonatomic) bool headingKnown;
372 @property (nonatomic, strong) CtLocationMatchParam* locationMatchParam;
374 -(void*)routePoint;
375@end
377@compatibility_alias CartoTypeRoutePoint CtRoutePoint;
378
384@interface CtRouteCoordSet: NSObject
386 @property (nonatomic) CtCoordType coordType;
388 -(void)append:(CtRoutePoint*)aPoint;
392 -(CtRoutePoint*)point:(int)aIndex;
395@end
397@compatibility_alias CartoTypeRouteCoordSet CtRouteCoordSet;
398
400@interface CtPointSet: NSObject
402 -(id)init:(CtCoordType)aCoordType;
404 @property (nonatomic, readonly) CtCoordType coordType;
406 -(void)append:(CtPoint)aPoint;
410 -(CtPoint)point:(int)aIndex;
412 -(void*)pointVector;
413@end
415@compatibility_alias CartoTypePointSet CtPointSet;
416
418typedef NS_OPTIONS(uint32_t,CtNavigationDataValid)
419 {
421 CtNavigationDataValidTime = 1,
423 CtNavigationDataValidPosition = 2,
425 CtNavigationDataValidSpeed = 4,
427 CtNavigationDataValidCourse = 8,
429 CtNavigationDataValidHeight = 16
430 };
431
432typedef CtNavigationDataValid CartoTypeNavigationDataValid;
433
435typedef struct
436 {
438 CtNavigationDataValid validity;
444 double time;
446 double longitude;
448 double latitude;
450 double speed;
452 double course;
454 double height;
456
458
460typedef NS_ENUM(NSInteger,CtNavigationState)
461 {
463 CtNavigationStateNone,
465 CtNavigationStateNoPosition,
467 CtNavigationStateTurn,
469 CtNavigationStateOffRoute,
471 CtNavigationStateRouting,
473 CtNavigationStateNewRoute,
475 CtNavigationStateTurnRound,
477 CtNavigationStateArrival,
479 CtNavigationStateDeparture
480 };
481
482typedef CtNavigationState CartoTypeNavigationState;
483
484typedef NS_OPTIONS(uint32_t,CtFollowMode)
485 {
487 CtFollowModeLocationFlag = 1,
489 CtFollowModeHeadingFlag = 2,
491 CtFollowModeZoomFlag = 4,
493 CtFollowModeNone = 0,
495 CtFollowModeLocation = CtFollowModeLocationFlag,
497 CtFollowModeLocationHeading = CtFollowModeLocationFlag | CtFollowModeHeadingFlag,
499 CtFollowModeLocationZoom = CtFollowModeLocationFlag | CtFollowModeZoomFlag,
501 CtFollowModeLocationHeadingZoom = CtFollowModeLocationFlag | CtFollowModeHeadingFlag | CtFollowModeZoomFlag
502 };
503
504typedef CtFollowMode CartoTypeFollowMode;
505
531
533
535@interface CtRouteSegment: NSObject <CtPath>
537 -(id)initWithRouteSegmentObject:(void*)aRouteSegmentObject;
541 -(NSString*)name;
543 -(NSString*)ref;
545 -(NSString*)destination;
547 -(double)distance;
549 -(double)time;
551 -(double)turnTime;
553 -(CtTurnType)turnType;
557 -(CtRoundaboutState)roundaboutState;
559 -(double)turnAngle;
563 -(int)choices;
567 -(int)pointCount:(int)aContourIndex;
569 -(CtPathPoint)point:(int)aContourIndex pointIndex:(int)aPointIndex;
571 -(int)section;
573 -(NSString*)instructions;
574 @end
576@compatibility_alias CartoTypeRouteSegment CtRouteSegment;
577
579@interface CtRoute: NSObject <CtPath>
581 -(id)initWithRouteObject:(void*)aRouteObject;
585 -(double)distance;
589 -(double)time;
593 -(CtRouteSegment*)routeSegmentByIndex:(int)aIndex;
607 -(void)nearestSegment:(CtPoint)aPoint info:(CtNearestSegmentinfo*)aInfo section:(int)aSection prevDistance:(double)aPreviousDistanceAlongRoute;
609 -(void)pointAtDistance:(double)aDistanceInMeters info:(CtNearestSegmentinfo*)aInfo;
611 -(void)pointAtTime:(double)aTimeInSeconds info:(CtNearestSegmentinfo*)aInfo;
615 -(int)pointCount:(int)aContourIndex;
617 -(CtPathPoint)point:(int)aContourIndex pointIndex:(int)aPointIndex;
619 -(void*)route;
620@end
622@compatibility_alias CartoTypeRoute CtRoute;
623
628typedef struct
629 {
631 uint32_t vehicleTypes;
633 double speed;
635
637
639typedef NS_ENUM(NSInteger,CtRoadOrientation)
640 {
641 CtRoadOrientationNone,
642 CtRoadOrientationForwards,
643 CtRoadOrientationBackwards,
644 CtRoadOrientationBoth,
645 };
646
647typedef CtRoadOrientation CartoTypeRoadOrientation;
648
650typedef NS_ENUM(NSInteger,CtLocationRefType)
651 {
653 CtLocationRefTypeLine,
655 CtLocationRefTypeGeoCoordinate,
657 CtLocationRefTypePointAlongLine,
659 CtLocationRefTypePointWithAccessPoint,
661 CtLocationRefTypeCircle,
663 CtLocationRefTypeRectangle,
665 CtLocationRefTypePolygon,
667 CtLocationRefTypeClosedLine
668 };
669
670typedef CtLocationRefType CartoTypeLocationRefType;
671
673typedef struct
674 {
676 CtLocationRefType type;
678 __unsafe_unretained NSString* identifier;
680 __unsafe_unretained CtGeometry* geometry;
684 CtSideOfRoad sideOfRoad;
686 CtRoadOrientation roadOrientation;
688
690
692@interface CtNavigatorParam: NSObject
694 @property (nonatomic) int minimumFixDistance;
696 @property (nonatomic) int routeDistanceTolerance;
698 @property (nonatomic) int routeTimeTolerance;
703 @property (nonatomic) bool navigationEnabled;
706@end
708@compatibility_alias CartoTypeNavigatorParam CtNavigatorParam;
709
711@interface CtTimeAndDistanceMatrix: NSObject
713 @property (nonatomic, readonly) int fromCount;
715 @property (nonatomic, readonly) int toCount;
717 -(int)time:(int)aFromIndex to:(int)aToIndex;
719 -(int)distance:(int)aFromIndex to:(int)aToIndex;
721 -(id)initWithMatrix:(void*)aMatrix;
722@end
724@compatibility_alias CartoTypeTimeAndDistanceMatrix CtTimeAndDistanceMatrix;
725
726#endif
typedef NS_OPTIONS(NSUInteger, CtFontStyle)
Definition CartoTypeBase.h:22
typedef NS_ENUM(NSInteger, CtFileType)
Definition CartoTypeBase.h:73
CtRoadOrientation CartoTypeRoadOrientation
Definition CartoTypeRouter.h:647
CtRouteProfileType CartoTypeRouteProfileType
Definition CartoTypeRouter.h:37
CtNavigationData CartoTypeNavigationData
Definition CartoTypeRouter.h:457
CtTurnType CartoTypeTurnType
Definition CartoTypeRouter.h:235
CtRoundaboutState CartoTypeRoundaboutState
Definition CartoTypeRouter.h:253
CtFollowMode CartoTypeFollowMode
Definition CartoTypeRouter.h:504
CtNearestSegmentinfo CartoTypeNearestSegmentinfo
Definition CartoTypeRouter.h:532
CtRouterType CartoTypeRouterType
Definition CartoTypeRouter.h:193
CtLocationRef CartoTypeLocationRef
Definition CartoTypeRouter.h:689
CtNavigationState CartoTypeNavigationState
Definition CartoTypeRouter.h:482
typedef NS_ENUM(NSInteger, CtRouteProfileType)
Definition CartoTypeRouter.h:21
CtNavigationDataValid CartoTypeNavigationDataValid
Definition CartoTypeRouter.h:432
CtLocationRefType CartoTypeLocationRefType
Definition CartoTypeRouter.h:670
CtTrafficInfo CartoTypeTrafficInfo
Definition CartoTypeRouter.h:636
CtSideOfRoad CartoTypeSideOfRoad
Definition CartoTypeRouter.h:304
Definition CartoTypeBase.h:794
Definition CartoTypeBase.h:1040
Definition CartoTypeRouter.h:339
double headingAccuracyInDegrees
Definition CartoTypeRouter.h:352
double locationAccuracyInMeters
Definition CartoTypeRouter.h:346
double maxRoadDistanceInMeters
Definition CartoTypeRouter.h:358
Definition CartoTypeRouter.h:693
void * navigatorParam()
int routeTimeTolerance
Definition CartoTypeRouter.h:698
int minimumFixDistance
Definition CartoTypeRouter.h:694
int routeDistanceTolerance
Definition CartoTypeRouter.h:696
bool navigationEnabled
Definition CartoTypeRouter.h:703
Definition CartoTypeRouter.h:308
double distance
Definition CartoTypeRouter.h:322
NSString * ref
Definition CartoTypeRouter.h:318
CtSideOfRoad sideOfRoad
Definition CartoTypeRouter.h:332
CtPoint nearestPoint
Definition CartoTypeRouter.h:320
CtPoint headingVector
Definition CartoTypeRouter.h:326
NSString * name
Definition CartoTypeRouter.h:316
double maxSpeed
Definition CartoTypeRouter.h:314
double headingInDegrees
Definition CartoTypeRouter.h:324
CtFeatureInfo * featureInfo
Definition CartoTypeRouter.h:309
Definition CartoTypeRouter.h:401
CtCoordType coordType
Definition CartoTypeRouter.h:404
int pointCount()
void * pointVector()
Definition CartoTypeRouter.h:385
CtCoordType coordType
Definition CartoTypeRouter.h:386
void * routeCoordSet()
Definition CartoTypeRouter.h:579
int routeSegmentCount()
double distance()
int contourCount()
void * route()
CtGeometry * geometry()
double tollRoadDistance()
double time()
Definition CartoTypeRouter.h:365
void * routePoint()
CtPoint point
Definition CartoTypeRouter.h:366
double heading
Definition CartoTypeRouter.h:368
CtLocationMatchParam * locationMatchParam
Definition CartoTypeRouter.h:372
bool headingKnown
Definition CartoTypeRouter.h:370
Definition CartoTypeRouter.h:44
uint32_t gradientFlags
Definition CartoTypeRouter.h:167
double tripleAxleLoad
Definition CartoTypeRouter.h:69
double height
Definition CartoTypeRouter.h:72
double axleLoad
Definition CartoTypeRouter.h:63
NSString * name
Definition CartoTypeRouter.h:51
bool shortest
Definition CartoTypeRouter.h:135
bool hazMat
Definition CartoTypeRouter.h:81
double tollPenalty
Definition CartoTypeRouter.h:146
double weight
Definition CartoTypeRouter.h:60
int uTurnTime
Definition CartoTypeRouter.h:118
bool shortestByTime
Definition CartoTypeRouter.h:138
double length
Definition CartoTypeRouter.h:78
uint32_t vehicleType
Definition CartoTypeRouter.h:57
int crossTrafficTurnTime
Definition CartoTypeRouter.h:127
double width
Definition CartoTypeRouter.h:75
int trafficLightTime
Definition CartoTypeRouter.h:132
int turnTime
Definition CartoTypeRouter.h:112
double doubleAxleLoad
Definition CartoTypeRouter.h:66
Definition CartoTypeRouter.h:535
CtTurnType turnType()
NSString * ref()
NSString * name()
CtFeatureInfo * featureInfo()
double turnAngle()
CtRoundaboutState roundaboutState()
NSString * destination()
NSString * instructions()
Definition CartoTypeRouter.h:712
int toCount
Definition CartoTypeRouter.h:715
int fromCount
Definition CartoTypeRouter.h:713
Definition CartoTypeRouter.h:257
double time
Definition CartoTypeRouter.h:270
CtTurnType turnType
Definition CartoTypeRouter.h:258
CtFeatureInfo * fromRouteInfo
Definition CartoTypeRouter.h:276
NSString * toRef
Definition CartoTypeRouter.h:280
bool isContinue
Definition CartoTypeRouter.h:260
double turnAngle
Definition CartoTypeRouter.h:264
CtFeatureInfo * toRouteInfo
Definition CartoTypeRouter.h:282
int exitNumber
Definition CartoTypeRouter.h:266
NSString * fromRef
Definition CartoTypeRouter.h:274
NSString * instructions
Definition CartoTypeRouter.h:288
int index
Definition CartoTypeRouter.h:290
double distance
Definition CartoTypeRouter.h:268
CtRoundaboutState roundaboutState
Definition CartoTypeRouter.h:262
NSString * fromName
Definition CartoTypeRouter.h:272
NSString * destination
Definition CartoTypeRouter.h:284
CtPoint position
Definition CartoTypeRouter.h:286
NSString * toName
Definition CartoTypeRouter.h:278
Definition CartoTypeBase.h:381
Definition CartoTypeRouter.h:674
__unsafe_unretained CtGeometry * geometry
Definition CartoTypeRouter.h:680
__unsafe_unretained NSString * identifier
Definition CartoTypeRouter.h:678
CtLocationRefType type
Definition CartoTypeRouter.h:676
CtRoadOrientation roadOrientation
Definition CartoTypeRouter.h:686
CtSideOfRoad sideOfRoad
Definition CartoTypeRouter.h:684
double radiusInMeters
Definition CartoTypeRouter.h:682
Definition CartoTypeRouter.h:436
CtNavigationDataValid validity
Definition CartoTypeRouter.h:438
double height
Definition CartoTypeRouter.h:454
double time
Definition CartoTypeRouter.h:444
double speed
Definition CartoTypeRouter.h:450
double latitude
Definition CartoTypeRouter.h:448
double course
Definition CartoTypeRouter.h:452
double longitude
Definition CartoTypeRouter.h:446
Definition CartoTypeRouter.h:508
double distanceToRoute
Definition CartoTypeRouter.h:519
double heading
Definition CartoTypeRouter.h:529
double distanceAlongRoute
Definition CartoTypeRouter.h:521
double distanceAlongSegment
Definition CartoTypeRouter.h:523
double timeAlongSegment
Definition CartoTypeRouter.h:527
int segmentIndex
Definition CartoTypeRouter.h:510
double timeAlongRoute
Definition CartoTypeRouter.h:525
int lineIndex
Definition CartoTypeRouter.h:515
CtPoint nearestPoint
Definition CartoTypeRouter.h:517
Definition CartoTypeBase.h:153
Definition CartoTypeBase.h:179
Definition CartoTypeRouter.h:629
double speed
Definition CartoTypeRouter.h:633
uint32_t vehicleTypes
Definition CartoTypeRouter.h:631