7#ifndef CartoTypeBase_h__
8#define CartoTypeBase_h__
10#import <Foundation/Foundation.h>
11#import <CoreGraphics/CGImage.h>
12#import <CoreGraphics/CGGeometry.h>
13#import <CartoType/CartoTypeResultCode.h>
280 @property (nonatomic) NSString* styles;
293 -(id)initWithBlendStyle:(
void*)aBlendStyle;
295 -(const void*)blendStyle;
301 @property (nonatomic, strong) NSString* building;
303 @property (nonatomic, strong) NSString* feature;
305 @property (nonatomic, strong) NSString* street;
307 @property (nonatomic, strong) NSString* subLocality;
309 @property (nonatomic, strong) NSString* locality;
311 @property (nonatomic, strong) NSString* island;
313 @property (nonatomic, strong) NSString* subAdminArea;
315 @property (nonatomic, strong) NSString* adminArea;
317 @property (nonatomic, strong) NSString* country;
319 @property (nonatomic, strong) NSString* postCode;
325 -(NSString*)ToString:(
bool) aFull;
333 -(int)pointCount:(
int)aContourIndex;
341 @property (nonatomic)
bool found;
343 @property (nonatomic, strong) NSString* key;
345 @property (nonatomic, strong) NSString* value;
347 @property (nonatomic)
size_t start;
349 @property (nonatomic)
size_t end;
353#define MakeFeatureTypeCode(A,B,C) ((((A)-'a'+1) << 10) | (((B)-'a'+1) << 5) | ((C)-'a'+1))
364 FeatureTypeMotorway = 0,
365 FeatureTypeMotorwayLink = 1,
366 FeatureTypeTrunkRoad = 2,
367 FeatureTypeTrunkLink = 3,
368 FeatureTypePrimaryRoad = 4,
369 FeatureTypePrimaryLink = 5,
370 FeatureTypeSecondaryRoad = 6,
371 FeatureTypeSecondaryLink = 7,
372 FeatureTypeTertiaryRoad = 8,
373 FeatureTypeUnclassifiedRoad = 9,
374 FeatureTypeResidentialRoad = 10,
375 FeatureTypeTrack = 11,
376 FeatureTypeServiceRoad = 12,
377 FeatureTypePedestrianRoad = 13,
378 FeatureTypeVehicularFerry = 14,
379 FeatureTypePassengerFerry = 15,
380 FeatureTypeLivingStreet = 16,
381 FeatureTypeCycleway = 17,
382 FeatureTypePath = 18,
383 FeatureTypeFootway = 19,
384 FeatureTypeBridleway = 20,
385 FeatureTypeSteps = 21,
386 FeatureTypeOtherRoad = 22,
387 FeatureTypeUnpavedRoad = 23,
388 FeatureTypeRailway = 24,
389 FeatureTypeLightRail = 25,
390 FeatureTypeSubway = 26,
391 FeatureTypeAerialWay = 27,
392 FeatureTypeSkiDownhill = 28,
393 FeatureTypeSkiNordic = 29,
394 FeatureTypeWaterway = 30,
395 FeatureTypeUnknownRoute = 31,
397 FeatureTypeUnknownNonRoute = 32,
696 FeatureTypeInvalid = INT16_MAX
744 -(id)initWithSubType:(
int)aSubType;
772 @property (nonatomic)
bool toll;
780 -(void)setVehicleAccess:(
bool)aValue;
796 -(id)initWithRawValue:(uint32_t)aValue;
802static const uint32_t KFeatureInfoRouteTypeCount = 32;
804static const uint32_t KFeatureInfoGradientCount = 8;
806static const uint32_t KFeatureInfoMaxSubType = 2047;
809static const uint32_t KRouteAccessShift = 26;
811static const uint32_t KRouteAccessMask = 63U << KRouteAccessShift;
813static const uint32_t KRouteAccessWrongWayFlag = 1 << 26;
815static const uint32_t KRouteAccessPedestrianFlag = 1 << 27;
817static const uint32_t KRouteAccessCycleFlag = 1 << 28;
819static const uint32_t KRouteAccessMotorVehicleFlag = 1 << 29;
821static const uint32_t KRouteAccessEmergencyVehicleFlag = 1 << 30;
823static const uint32_t KRouteAccessOtherFlag = 1U << 31;
825static const uint32_t KRouteAccessVehicle = KRouteAccessCycleFlag | KRouteAccessMotorVehicleFlag | KRouteAccessEmergencyVehicleFlag;
827static const uint32_t KRouteAccessNormal = KRouteAccessCycleFlag | KRouteAccessMotorVehicleFlag | KRouteAccessPedestrianFlag;
832 -(id)initWithMapObject:(
void*)aMapObject;
840 @property (nonatomic) NSString*
label;
842 -(NSString*)stringAttribute:(NSString*)aAttribName;
885 -(int)pointCount:(
int)aContourIndex;
889 @property (nonatomic)
double area;
900 -(id)initWithMapObjectGroup:(
void*)aMapObjectGroup;
902 @property (nonatomic, strong) NSString*
name;
930 @property (nonatomic)
double distance;
966 -(id)initWithGeometryContour:(
CartoTypeGeometry*)aGeometry contourIndex:(
int)aContourIndex;
974 -(void)appendX:(
double)aX andY:(
double)aY;
976 -(void)appendX:(
double)aX andY:(
double)aY andPointType:(
CartoTypePointType)aPointType;
982 -(bool)contourIsOuter:(
int)aContourIndex;
984 -(int)pointCount:(
int)aContourIndex;
992 -(void)setClosed:(
bool)aClosed;
996 -(
CTResult)convertLinesToGreatCircles:(
double)aMaxDistanceInMeters;
1045 -(id)initWithGeometry:(
void*)aGeometry;
1064 @property (nonatomic, strong) NSString*
layers;
1074 @property (nonatomic, strong) NSString*
text;
1136 -(id)init:(
CartoTypeNoticePosition)aPosition xInset:(
double)aXInset xUnit:(NSString*)aXUnit yInset:(
double)aYInset yUnit:(NSString*)aYUnit;
1144 -(id)init:(CGImageRef)aImage topLeft:(CGPoint)aTopLeft;
1156 -(
CTResult)readFromXml:(NSString*)aText;
1182 -(
CTResult)readFromXml:(NSString*)aText;
1224static const uint16_t KGlobalTable = 0;
1226static const uint16_t KLayerTable = 1;
1228static const uint16_t KTable2Obsolete = 2;
1230static const uint16_t KTable3Obsolete = 3;
1232static const uint16_t KProjectionTable = 4;
1234static const uint16_t KStringTable = 5;
1236static const uint16_t KLowResolutionLayerTable = 6;
1238static const uint16_t KPaletteTable = 7;
1240static const uint16_t KTextIndexTable = 8;
1242static const uint16_t KTable9Obsolete = 9;
1244static const uint16_t KRouteTableAStar = 10;
1246static const uint16_t KRouteTableCH = 11;
1248static const uint16_t KRouteTableExtra = 12;
1250static const uint16_t KRouteTableTurnExpanded = 13;
1252static const uint16_t KRouteTableCHStandAlone = 14;
1254static const uint16_t KRouteTableTECH = 15;
1256static const uint16_t KRouteTableCHTiled = 16;
1258static const uint16_t KRouteTableTECHTiled = 17;
1260static const uint16_t KRouteTableTurnExpandedCompact = 18;
1262static const uint16_t KNoTable = UINT16_MAX;
1295 @property (nonatomic)
int fileVersionMajor;
1297 @property (nonatomic)
int fileVersionMinor;
1299 @property (nonatomic)
int cartoTypeVersionMajor;
1301 @property (nonatomic)
int cartoTypeVersionMinor;
1303 @property (nonatomic)
int cartoTypeBuild;
1305 @property (nonatomic) NSString* dataSetName;
1307 @property (nonatomic) NSString* copyright;
1309 @property (nonatomic) NSString* projectionName;
1311 @property (nonatomic) NSMutableArray<NSString*>* layers;
1313 @property (nonatomic) NSString* projectionParameters;
1321 @property (nonatomic)
int routeTableType;
1323 @property (nonatomic)
bool routeDataHasGradients;
1325 @property (nonatomic)
bool largeFile;
1327 @property (nonatomic)
bool drivingSideKnown;
1329 @property (nonatomic)
bool driveOnLeft;
1332 -(id)initWithMetaData:(
void*)aMetaData;
1334 -(const void*)metaData;
1348 -(void)appendX:(
double)aX andY:(
double)aY;
1350 -(void)appendX:(
double)aX andY:(
double)aY andPointType:(
CartoTypePointType)aPointType;
1359 @property (nonatomic, strong) NSString*
layer;
@ CTBlue
Definition: CartoTypeBase.h:257
@ CTDarkGray
Definition: CartoTypeBase.h:237
@ CTDarkGreen
Definition: CartoTypeBase.h:241
@ CTGreen
Definition: CartoTypeBase.h:253
@ CTDarkYellow
Definition: CartoTypeBase.h:243
@ CTDarkMagenta
Definition: CartoTypeBase.h:247
@ CTDarkCyan
Definition: CartoTypeBase.h:249
@ CTDarkBlue
Definition: CartoTypeBase.h:245
@ CTBlack
Definition: CartoTypeBase.h:235
@ CTGray
Definition: CartoTypeBase.h:263
@ CTDarkRed
Definition: CartoTypeBase.h:239
@ CTYellow
Definition: CartoTypeBase.h:255
@ CTTransparentBlack
Definition: CartoTypeBase.h:268
@ CTRed
Definition: CartoTypeBase.h:251
@ CTCyan
Definition: CartoTypeBase.h:261
@ CTWhite
Definition: CartoTypeBase.h:265
@ CTMagenta
Definition: CartoTypeBase.h:259
#define MakeFeatureTypeCode(A, B, C)
Definition: CartoTypeBase.h:353
CartoTypeLetterCase
Definition: CartoTypeBase.h:1207
@ LetterCaseTitle
Definition: CartoTypeBase.h:1218
@ LetterCaseUpper
Definition: CartoTypeBase.h:1213
@ LetterCaseLower
Definition: CartoTypeBase.h:1211
@ LetterCaseNone
Definition: CartoTypeBase.h:1209
CartoTypeWritableMapType
Definition: CartoTypeBase.h:1093
@ MemoryWritableMapType
Definition: CartoTypeBase.h:1095
@ SQLiteWritableMapType
Definition: CartoTypeBase.h:1097
CartoTypeStringMatchMethod
Definition: CartoTypeBase.h:22
@ StringMatchFuzzy
Definition: CartoTypeBase.h:47
@ StringMatchIgnoreSymbolsFlag
Definition: CartoTypeBase.h:26
@ StringMatchIgnoreNonAlphanumerics
Definition: CartoTypeBase.h:43
@ StringMatchIgnoreWhitespaceFlag
Definition: CartoTypeBase.h:34
@ StringMatchFoldAccentsFlag
Definition: CartoTypeBase.h:28
@ StringMatchFoldCaseFlag
Definition: CartoTypeBase.h:32
@ StringMatchFoldCase
Definition: CartoTypeBase.h:39
@ StringMatchPrefixFlag
Definition: CartoTypeBase.h:24
@ StringMatchExact
Definition: CartoTypeBase.h:37
@ StringMatchLoose
Definition: CartoTypeBase.h:45
@ StringMatchPrefix
Definition: CartoTypeBase.h:41
@ StringMatchFuzzyFlag
Definition: CartoTypeBase.h:30
CartoTypeClipOperation
Definition: CartoTypeBase.h:948
@ UnionClipOperation
Definition: CartoTypeBase.h:952
@ XorClipOperation
Definition: CartoTypeBase.h:956
@ DifferenceClipOperation
Definition: CartoTypeBase.h:954
@ IntersectionClipOperation
Definition: CartoTypeBase.h:950
CartoTypeFeatureType
Definition: CartoTypeBase.h:363
CartoTypePathIntersectionType
Definition: CartoTypeBase.h:909
@ PathIntersectionTypeUnknown
Definition: CartoTypeBase.h:911
@ PathIntersectionTypeSeparate
Definition: CartoTypeBase.h:913
@ PathIntersectionTypeContained
Definition: CartoTypeBase.h:919
@ PathIntersectionTypeIntersects
Definition: CartoTypeBase.h:915
@ PathIntersectionTypeContains
Definition: CartoTypeBase.h:917
CartoTypeAlign
Definition: CartoTypeBase.h:109
@ AlignLeft
Definition: CartoTypeBase.h:117
@ AlignStandard
Definition: CartoTypeBase.h:113
@ AlignRight
Definition: CartoTypeBase.h:119
@ AlignReverse
Definition: CartoTypeBase.h:115
@ AlignCenter
Definition: CartoTypeBase.h:111
CartoTypeFeatureDiscriminator
Definition: CartoTypeBase.h:701
@ FeatureDiscriminatorTunnelRoute
Definition: CartoTypeBase.h:707
@ FeatureDiscriminatorNonRoute
Definition: CartoTypeBase.h:703
@ FeatureDiscriminatorRoute
Definition: CartoTypeBase.h:709
@ FeatureDiscriminatorBridgeRoute
Definition: CartoTypeBase.h:705
uint32_t CartoTypeColor
Definition: CartoTypeBase.h:230
CartoTypeCoordType
Definition: CartoTypeBase.h:216
@ DegreeCoordType
Definition: CartoTypeBase.h:218
@ MapCoordType
Definition: CartoTypeBase.h:224
@ DisplayCoordType
Definition: CartoTypeBase.h:220
@ MapMeterCoordType
Definition: CartoTypeBase.h:226
@ ScreenCoordType
Definition: CartoTypeBase.h:222
CartoTypeMapObjectType
Definition: CartoTypeBase.h:75
@ PointMapObjectType
Definition: CartoTypeBase.h:77
@ NoMapObjectType
Definition: CartoTypeBase.h:92
@ ArrayMapObjectType
Definition: CartoTypeBase.h:86
@ PolygonMapObjectType
Definition: CartoTypeBase.h:83
@ MapObjectTypes
Definition: CartoTypeBase.h:89
@ LineMapObjectType
Definition: CartoTypeBase.h:80
CartoTypePointType
Definition: CartoTypeBase.h:98
@ OnCurvePointType
Definition: CartoTypeBase.h:100
@ QuadraticPointType
Definition: CartoTypeBase.h:102
@ CubicPointType
Definition: CartoTypeBase.h:104
CartoTypeNoticePosition
Definition: CartoTypeBase.h:1102
@ NoticePositionLeft
Definition: CartoTypeBase.h:1116
@ NoticePositionRight
Definition: CartoTypeBase.h:1114
@ NoticePositionBottomLeft
Definition: CartoTypeBase.h:1108
@ NoticePositionCenter
Definition: CartoTypeBase.h:1120
@ NoticePositionBottom
Definition: CartoTypeBase.h:1118
@ NoticePositionTop
Definition: CartoTypeBase.h:1112
@ NoticePositionBottomRight
Definition: CartoTypeBase.h:1110
@ NoticePositionTopLeft
Definition: CartoTypeBase.h:1104
@ NoticePositionTopRight
Definition: CartoTypeBase.h:1106
CartoTypeFileType
Definition: CartoTypeBase.h:52
@ CtmsFileType
Definition: CartoTypeBase.h:62
@ GpxFileType
Definition: CartoTypeBase.h:70
@ Ctm1FileType
Definition: CartoTypeBase.h:60
@ CtsqlFileType
Definition: CartoTypeBase.h:66
@ KmlFileType
Definition: CartoTypeBase.h:64
@ CartoTypeRouteFileType
Definition: CartoTypeBase.h:68
@ JpegFileType
Definition: CartoTypeBase.h:56
@ PngFileType
Definition: CartoTypeBase.h:54
@ TiffFileType
Definition: CartoTypeBase.h:58
CartoTypePointFormat
Definition: CartoTypeBase.h:1270
@ PointFormatScaledDegree
Definition: CartoTypeBase.h:1283
@ PointFormatMeter
Definition: CartoTypeBase.h:1275
@ PointFormatMeter32nds
Definition: CartoTypeBase.h:1289
@ PointFormatUnknown
Definition: CartoTypeBase.h:1272
uint32_t CTResult
Definition: CartoTypeResultCode.h:359
Definition: CartoTypeBase.h:300
Definition: CartoTypeBase.h:276
Definition: CartoTypeBase.h:1135
Definition: CartoTypeBase.h:730
bool driveOnLeft
Definition: CartoTypeBase.h:764
bool pedestrianAccess
Definition: CartoTypeBase.h:782
bool roundabout
Definition: CartoTypeBase.h:770
bool bridge
Definition: CartoTypeBase.h:752
bool tunnel
Definition: CartoTypeBase.h:750
bool cycleAccess
Definition: CartoTypeBase.h:784
int speedLimit
Definition: CartoTypeBase.h:776
int level
Definition: CartoTypeBase.h:754
bool oneWayBackward
Definition: CartoTypeBase.h:762
bool wrongWay
Definition: CartoTypeBase.h:774
bool oneWayForward
Definition: CartoTypeBase.h:760
void reverseOneWayDirection()
bool toll
Definition: CartoTypeBase.h:772
bool oneWay
Definition: CartoTypeBase.h:758
int gradient
Definition: CartoTypeBase.h:778
bool driveOnRight
Definition: CartoTypeBase.h:766
bool route
Definition: CartoTypeBase.h:748
bool isPrivate
Definition: CartoTypeBase.h:792
int subType
Definition: CartoTypeBase.h:794
bool emergencyVehicleAccess
Definition: CartoTypeBase.h:788
bool otherAccessRestricted
Definition: CartoTypeBase.h:790
CartoTypeFeatureType type
Definition: CartoTypeBase.h:756
bool motorVehicleAccess
Definition: CartoTypeBase.h:786
CartoTypeFeatureDiscriminator discriminator
Definition: CartoTypeBase.h:746
Definition: CartoTypeBase.h:1052
double timeOut
Definition: CartoTypeBase.h:1088
int maxObjectCount
Definition: CartoTypeBase.h:1058
NSString * attributes
Definition: CartoTypeBase.h:1069
NSString * layers
Definition: CartoTypeBase.h:1064
CartoTypeGeometry * clip
Definition: CartoTypeBase.h:1060
CartoTypeStringMatchMethod stringMatchMethod
Definition: CartoTypeBase.h:1076
bool merge
Definition: CartoTypeBase.h:1083
NSString * text
Definition: CartoTypeBase.h:1074
CartoTypeGeometry * location
Definition: CartoTypeBase.h:1062
NSString * condition
Definition: CartoTypeBase.h:1081
Definition: CartoTypeBase.h:188
CartoTypeGeometry * geometry
Definition: CartoTypeBase.h:189
CTResult result
Definition: CartoTypeBase.h:191
Definition: CartoTypeBase.h:961
CartoTypeCoordType coordType()
Definition: CartoTypeBase.h:899
NSMutableArray * objectArray
Definition: CartoTypeBase.h:904
NSString * name
Definition: CartoTypeBase.h:902
Definition: CartoTypeBase.h:830
CartoTypeMapObjectType type
Definition: CartoTypeBase.h:836
CartoTypePointAndResult centerInDegrees
Definition: CartoTypeBase.h:864
double lengthOrPerimeter
Definition: CartoTypeBase.h:891
CartoTypeRect bounds
Definition: CartoTypeBase.h:855
double area
Definition: CartoTypeBase.h:889
NSString * label
Definition: CartoTypeBase.h:840
NSMutableDictionary * stringAttributes()
CartoTypePoint center
Definition: CartoTypeBase.h:852
CartoTypeFeatureInfo * featureInfo
Definition: CartoTypeBase.h:846
NSString * layerName
Definition: CartoTypeBase.h:838
CartoTypeGeometryAndResult * geometryInDegrees
Definition: CartoTypeBase.h:870
uint64_t objectId
Definition: CartoTypeBase.h:881
CartoTypeRectAndResult boundsInDegrees
Definition: CartoTypeBase.h:867
Definition: CartoTypeBase.h:1343
CartoTypeFeatureInfo * featureInfo
Definition: CartoTypeBase.h:1371
double radius
Definition: CartoTypeBase.h:1361
CartoTypeCoordType radiusCoordType
Definition: CartoTypeBase.h:1367
double radiusY
Definition: CartoTypeBase.h:1365
double radiusX
Definition: CartoTypeBase.h:1363
bool replace
Definition: CartoTypeBase.h:1377
NSString * layer
Definition: CartoTypeBase.h:1359
uint64_t objectId
Definition: CartoTypeBase.h:1375
uint32_t mapHandle
Definition: CartoTypeBase.h:1357
double rotationDegrees
Definition: CartoTypeBase.h:1369
NSString * stringAttrib
Definition: CartoTypeBase.h:1373
Definition: CartoTypeBase.h:340
Definition: CartoTypeBase.h:924
Definition: CartoTypeBase.h:1155
double declinationDegrees
Definition: CartoTypeBase.h:1170
bool autoAzimuth
Definition: CartoTypeBase.h:1168
void * getPerspectiveParam()
double rotationDegrees
Definition: CartoTypeBase.h:1172
bool autoPosition
Definition: CartoTypeBase.h:1162
double azimuthDegrees
Definition: CartoTypeBase.h:1166
CartoTypePoint positionDegrees
Definition: CartoTypeBase.h:1160
double heightMeters
Definition: CartoTypeBase.h:1164
double fieldOfViewDegrees
Definition: CartoTypeBase.h:1174
Definition: CartoTypeBase.h:1143
CGImageRef image
Definition: CartoTypeBase.h:1148
CGPoint topLeft
Definition: CartoTypeBase.h:1150
Definition: CartoTypeBase.h:1181
bool perspective
Definition: CartoTypeBase.h:1196
CartoTypePoint viewCenterDegrees
Definition: CartoTypeBase.h:1190
double scaleDenominator
Definition: CartoTypeBase.h:1192
CartoTypePerspectiveParam * getPerspectiveParam()
int heightInPixels
Definition: CartoTypeBase.h:1188
int widthInPixels
Definition: CartoTypeBase.h:1186
double rotationDegrees
Definition: CartoTypeBase.h:1194
Definition: CartoTypeBase.h:329
Definition: CartoTypeBase.h:205
CTResult result
Definition: CartoTypeBase.h:211
double length
Definition: CartoTypeBase.h:209
double area
Definition: CartoTypeBase.h:207
Definition: CartoTypeBase.h:196
CTResult result
Definition: CartoTypeBase.h:200
uint64_t objectId
Definition: CartoTypeBase.h:198
Definition: CartoTypeBase.h:135
CartoTypePointType type
Definition: CartoTypeBase.h:141
double y
Definition: CartoTypeBase.h:139
double x
Definition: CartoTypeBase.h:137
Definition: CartoTypeBase.h:124
int32_t x
Definition: CartoTypeBase.h:126
CartoTypePointType type
Definition: CartoTypeBase.h:130
int32_t y
Definition: CartoTypeBase.h:128
Definition: CartoTypeBase.h:168
CTResult result
Definition: CartoTypeBase.h:172
CartoTypePoint point
Definition: CartoTypeBase.h:170
Definition: CartoTypeBase.h:146
double x
Definition: CartoTypeBase.h:148
double y
Definition: CartoTypeBase.h:150
Definition: CartoTypeBase.h:177
CartoTypeRect rect
Definition: CartoTypeBase.h:179
CTResult result
Definition: CartoTypeBase.h:181
Definition: CartoTypeBase.h:155
double maxY
Definition: CartoTypeBase.h:163
double minY
Definition: CartoTypeBase.h:159
double maxX
Definition: CartoTypeBase.h:161
double minX
Definition: CartoTypeBase.h:157