GLMapTrackData
@interface GLMapTrackData : NSObject
GLMapTrackData
class holds data for track and information to optimize draw at different zoom levels. Data stored without connection to mapView and could be added on different GLMapView
at the same time.
-
Unavailable
Please use inits with data.
Not used.
Declaration
Objective-C
- (instancetype _Nonnull)init;
-
Initalizes
GLMapTrackData
with array of pointsDeclaration
Objective-C
- (instancetype _Nullable)initWithPoints:(const GLTrackPoint *_Nonnull)points count:(NSUInteger)count;
Parameters
points
Track point array
count
Size of point array
Return Value
A new track data object
-
Initializes
GLMapTrackData
with points that retured bypointsCallback
Declaration
Objective-C
- (instancetype _Nullable)initWithPointsCallback: (GLMapTrackPointsCallback _Nonnull)pointsCallback count:(NSUInteger)count;
Parameters
pointsCallback
Callback block used to fill track points data
count
Number of times callback is called. If zero callback will be called until it will return NO
Return Value
A new track data object
-
Copies points from given
GLMapTrackData
and merges segments if needed.Declaration
Objective-C
- (instancetype _Nullable)initWithData:(GLMapTrackData *_Nonnull)data mergeSegments:(BOOL)mergeSegments;
Parameters
data
Source object with points
mergeSegments
If YES, it tries to merge line segments into single line during construction. Otherwise it just retains
data
contents.Return Value
A new track data object
-
Copies points from given
GLMapTrackData
and add new point to track.When frequently updated track is displayed is a good idea to add new points into small segments. Up to 100 points per segment. And then merge segments together. Track uses optimized Ramer-Douglas-Peucker, but it’s still can have O(n^2) complexity in worst case. With described solution GLMap could record tracks up to million points.
Declaration
Objective-C
- (instancetype _Nullable)initWithData:(GLMapTrackData *_Nonnull)data andNewPoint:(GLTrackPoint)pt startNewSegment:(BOOL)startNewSegment;
Parameters
data
Source object with points
pt
New point to be added
startNewSegment
If YES new segment will be created
Return Value
A new track data object
-
Creates new copy of track data with merged segments that have same start/end points.
Declaration
Objective-C
- (instancetype _Nullable)trackDataWithMergedSegments;
Return Value
A new track data object
-
Declaration
Objective-C
- (GLMapBBox)bbox;
Return Value
Bounding box of track
-
Declaration
Objective-C
- (BOOL)isEmpty;
Return Value
YES
if track have no points -
Declaration
Objective-C
- (size_t)segmentCount;
Return Value
Count of lines inside this GLMapTrackData
-
Finds nearest point of track, to given point. Useful to find nearest point of track whe user tap.
Declaration
Objective-C
- (BOOL)findNearestPoint:(GLMapPoint *_Nonnull)point atMapView:(GLMapView *_Nonnull)mapView maxDistance:(CGFloat)distance;
Parameters
point
Point on map. If point was found this value will be set to nearest point
distance
Max distance from track allowed
Return Value
YES if point found, otherwise NO.