CartoType iOS API 8.8-13-g03c6f7017
for development in Swift and Objective C for iOS and Mac OS
CartoTypeRouter.h
Go to the documentation of this file.
1/*
2CartoTypeRouter.h
3Copyright 2013-2023 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
18static const uint32_t KMaxRoutesDisplayed = 16;
19
21typedef enum
22 {
34
39@interface CartoTypeRouteProfile: NSObject
41 -(id)init;
42
44 -(id)initWithProfileType:(CartoTypeRouteProfileType)aProfileType;
45
47 @property (nonatomic, strong) NSString* name;
48
53 @property (nonatomic) uint32_t vehicleType;
54
56 @property (nonatomic) double weight;
57
59 @property (nonatomic) double axleLoad;
60
62 @property (nonatomic) double doubleAxleLoad;
63
65 @property (nonatomic) double tripleAxleLoad;
66
68 @property (nonatomic) double height;
69
71 @property (nonatomic) double width;
72
74 @property (nonatomic) double length;
75
77 @property (nonatomic) bool hazMat;
78
80 -(double)speed:(unsigned int)aIndex;
82 -(void)setSpeed:(unsigned int)aIndex to:(double)aValue;
88 -(double)bonus:(unsigned int)aIndex;
90 -(void)setBonus:(unsigned int)aIndex to:(double)aValue;
91
95 -(uint32_t)restrictionOverride:(unsigned int)aIndex;
102 -(void)setRestrictionOverride:(unsigned int)aIndex to:(uint32_t)aValue;
103
108 @property (nonatomic) int turnTime;
109
114 @property (nonatomic) int uTurnTime;
115
123 @property (nonatomic) int crossTrafficTurnTime;
124
128 @property (nonatomic) int trafficLightTime;
129
131 @property (nonatomic) bool shortest;
132
134 @property (nonatomic) bool shortestByTime;
135
142 @property (nonatomic) double tollPenalty;
143
150 -(double)gradientSpeed:(unsigned int)aIndex;
152 -(void)setGradientSpeed:(unsigned int)aIndex to:(double)aValue;
153
155 -(double)gradientBonus:(unsigned int)aIndex;
157 -(void)setGradientBonus:(unsigned int)aIndex to:(double)aValue;
158
163 @property (nonatomic) uint32_t gradientFlags;
164
166 -(void*)profile;
167@end
168
170typedef enum
171 {
186
196typedef enum
197 {
226
231typedef enum
232 {
242
244@interface CartoTypeTurn: NSObject
246 @property (nonatomic) CartoTypeTurnType turnType;
248 @property (nonatomic) bool isContinue;
252 @property (nonatomic) double turnAngle;
254 @property (nonatomic) int exitNumber;
256 @property (nonatomic) double distance;
258 @property (nonatomic) double time;
260 @property (nonatomic, strong) NSString* fromName;
262 @property (nonatomic, strong) NSString* fromRef;
264 @property (nonatomic) CartoTypeFeatureInfo* fromRouteInfo;
266 @property (nonatomic, strong) NSString* toName;
268 @property (nonatomic, strong) NSString* toRef;
270 @property (nonatomic) CartoTypeFeatureInfo* toRouteInfo;
272 @property (nonatomic) CartoTypePoint position;
274 @property (nonatomic, strong) NSString* instructions;
275@end
276
278typedef enum
279 {
280 SideOfRoadNone,
281 SideOfRoadRight,
282 SideOfRoadLeft,
283 SideOfRoadBoth
285
287@interface CartoTypeNearestRoadInfo: NSObject
289 @property (nonatomic, strong) CartoTypeFeatureInfo* featureInfo;
294 @property (nonatomic) double maxSpeed;
296 @property (nonatomic, strong) NSString* name;
298 @property (nonatomic, strong) NSString* ref;
300 @property (nonatomic) CartoTypePoint nearestPoint;
302 @property (nonatomic) double distance;
304 @property (nonatomic) double headingInDegrees;
306 @property (nonatomic) CartoTypePoint headingVector;
312 @property (nonatomic) CartoTypeSideOfRoad sideOfRoad;
313@end
314
316@interface CartoTypeLocationMatchParam: NSObject
318 -(id)init;
324 @property (nonatomic) double locationAccuracyInMeters;
330 @property (nonatomic) double headingAccuracyInDegrees;
336 @property (nonatomic) double maxRoadDistanceInMeters;
337@end
338
340@interface CartoTypeRoutePoint: NSObject
342 @property (nonatomic) CartoTypePoint point;
344 @property (nonatomic) double heading;
346 @property (nonatomic) bool headingKnown;
348 @property (nonatomic, strong) CartoTypeLocationMatchParam* locationMatchParam;
350 -(void*)routePoint;
351@end
352
358@interface CartoTypeRouteCoordSet: NSObject
360 @property (nonatomic) CartoTypeCoordType coordType;
362 -(void)append:(CartoTypeRoutePoint*)aPoint;
364 -(int)pointCount;
366 -(CartoTypeRoutePoint*)point:(int)aIndex;
368 -(void*)routeCoordSet;
369@end
370
372@interface CartoTypePointSet: NSObject
374 -(id)init:(CartoTypeCoordType)aCoordType;
376 @property (nonatomic, readonly) CartoTypeCoordType coordType;
378 -(void)append:(CartoTypePoint)aPoint;
380 -(int)pointCount;
382 -(CartoTypePoint)point:(int)aIndex;
384 -(void*)pointVector;
385@end
386
388static const uint32_t KTimeValid = 1;
390static const uint32_t KPositionValid = 2;
392static const uint32_t KSpeedValid = 4;
394static const uint32_t KCourseValid = 8;
396static const uint32_t KHeightValid = 16;
397
399typedef struct
400 {
402 uint32_t validity;
408 double time;
410 double longitude;
412 double latitude;
414 double speed;
416 double course;
418 double height;
420
422typedef enum
423 {
441
443static const uint32_t KFollowFlagLocation = 1;
445static const uint32_t KFollowFlagHeading = 2;
447static const uint32_t KFollowFlagZoom = 4;
448
450typedef enum
451 {
455 FollowModeLocation = KFollowFlagLocation,
457 FollowModeLocationHeading = KFollowFlagLocation | KFollowFlagHeading,
459 FollowModeLocationZoom = KFollowFlagLocation | KFollowFlagZoom,
461 FollowModeLocationHeadingZoom = KFollowFlagLocation | KFollowFlagHeading | KFollowFlagZoom
463
465typedef struct
466 {
487 double heading;
489
493 -(id)initWithRouteSegmentObject:(void*)aRouteSegmentObject;
495 -(void)dealloc;
499 -(NSString*)name;
501 -(NSString*)ref;
503 -(double)distance;
505 -(double)time;
507 -(double)turnTime;
511 -(bool)isContinue;
515 -(double)turnAngle;
517 -(int)exitNumber;
519 -(int)choices;
521 -(int)contourCount;
523 -(int)pointCount:(int)aContourIndex;
525 -(CartoTypePathPoint)point:(int)aContourIndex pointIndex:(int)aPointIndex;
527 -(int)section;
528@end
529
531@interface CartoTypeRoute: NSObject <CartoTypePath>
533 -(id)initWithRouteObject:(void*)aRouteObject;
535 -(void)dealloc;
539 -(double)distance;
541 -(double)tollRoadDistance;
543 -(double)time;
545 -(int)routeSegmentCount;
547 -(CartoTypeRouteSegment*)routeSegmentByIndex:(int)aIndex;
561 -(void)nearestSegment:(CartoTypePoint)aPoint info:(CartoTypeNearestSegmentinfo*)aInfo section:(int)aSection prevDistance:(double)aPreviousDistanceAlongRoute;
563 -(void)pointAtDistance:(double)aDistanceInMeters info:(CartoTypeNearestSegmentinfo*)aInfo;
565 -(void)pointAtTime:(double)aTimeInSeconds info:(CartoTypeNearestSegmentinfo*)aInfo;
567 -(int)contourCount;
569 -(int)pointCount:(int)aContourIndex;
571 -(CartoTypePathPoint)point:(int)aContourIndex pointIndex:(int)aPointIndex;
573 -(void*)route;
574@end
575
580typedef struct
581 {
583 uint32_t vehicleTypes;
585 double speed;
587
589typedef enum
590 {
591 RoadOrientationNone,
592 RoadOrientationForwards,
593 RoadOrientationBackwards,
594 RoadOrientationBoth,
596
598typedef enum
599 {
617
619typedef struct
620 {
624 __unsafe_unretained NSString* identifier;
626 __unsafe_unretained CartoTypeGeometry* geometry;
634
636@interface CartoTypeNavigatorParam: NSObject
638 @property (nonatomic) int minimumFixDistance;
640 @property (nonatomic) int routeDistanceTolerance;
642 @property (nonatomic) int routeTimeTolerance;
647 @property (nonatomic) bool navigationEnabled;
649 -(void*)navigatorParam;
650@end
651
655 @property (nonatomic, readonly) int fromCount;
657 @property (nonatomic, readonly) int toCount;
659 -(int)time:(int)aFromIndex to:(int)aToIndex;
661 -(int)distance:(int)aFromIndex to:(int)aToIndex;
663 -(id)initWithMatrix:(void*)aMatrix;
664@end
665
666
667#endif
CartoTypeCoordType
Definition: CartoTypeBase.h:216
CartoTypeRouteProfileType
Definition: CartoTypeRouter.h:22
@ WalkingProfile
Definition: CartoTypeRouter.h:26
@ SkiProfile
A profile type for downhill skiing.
Definition: CartoTypeRouter.h:32
@ HikingProfile
Definition: CartoTypeRouter.h:30
@ CarProfile
Definition: CartoTypeRouter.h:24
@ BicycleProfile
Definition: CartoTypeRouter.h:28
CartoTypeRoundaboutState
Definition: CartoTypeRouter.h:232
@ RoundaboutStateExit
Definition: CartoTypeRouter.h:240
@ RoundaboutStateEnter
Definition: CartoTypeRouter.h:236
@ RoundaboutStateNone
Definition: CartoTypeRouter.h:234
@ RoundaboutStateContinue
Definition: CartoTypeRouter.h:238
CartoTypeTurnType
Definition: CartoTypeRouter.h:197
@ TurnTypeBearRight
Definition: CartoTypeRouter.h:209
@ TurnTypeAhead
Definition: CartoTypeRouter.h:204
@ TurnTypeRight
Definition: CartoTypeRouter.h:211
@ TurnTypeSharpRight
Definition: CartoTypeRouter.h:213
@ TurnTypeNone
Definition: CartoTypeRouter.h:199
@ TurnTypeBearLeft
Definition: CartoTypeRouter.h:224
@ TurnTypeLeft
Definition: CartoTypeRouter.h:219
@ TurnTypeSharpLeft
Definition: CartoTypeRouter.h:217
@ TurnTypeAround
Definition: CartoTypeRouter.h:215
CartoTypeRoadOrientation
Definition: CartoTypeRouter.h:590
CartoTypeNavigationState
Definition: CartoTypeRouter.h:423
@ NoNavigationState
Definition: CartoTypeRouter.h:425
@ OffRouteNavigationState
Definition: CartoTypeRouter.h:431
@ NewRouteNavigationState
Definition: CartoTypeRouter.h:435
@ TurnRoundNavigationState
Definition: CartoTypeRouter.h:437
@ ArrivalNavigationState
Definition: CartoTypeRouter.h:439
@ RoutingNavigationState
Definition: CartoTypeRouter.h:433
@ TurnNavigationState
Definition: CartoTypeRouter.h:429
@ NoPositionNavigationState
Definition: CartoTypeRouter.h:427
CartoTypeRouterType
Definition: CartoTypeRouter.h:171
@ RouterTypeDefault
Definition: CartoTypeRouter.h:173
@ RouterTypeStandardContractionHierarchy
Definition: CartoTypeRouter.h:182
@ RouterTypeTECH
Definition: CartoTypeRouter.h:184
@ RouterTypeTurnExpandedAStar
Definition: CartoTypeRouter.h:177
@ RouterTypeStandardAStar
Definition: CartoTypeRouter.h:175
CartoTypeLocationRefType
Definition: CartoTypeRouter.h:599
@ LocationRefPolygon
Definition: CartoTypeRouter.h:613
@ LocationRefGeoCoordinate
Definition: CartoTypeRouter.h:603
@ LocationRefPointWithAccessPoint
Definition: CartoTypeRouter.h:607
@ LocationRefRectangle
Definition: CartoTypeRouter.h:611
@ LocationRefClosedLine
Definition: CartoTypeRouter.h:615
@ LocationRefCircle
Definition: CartoTypeRouter.h:609
@ LocationRefLine
Definition: CartoTypeRouter.h:601
@ LocationRefPointAlongLine
Definition: CartoTypeRouter.h:605
CartoTypeSideOfRoad
Definition: CartoTypeRouter.h:279
CartoTypeFollowMode
Definition: CartoTypeRouter.h:451
@ FollowModeLocationHeadingZoom
Definition: CartoTypeRouter.h:461
@ FollowModeLocationZoom
Definition: CartoTypeRouter.h:459
@ FollowModeLocation
Definition: CartoTypeRouter.h:455
@ FollowModeNone
Definition: CartoTypeRouter.h:453
@ FollowModeLocationHeading
Definition: CartoTypeRouter.h:457
Definition: CartoTypeBase.h:730
Definition: CartoTypeBase.h:961
Definition: CartoTypeRouter.h:317
double locationAccuracyInMeters
Definition: CartoTypeRouter.h:324
double headingAccuracyInDegrees
Definition: CartoTypeRouter.h:330
double maxRoadDistanceInMeters
Definition: CartoTypeRouter.h:336
Definition: CartoTypeRouter.h:637
Definition: CartoTypeRouter.h:288
Definition: CartoTypeRouter.h:373
CartoTypeCoordType coordType
Definition: CartoTypeRouter.h:376
Definition: CartoTypeRouter.h:359
Definition: CartoTypeRouter.h:531
double tollRoadDistance()
CartoTypeGeometry * geometry()
Definition: CartoTypeRouter.h:341
Definition: CartoTypeRouter.h:40
int crossTrafficTurnTime
Definition: CartoTypeRouter.h:123
double tripleAxleLoad
Definition: CartoTypeRouter.h:65
bool shortestByTime
Definition: CartoTypeRouter.h:134
double doubleAxleLoad
Definition: CartoTypeRouter.h:62
double length
Definition: CartoTypeRouter.h:74
NSString * name
Definition: CartoTypeRouter.h:47
bool hazMat
Definition: CartoTypeRouter.h:77
double width
Definition: CartoTypeRouter.h:71
uint32_t vehicleType
Definition: CartoTypeRouter.h:53
int trafficLightTime
Definition: CartoTypeRouter.h:128
int turnTime
Definition: CartoTypeRouter.h:108
double tollPenalty
Definition: CartoTypeRouter.h:142
uint32_t gradientFlags
Definition: CartoTypeRouter.h:163
bool shortest
Definition: CartoTypeRouter.h:131
int uTurnTime
Definition: CartoTypeRouter.h:114
double height
Definition: CartoTypeRouter.h:68
double weight
Definition: CartoTypeRouter.h:56
double axleLoad
Definition: CartoTypeRouter.h:59
Definition: CartoTypeRouter.h:491
CartoTypeFeatureInfo * featureInfo()
Definition: CartoTypeRouter.h:654
Definition: CartoTypeRouter.h:245
NSString * fromName
Definition: CartoTypeRouter.h:260
CartoTypeFeatureInfo * fromRouteInfo
Definition: CartoTypeRouter.h:264
CartoTypeTurnType turnType
Definition: CartoTypeRouter.h:246
CartoTypeRoundaboutState roundaboutState
Definition: CartoTypeRouter.h:250
double turnAngle
Definition: CartoTypeRouter.h:252
double distance
Definition: CartoTypeRouter.h:256
CartoTypePoint position
Definition: CartoTypeRouter.h:272
int exitNumber
Definition: CartoTypeRouter.h:254
NSString * toRef
Definition: CartoTypeRouter.h:268
CartoTypeFeatureInfo * toRouteInfo
Definition: CartoTypeRouter.h:270
NSString * toName
Definition: CartoTypeRouter.h:266
bool isContinue
Definition: CartoTypeRouter.h:248
NSString * fromRef
Definition: CartoTypeRouter.h:262
double time
Definition: CartoTypeRouter.h:258
NSString * instructions
Definition: CartoTypeRouter.h:274
Definition: CartoTypeBase.h:329
Definition: CartoTypeRouter.h:620
__unsafe_unretained CartoTypeGeometry * geometry
Definition: CartoTypeRouter.h:626
CartoTypeLocationRefType type
Definition: CartoTypeRouter.h:622
CartoTypeSideOfRoad sideOfRoad
Definition: CartoTypeRouter.h:630
CartoTypeRoadOrientation roadOrientation
Definition: CartoTypeRouter.h:632
double radiusInMeters
Definition: CartoTypeRouter.h:628
__unsafe_unretained NSString * identifier
Definition: CartoTypeRouter.h:624
Definition: CartoTypeRouter.h:400
double longitude
Definition: CartoTypeRouter.h:410
uint32_t validity
Definition: CartoTypeRouter.h:402
double course
Definition: CartoTypeRouter.h:416
double speed
Definition: CartoTypeRouter.h:414
double time
Definition: CartoTypeRouter.h:408
double height
Definition: CartoTypeRouter.h:418
double latitude
Definition: CartoTypeRouter.h:412
Definition: CartoTypeRouter.h:466
int lineIndex
Definition: CartoTypeRouter.h:473
double timeAlongRoute
Definition: CartoTypeRouter.h:483
CartoTypePoint nearestPoint
Definition: CartoTypeRouter.h:475
double distanceAlongSegment
Definition: CartoTypeRouter.h:481
double distanceToRoute
Definition: CartoTypeRouter.h:477
double distanceAlongRoute
Definition: CartoTypeRouter.h:479
double timeAlongSegment
Definition: CartoTypeRouter.h:485
int segmentIndex
Definition: CartoTypeRouter.h:468
Definition: CartoTypeBase.h:124
Definition: CartoTypeBase.h:146
Definition: CartoTypeRouter.h:581
double speed
Definition: CartoTypeRouter.h:585
uint32_t vehicleTypes
Definition: CartoTypeRouter.h:583