Loading...
Searching...
No Matches
LocationWindowMapObjectsExample.m
Go to the documentation of this file.
1#import <Foundation/Foundation.h>
2#import <NavigineSDK/NavigineSDK.h>
3
10@interface LocationWindowMapObjectsExample : NSObject
11
12@property (nonatomic, strong) NCLocationWindow *locationWindow;
13@property (nonatomic, strong) NSMutableArray *mapObjects;
14
22- (void)cleanup;
23
24@end
25
26@implementation LocationWindowMapObjectsExample
27
28- (instancetype)init {
29 self = [super init];
30 if (self) {
31 _mapObjects = [NSMutableArray array];
33 }
34 return self;
35}
36
41 NSLog(@"=== LocationWindowMapObjects Example ===");
42
43 // Initialize LocationWindow (in real app, this would be provided by the framework)
44 // self.locationWindow = [self getLocationWindow];
45
52
53 [self cleanup];
54}
55
60 NSLog(@"--- Circle Map Objects ---");
61
62 if (_locationWindow == nil) {
63 NSLog(@"LocationWindow not available yet");
64 return;
65 }
66
67 // [objc_CircleMapObject_constructor]
68 // Create circle map object
69 NCLocationPoint *center = [[NCLocationPoint alloc] initWithX:10.0 y:20.0];
70 NCCircleMapObject *circleObject = [[NCCircleMapObject alloc] initWithCenter:center radius:5.0];
71 NSLog(@"Created circle map object with center (%f, %f) and radius 5.0", center.x, center.y);
72 // [objc_CircleMapObject_constructor]
73
74 // [objc_CircleMapObject_getCenter]
75 // Access circle center
76 NCLocationPoint *circleCenter = circleObject.center;
77 NSLog(@"Circle center: (%f, %f)", circleCenter.x, circleCenter.y);
78 // [objc_CircleMapObject_getCenter]
79
80 // [objc_CircleMapObject_getRadius]
81 // Access circle radius
82 double radius = circleObject.radius;
83 NSLog(@"Circle radius: %f", radius);
84 // [objc_CircleMapObject_getRadius]
85
86 // [objc_LocationWindow_addCircleMapObject]
87 // Add circle map object
88 [_locationWindow addCircleMapObject:circleObject];
89 [_mapObjects addObject:circleObject];
90 NSLog(@"Added circle map object");
91 // [objc_LocationWindow_addCircleMapObject]
92
93 // Test multiple circle objects
94 NSArray *circles = @[
95 [[NCCircleMapObject alloc] initWithCenter:[[NCLocationPoint alloc] initWithX:15.0 y:25.0] radius:3.0],
96 [[NCCircleMapObject alloc] initWithCenter:[[NCLocationPoint alloc] initWithX:20.0 y:30.0] radius:7.0],
97 [[NCCircleMapObject alloc] initWithCenter:[[NCLocationPoint alloc] initWithX:25.0 y:35.0] radius:4.0]
98 ];
99
100 for (NCCircleMapObject *circle in circles) {
101 [_locationWindow addCircleMapObject:circle];
102 [_mapObjects addObject:circle];
103 NSLog(@"Added circle at (%f, %f) with radius %f", circle.center.x, circle.center.y, circle.radius);
104 }
105
106 // [objc_LocationWindow_removeCircleMapObject]
107 // Remove circle map object
108 [_locationWindow removeCircleMapObject:circleObject];
109 [_mapObjects removeObject:circleObject];
110 NSLog(@"Removed circle map object");
111 // [objc_LocationWindow_removeCircleMapObject]
112
113 if (circleObject != nil) {
114 // [objc_CircleMapObject_setPosition]
115 // Set circle position
116 NCLocationPoint *centerPoint = [[NCLocationPoint alloc] initWithX:100.0 y:200.0];
117 BOOL success = [circleObject setPosition:centerPoint];
118 NSLog(@"Set circle position to (%f, %f): %@", centerPoint.x, centerPoint.y, success ? @"YES" : @"NO");
119 // [objc_CircleMapObject_setPosition]
120
121 // [objc_CircleMapObject_setPositionAnimated]
122 // Set circle position with animation
123 NCLocationPoint *animatedPoint = [[NCLocationPoint alloc] initWithX:150.0 y:250.0];
124 BOOL animatedSuccess = [circleObject setPositionAnimated:animatedPoint duration:2.0 animationType:AnimationTypeLinear];
125 NSLog(@"Set circle position with animation to (%f, %f): %@", animatedPoint.x, animatedPoint.y, animatedSuccess ? @"YES" : @"NO");
126 // [objc_CircleMapObject_setPositionAnimated]
127
128 // [objc_CircleMapObject_setRadius]
129 // Set circle radius
130 BOOL radiusSuccess = [circleObject setRadius:10.0];
131 NSLog(@"Set circle radius to 10.0 meters: %@", radiusSuccess ? @"YES" : @"NO");
132 // [objc_CircleMapObject_setRadius]
133
134 // [objc_CircleMapObject_setCollisionEnabled]
135 // Enable collision detection
136 BOOL collisionSuccess = [circleObject setCollisionEnabled:YES];
137 NSLog(@"Enabled collision detection for circle: %@", collisionSuccess ? @"YES" : @"NO");
138 // [objc_CircleMapObject_setCollisionEnabled]
139
140 // [objc_CircleMapObject_setBuffer]
141 // Set collision buffer
142 BOOL bufferSuccess = [circleObject setBufferWithWidth:5.0 height:5.0];
143 NSLog(@"Set collision buffer to 5x5 pixels: %@", bufferSuccess ? @"YES" : @"NO");
144 // [objc_CircleMapObject_setBuffer]
145
146 // [objc_CircleMapObject_setOffset]
147 // Set position offset
148 BOOL offsetSuccess = [circleObject setOffsetWithX:2.0 y:3.0];
149 NSLog(@"Set position offset to (2.0, 3.0) pixels: %@", offsetSuccess ? @"YES" : @"NO");
150 // [objc_CircleMapObject_setOffset]
151
152 // [objc_CircleMapObject_setOutlineColor]
153 // Set outline color
154 BOOL outlineColorSuccess = [circleObject setOutlineColorWithRed:0.0 green:0.0 blue:1.0 alpha:1.0];
155 NSLog(@"Set circle outline color to blue: %@", outlineColorSuccess ? @"YES" : @"NO");
156 // [objc_CircleMapObject_setOutlineColor]
157
158 // [objc_CircleMapObject_setOutlineAlpha]
159 // Set outline alpha
160 BOOL outlineAlphaSuccess = [circleObject setOutlineAlpha:0.5];
161 NSLog(@"Set circle outline alpha to 0.5: %@", outlineAlphaSuccess ? @"YES" : @"NO");
162 // [objc_CircleMapObject_setOutlineAlpha]
163
164 // [objc_CircleMapObject_setOutlineRadius]
165 // Set outline radius
166 BOOL outlineRadiusSuccess = [circleObject setOutlineRadius:2.0];
167 NSLog(@"Set circle outline radius to 2.0: %@", outlineRadiusSuccess ? @"YES" : @"NO");
168 // [objc_CircleMapObject_setOutlineRadius]
169
170 // [objc_CircleMapObject_setColor]
171 // Set circle color
172 BOOL colorSuccess = [circleObject setColorWithRed:1.0 green:0.0 blue:0.0 alpha:0.8];
173 NSLog(@"Set circle color to red with 80%% opacity: %@", colorSuccess ? @"YES" : @"NO");
174 // [objc_CircleMapObject_setColor]
175
176 // [objc_CircleMapObject_setPriority]
177 // Set rendering priority
178 BOOL prioritySuccess = [circleObject setPriority:1];
179 NSLog(@"Set rendering priority to 1: %@", prioritySuccess ? @"YES" : @"NO");
180 // [objc_CircleMapObject_setPriority]
181
182 // [objc_MapObject_setVisible]
183 // Set visibility
184 BOOL visibleSuccess = [circleObject setVisible:YES];
185 NSLog(@"Set circle visibility to true: %@", visibleSuccess ? @"YES" : @"NO");
186 // [objc_MapObject_setVisible]
187
188 // [objc_CircleMapObject_getMapObjectType]
189 // Get map object type
190 NCMapObjectType objectType = circleObject.mapObjectType;
191 NSLog(@"Circle map object type: %@", objectType);
192 // [objc_CircleMapObject_getMapObjectType]
193
194 // [objc_MapObject_setAlpha]
195 // Set alpha transparency
196 BOOL alphaSuccess = [circleObject setAlpha:0.7];
197 NSLog(@"Set circle alpha to 0.7: %@", alphaSuccess ? @"YES" : @"NO");
198 // [objc_MapObject_setAlpha]
199
200 // [objc_MapObject_setInteractive]
201 // Set interactive mode
202 BOOL interactiveSuccess = [circleObject setInteractive:YES];
203 NSLog(@"Set circle interactive to true: %@", interactiveSuccess ? @"YES" : @"NO");
204 // [objc_MapObject_setInteractive]
205
206 // [objc_MapObject_setTitle]
207 // Set title
208 BOOL titleSuccess = [circleObject setTitle:@"Circle Object"];
209 NSLog(@"Set circle title to 'Circle Object': %@", titleSuccess ? @"YES" : @"NO");
210 // [objc_MapObject_setTitle]
211
212 // [objc_MapObject_setData]
213 // Set custom data
214 NSDictionary *customData = @{@"key": @"value", @"number": @"42"};
215 BOOL dataSuccess = [circleObject setData:customData];
216 NSLog(@"Set circle custom data: %@", dataSuccess ? @"YES" : @"NO");
217 // [objc_MapObject_setData]
218
219 // [objc_MapObject_getId]
220 // Get object ID
221 NSInteger objectId = circleObject.id;
222 NSLog(@"Circle object ID: %ld", (long)objectId);
223 // [objc_MapObject_getId]
224
225 // [objc_MapObject_getType]
226 // Get object type
227 NSString *objectTypeString = circleObject.type;
228 NSLog(@"Circle object type: %@", objectTypeString);
229 // [objc_MapObject_getType]
230
231 // [objc_MapObject_getData]
232 // Get custom data
233 NSDictionary *retrievedData = circleObject.data;
234 NSLog(@"Circle custom data: %@", retrievedData);
235 // [objc_MapObject_getData]
236 }
237}
238
243 NSLog(@"--- Icon Map Objects ---");
244
245 if (_locationWindow == nil) {
246 NSLog(@"LocationWindow not available yet");
247 return;
248 }
249
250 // [objc_IconMapObject_constructor]
251 // Create icon map object
252 NCLocationPoint *position = [[NCLocationPoint alloc] initWithX:30.0 y:40.0];
253 NCIconMapObject *iconObject = [[NCIconMapObject alloc] initWithPosition:position];
254 NSLog(@"Created icon map object at (%f, %f)", position.x, position.y);
255 // [objc_IconMapObject_constructor]
256
257 // [objc_IconMapObject_getPosition]
258 // Access icon position
259 NCLocationPoint *iconPosition = iconObject.position;
260 NSLog(@"Icon position: (%f, %f)", iconPosition.x, iconPosition.y);
261 // [objc_IconMapObject_getPosition]
262
263 // [objc_IconMapObject_setIcon]
264 // Set icon image
265 BOOL iconSuccess = [iconObject setIcon:@"path/to/icon.png"];
266 NSLog(@"Set icon image: %@", iconSuccess ? @"YES" : @"NO");
267 // [objc_IconMapObject_setIcon]
268
269 // [objc_IconMapObject_setBitmap]
270 // Set icon bitmap
271 BOOL bitmapSuccess = [iconObject setBitmap:@"path/to/bitmap.png"];
272 NSLog(@"Set icon bitmap: %@", bitmapSuccess ? @"YES" : @"NO");
273 // [objc_IconMapObject_setBitmap]
274
275 // [objc_IconMapObject_setFlat]
276 // Set icon flat mode
277 BOOL flatSuccess = [iconObject setFlat:YES];
278 NSLog(@"Set icon flat mode to true: %@", flatSuccess ? @"YES" : @"NO");
279 // [objc_IconMapObject_setFlat]
280
281 // [objc_IconMapObject_setSize]
282 // Set icon size
283 NCSize *size = [[NCSize alloc] initWithWidth:32.0 height:32.0];
284 BOOL sizeSuccess = [iconObject setSize:size];
285 NSLog(@"Set icon size to (%.1f, %.1f): %@", size.width, size.height, sizeSuccess ? @"YES" : @"NO");
286 // [objc_IconMapObject_setSize]
287
288 // [objc_IconMapObject_setAngle]
289 // Set icon rotation angle
290 BOOL angleSuccess = [iconObject setAngle:45.0];
291 NSLog(@"Set icon rotation angle to 45 degrees: %@", angleSuccess ? @"YES" : @"NO");
292 // [objc_IconMapObject_setAngle]
293
294 // [objc_IconMapObject_setAngleAnimated]
295 // Set icon rotation with animation
296 BOOL angleAnimatedSuccess = [iconObject setAngleAnimated:90.0 duration:2.0 animationType:NCSine];
297 NSLog(@"Set icon rotation with animation to 90 degrees: %@", angleAnimatedSuccess ? @"YES" : @"NO");
298 // [objc_IconMapObject_setAngleAnimated]
299
300 // [objc_IconMapObject_setCollisionEnabled]
301 // Enable collision detection
302 BOOL collisionSuccess = [iconObject setCollisionEnabled:YES];
303 NSLog(@"Enabled collision detection for icon: %@", collisionSuccess ? @"YES" : @"NO");
304 // [objc_IconMapObject_setCollisionEnabled]
305
306 // [objc_IconMapObject_setBuffer]
307 // Set collision buffer
308 BOOL bufferSuccess = [iconObject setBufferWithWidth:10.0 height:10.0];
309 NSLog(@"Set collision buffer to 10x10 pixels: %@", bufferSuccess ? @"YES" : @"NO");
310 // [objc_IconMapObject_setBuffer]
311
312 // [objc_IconMapObject_setPlacement]
313 // Set icon placement
314 BOOL placementSuccess = [iconObject setPlacement:NCCenter];
315 NSLog(@"Set icon placement to CENTER: %@", placementSuccess ? @"YES" : @"NO");
316 // [objc_IconMapObject_setPlacement]
317
318 // [objc_IconMapObject_setPosition]
319 // Set icon position
320 NCLocationPoint *newPosition = [[NCLocationPoint alloc] initWithX:35.0 y:45.0];
321 BOOL positionSuccess = [iconObject setPosition:newPosition];
322 NSLog(@"Set icon position to (%.1f, %.1f): %@", newPosition.x, newPosition.y, positionSuccess ? @"YES" : @"NO");
323 // [objc_IconMapObject_setPosition]
324
325 // [objc_IconMapObject_setPositionAnimated]
326 // Set icon position with animation
327 NCLocationPoint *animatedPosition = [[NCLocationPoint alloc] initWithX:40.0 y:50.0];
328 BOOL animatedSuccess = [iconObject setPositionAnimated:animatedPosition duration:2.0 animationType:NCLinear];
329 NSLog(@"Set icon position with animation to (%.1f, %.1f): %@", animatedPosition.x, animatedPosition.y, animatedSuccess ? @"YES" : @"NO");
330 // [objc_IconMapObject_setPositionAnimated]
331
332 // [objc_IconMapObject_setOffset]
333 // Set icon offset
334 BOOL offsetSuccess = [iconObject setOffsetWithWidth:5.0 height:5.0];
335 NSLog(@"Set icon offset to 5x5 pixels: %@", offsetSuccess ? @"YES" : @"NO");
336 // [objc_IconMapObject_setOffset]
337
338 // [objc_IconMapObject_setPriority]
339 // Set icon priority
340 BOOL prioritySuccess = [iconObject setPriority:1];
341 NSLog(@"Set icon priority to 1: %@", prioritySuccess ? @"YES" : @"NO");
342 // [objc_IconMapObject_setPriority]
343
344 // [objc_IconMapObject_setVisible]
345 // Set visibility
346 BOOL visibleSuccess = [iconObject setVisible:YES];
347 NSLog(@"Set icon visibility to true: %@", visibleSuccess ? @"YES" : @"NO");
348 // [objc_IconMapObject_setVisible]
349
350 // [objc_IconMapObject_getMapObjectType]
351 // Get map object type
352 NCMapObjectType objectType = iconObject.mapObjectType;
353 NSLog(@"Icon map object type: %@", objectType);
354 // [objc_IconMapObject_getMapObjectType]
355
356 // [objc_MapObject_setAlpha_1]
357 // Set alpha transparency
358 BOOL alphaSuccess = [iconObject setAlpha:0.8];
359 NSLog(@"Set icon alpha to 0.8: %@", alphaSuccess ? @"YES" : @"NO");
360 // [objc_MapObject_setAlpha_1]
361
362 // [objc_MapObject_setInteractive_1]
363 // Set interactive mode
364 BOOL interactiveSuccess = [iconObject setInteractive:YES];
365 NSLog(@"Set icon interactive to true: %@", interactiveSuccess ? @"YES" : @"NO");
366 // [objc_MapObject_setInteractive_1]
367
368 // [objc_MapObject_setTitle_1]
369 // Set title
370 BOOL titleSuccess = [iconObject setTitle:@"Icon Object"];
371 NSLog(@"Set icon title to 'Icon Object': %@", titleSuccess ? @"YES" : @"NO");
372 // [objc_MapObject_setTitle_1]
373
374 // [objc_MapObject_setData_1]
375 // Set custom data
376 NSDictionary *customData = @{@"key": @"value", @"number": @"42"};
377 BOOL dataSuccess = [iconObject setData:customData];
378 NSLog(@"Set icon custom data: %@", dataSuccess ? @"YES" : @"NO");
379 // [objc_MapObject_setData_1]
380
381 // [objc_MapObject_getId_1]
382 // Get object ID
383 NSInteger objectId = iconObject.id;
384 NSLog(@"Icon object ID: %ld", (long)objectId);
385 // [objc_MapObject_getId_1]
386
387 // [objc_MapObject_getType_1]
388 // Get object type
389 NSString *objectTypeString = iconObject.type;
390 NSLog(@"Icon object type: %@", objectTypeString);
391 // [objc_MapObject_getType_1]
392
393 // [objc_MapObject_getData_1]
394 // Get custom data
395 NSDictionary *retrievedData = iconObject.data;
396 NSLog(@"Icon custom data: %@", retrievedData);
397 // [objc_MapObject_getData_1]
398
399 // [objc_LocationWindow_addIconMapObject]
400 // Add icon map object
401 [_locationWindow addIconMapObject:iconObject];
402 [_mapObjects addObject:iconObject];
403 NSLog(@"Added icon map object");
404 // [objc_LocationWindow_addIconMapObject]
405
406 // Test multiple icon objects
407 NSArray *icons = @[
408 [[NCIconMapObject alloc] initWithPosition:[[NCLocationPoint alloc] initWithX:35.0 y:45.0]],
409 [[NCIconMapObject alloc] initWithPosition:[[NCLocationPoint alloc] initWithX:40.0 y:50.0]],
410 [[NCIconMapObject alloc] initWithPosition:[[NCLocationPoint alloc] initWithX:45.0 y:55.0]]
411 ];
412
413 for (NCIconMapObject *icon in icons) {
414 [_locationWindow addIconMapObject:icon];
415 [_mapObjects addObject:icon];
416 NSLog(@"Added icon at (%f, %f)", icon.position.x, icon.position.y);
417 }
418
419 // [objc_LocationWindow_removeIconMapObject]
420 // Remove icon map object
421 [_locationWindow removeIconMapObject:iconObject];
422 [_mapObjects removeObject:iconObject];
423 NSLog(@"Removed icon map object");
424 // [objc_LocationWindow_removeIconMapObject]
425}
426
431 NSLog(@"--- Polygon Map Objects ---");
432
433 if (_locationWindow == nil) {
434 NSLog(@"LocationWindow not available yet");
435 return;
436 }
437
438 // [objc_LocationWindow_addPolygonMapObject]
439 // Add polygon map object
440 NCPolygonMapObject *polygonObject = [_locationWindow addPolygonMapObject];
441 NSLog(@"Added polygon map object");
442 // [objc_LocationWindow_addPolygonMapObject]
443
444 if (polygonObject != nil) {
445 // [objc_PolygonMapObject_setPolygon]
446 // Set polygon geometry
447 NSArray *points = @[
448 [[NCLocationPoint alloc] initWithX:100.0 y:200.0],
449 [[NCLocationPoint alloc] initWithX:150.0 y:250.0],
450 [[NCLocationPoint alloc] initWithX:200.0 y:200.0],
451 [[NCLocationPoint alloc] initWithX:150.0 y:150.0]
452 ];
453 NCLocationPolygon *polygon = [[NCLocationPolygon alloc] initWithPoints:points];
454 BOOL success = [polygonObject setPolygon:polygon];
455 NSLog(@"Set polygon with %lu points: %@", (unsigned long)points.count, success ? @"YES" : @"NO");
456 // [objc_PolygonMapObject_setPolygon]
457
458 // [objc_PolygonMapObject_setColor]
459 // Set polygon color
460 BOOL colorSuccess = [polygonObject setColorWithRed:0.0 green:1.0 blue:0.0 alpha:0.7];
461 NSLog(@"Set polygon color to green with 70%% opacity: %@", colorSuccess ? @"YES" : @"NO");
462 // [objc_PolygonMapObject_setColor]
463
464 // [objc_PolygonMapObject_setVisible]
465 // Set visibility
466 BOOL visibleSuccess = [polygonObject setVisible:YES];
467 NSLog(@"Set polygon visibility to true: %@", visibleSuccess ? @"YES" : @"NO");
468 // [objc_PolygonMapObject_setVisible]
469
470 // [objc_PolygonMapObject_getMapObjectType]
471 // Get map object type
472 NCMapObjectType objectType = polygonObject.mapObjectType;
473 NSLog(@"Polygon map object type: %@", objectType);
474 // [objc_PolygonMapObject_getMapObjectType]
475
476 // [objc_PolygonMapObject_setOrder]
477 // Set polygon rendering order
478 BOOL orderSuccess = [polygonObject setOrder:2];
479 NSLog(@"Set polygon rendering order to 2: %@", orderSuccess ? @"YES" : @"NO");
480 // [objc_PolygonMapObject_setOrder]
481
482 // [objc_PolygonMapObject_setOutlineColor]
483 // Set polygon outline color
484 BOOL outlineColorSuccess = [polygonObject setOutlineColorWithRed:0.0 green:0.0 blue:1.0 alpha:1.0];
485 NSLog(@"Set polygon outline color to blue: %@", outlineColorSuccess ? @"YES" : @"NO");
486 // [objc_PolygonMapObject_setOutlineColor]
487
488 // [objc_PolygonMapObject_setOutlineWidth]
489 // Set polygon outline width
490 BOOL outlineWidthSuccess = [polygonObject setOutlineWidth:2.0];
491 NSLog(@"Set polygon outline width to 2.0 pixels: %@", outlineWidthSuccess ? @"YES" : @"NO");
492 // [objc_PolygonMapObject_setOutlineWidth]
493
494 // [objc_PolygonMapObject_setOutlineAlpha]
495 // Set polygon outline alpha
496 BOOL outlineAlphaSuccess = [polygonObject setOutlineAlpha:0.8];
497 NSLog(@"Set polygon outline alpha to 0.8: %@", outlineAlphaSuccess ? @"YES" : @"NO");
498 // [objc_PolygonMapObject_setOutlineAlpha]
499
500 // [objc_PolygonMapObject_setOutlineOrder]
501 // Set polygon outline order
502 BOOL outlineOrderSuccess = [polygonObject setOutlineOrder:1];
503 NSLog(@"Set polygon outline order to 1: %@", outlineOrderSuccess ? @"YES" : @"NO");
504 // [objc_PolygonMapObject_setOutlineOrder]
505
506 // [objc_MapObject_setAlpha_2]
507 // Set alpha transparency
508 BOOL alphaSuccess = [polygonObject setAlpha:0.6];
509 NSLog(@"Set polygon alpha to 0.6: %@", alphaSuccess ? @"YES" : @"NO");
510 // [objc_MapObject_setAlpha_2]
511
512 // [objc_MapObject_setInteractive_2]
513 // Set interactive mode
514 BOOL interactiveSuccess = [polygonObject setInteractive:YES];
515 NSLog(@"Set polygon interactive to true: %@", interactiveSuccess ? @"YES" : @"NO");
516 // [objc_MapObject_setInteractive_2]
517
518 // [objc_MapObject_setTitle_2]
519 // Set title
520 BOOL titleSuccess = [polygonObject setTitle:@"Polygon Object"];
521 NSLog(@"Set polygon title to 'Polygon Object': %@", titleSuccess ? @"YES" : @"NO");
522 // [objc_MapObject_setTitle_2]
523
524 // [objc_MapObject_setData_2]
525 // Set custom data
526 NSDictionary *customData = @{@"key": @"value", @"number": @"42"};
527 BOOL dataSuccess = [polygonObject setData:customData];
528 NSLog(@"Set polygon custom data: %@", dataSuccess ? @"YES" : @"NO");
529 // [objc_MapObject_setData_2]
530
531 // [objc_MapObject_getId_2]
532 // Get object ID
533 NSInteger objectId = polygonObject.id;
534 NSLog(@"Polygon object ID: %ld", (long)objectId);
535 // [objc_MapObject_getId_2]
536
537 // [objc_MapObject_getType_2]
538 // Get object type
539 NSString *objectTypeString = polygonObject.type;
540 NSLog(@"Polygon object type: %@", objectTypeString);
541 // [objc_MapObject_getType_2]
542
543 // [objc_MapObject_getData_2]
544 // Get custom data
545 NSDictionary *retrievedData = polygonObject.data;
546 NSLog(@"Polygon custom data: %@", retrievedData);
547 // [objc_MapObject_getData_2]
548 }
549
550 // [objc_LocationWindow_removePolygonMapObject]
551 // Remove polygon map object
552 if (polygonObject != nil) {
553 BOOL removed = [_locationWindow removePolygonMapObject:polygonObject];
554 NSLog(@"Removed polygon map object: %@", removed ? @"YES" : @"NO");
555 }
556 // [objc_LocationWindow_removePolygonMapObject]
557
558 // Test multiple polygon objects
559 NSMutableArray *polygons = [NSMutableArray array];
560 for (int i = 0; i < 3; i++) {
561 NCPolygonMapObject *polygon = [_locationWindow addPolygonMapObject];
562 if (polygon != nil) {
563 NSArray *points = @[
564 [[NCLocationPoint alloc] initWithX:300.0 + i * 50 y:400.0 + i * 50],
565 [[NCLocationPoint alloc] initWithX:350.0 + i * 50 y:450.0 + i * 50],
566 [[NCLocationPoint alloc] initWithX:400.0 + i * 50 y:400.0 + i * 50],
567 [[NCLocationPoint alloc] initWithX:350.0 + i * 50 y:350.0 + i * 50]
568 ];
569 NCLocationPolygon *polygonGeometry = [[NCLocationPolygon alloc] initWithPoints:points];
570 [polygon setPolygon:polygonGeometry];
571 [polygon setColorWithRed:0.0 green:0.0 blue:1.0 alpha:0.5];
572 [polygons addObject:polygon];
573 NSLog(@"Created polygon %d with %lu points", i, (unsigned long)points.count);
574 }
575 }
576
577 for (int i = 0; i < polygons.count; i++) {
578 [_locationWindow removePolygonMapObject:polygons[i]];
579 NSLog(@"Removed polygon %d", i);
580 }
581}
582
587 NSLog(@"--- Polyline Map Objects ---");
588
589 if (_locationWindow == nil) {
590 NSLog(@"LocationWindow not available yet");
591 return;
592 }
593
594 // [objc_PolylineMapObject_constructor]
595 // Create polyline map object
596 NSArray *points = @[
597 [[NCLocationPoint alloc] initWithX:100.0 y:110.0],
598 [[NCLocationPoint alloc] initWithX:105.0 y:115.0],
599 [[NCLocationPoint alloc] initWithX:110.0 y:120.0],
600 [[NCLocationPoint alloc] initWithX:115.0 y:125.0]
601 ];
602 NCLocationPolyline *polyline = [[NCLocationPolyline alloc] initWithPoints:points];
603 NCPolylineMapObject *polylineObject = [[NCPolylineMapObject alloc] initWithPolyline:polyline];
604 NSLog(@"Created polyline map object with %lu points", (unsigned long)points.count);
605 // [objc_PolylineMapObject_constructor]
606
607 // [objc_PolylineMapObject_getPolyline]
608 // Access polyline
609 NCLocationPolyline *polylineShape = polylineObject.polyline;
610 NSLog(@"Polyline has %lu points", (unsigned long)polylineShape.points.count);
611 // [objc_PolylineMapObject_getPolyline]
612
613 // [objc_LocationWindow_addPolylineMapObject]
614 // Add polyline map object
615 [_locationWindow addPolylineMapObject:polylineObject];
616 [_mapObjects addObject:polylineObject];
617 NSLog(@"Added polyline map object");
618 // [objc_LocationWindow_addPolylineMapObject]
619
620 // Test multiple polyline objects
621 NSArray *polylines = @[
622 [[NCPolylineMapObject alloc] initWithPolyline:[[NCLocationPolyline alloc] initWithPoints:@[
623 [[NCLocationPoint alloc] initWithX:120.0 y:130.0],
624 [[NCLocationPoint alloc] initWithX:125.0 y:135.0],
625 [[NCLocationPoint alloc] initWithX:130.0 y:140.0]
626 ]]],
627 [[NCPolylineMapObject alloc] initWithPolyline:[[NCLocationPolyline alloc] initWithPoints:@[
628 [[NCLocationPoint alloc] initWithX:135.0 y:145.0],
629 [[NCLocationPoint alloc] initWithX:140.0 y:150.0],
630 [[NCLocationPoint alloc] initWithX:145.0 y:155.0],
631 [[NCLocationPoint alloc] initWithX:150.0 y:160.0]
632 ]]]
633 ];
634
635 for (NCPolylineMapObject *line in polylines) {
636 [_locationWindow addPolylineMapObject:line];
637 [_mapObjects addObject:line];
638 NSLog(@"Added polyline with %lu points", (unsigned long)line.polyline.points.count);
639 }
640
641 // [objc_LocationWindow_removePolylineMapObject]
642 // Remove polyline map object
643 [_locationWindow removePolylineMapObject:polylineObject];
644 [_mapObjects removeObject:polylineObject];
645 NSLog(@"Removed polyline map object");
646 // [objc_LocationWindow_removePolylineMapObject]
647
648 if (polylineObject != nil) {
649 // [objc_PolylineMapObject_setPolyLine]
650 // Set polyline geometry
651 NSArray *polylinePoints = @[
652 [[NCLocationPoint alloc] initWithX:100.0 y:200.0],
653 [[NCLocationPoint alloc] initWithX:150.0 y:250.0],
654 [[NCLocationPoint alloc] initWithX:200.0 y:300.0],
655 [[NCLocationPoint alloc] initWithX:250.0 y:350.0]
656 ];
657 NCLocationPolyline *polyline = [[NCLocationPolyline alloc] initWithPoints:polylinePoints];
658 BOOL polylineSuccess = [polylineObject setPolyLine:polyline];
659 NSLog(@"Set polyline with %lu points: %@", (unsigned long)polylinePoints.count, polylineSuccess ? @"YES" : @"NO");
660 // [objc_PolylineMapObject_setPolyLine]
661
662 // [objc_PolylineMapObject_setWidth]
663 // Set polyline width
664 BOOL widthSuccess = [polylineObject setWidth:3.0];
665 NSLog(@"Set polyline width to 3.0 pixels: %@", widthSuccess ? @"YES" : @"NO");
666 // [objc_PolylineMapObject_setWidth]
667
668 // [objc_PolylineMapObject_setColor]
669 // Set polyline color
670 BOOL polylineColorSuccess = [polylineObject setColorWithRed:0.0 green:1.0 blue:0.0 alpha:0.8];
671 NSLog(@"Set polyline color to green with 80%% opacity: %@", polylineColorSuccess ? @"YES" : @"NO");
672 // [objc_PolylineMapObject_setColor]
673
674 // [objc_PolylineMapObject_setOrder]
675 // Set polyline rendering order
676 BOOL polylineOrderSuccess = [polylineObject setOrder:1];
677 NSLog(@"Set polyline rendering order to 1: %@", polylineOrderSuccess ? @"YES" : @"NO");
678 // [objc_PolylineMapObject_setOrder]
679
680 // [objc_PolylineMapObject_setCapType]
681 // Set polyline cap type
682 BOOL capTypeSuccess = [polylineObject setCapType:NCCapTypeRound];
683 NSLog(@"Set polyline cap type to ROUND: %@", capTypeSuccess ? @"YES" : @"NO");
684 // [objc_PolylineMapObject_setCapType]
685
686 // [objc_PolylineMapObject_setJoinType]
687 // Set polyline join type
688 BOOL joinTypeSuccess = [polylineObject setJoinType:NCJoinTypeRound];
689 NSLog(@"Set polyline join type to ROUND: %@", joinTypeSuccess ? @"YES" : @"NO");
690 // [objc_PolylineMapObject_setJoinType]
691
692 // [objc_PolylineMapObject_setMiterLimit]
693 // Set polyline miter limit
694 BOOL miterLimitSuccess = [polylineObject setMiterLimit:2.0];
695 NSLog(@"Set polyline miter limit to 2.0: %@", miterLimitSuccess ? @"YES" : @"NO");
696 // [objc_PolylineMapObject_setMiterLimit]
697
698 // [objc_PolylineMapObject_setOutlineWidth]
699 // Set polyline outline width
700 BOOL outlineWidthSuccess = [polylineObject setOutlineWidth:1.0];
701 NSLog(@"Set polyline outline width to 1.0 pixels: %@", outlineWidthSuccess ? @"YES" : @"NO");
702 // [objc_PolylineMapObject_setOutlineWidth]
703
704 // [objc_PolylineMapObject_setOutlineColor]
705 // Set polyline outline color
706 BOOL outlineColorSuccess = [polylineObject setOutlineColorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
707 NSLog(@"Set polyline outline color to black: %@", outlineColorSuccess ? @"YES" : @"NO");
708 // [objc_PolylineMapObject_setOutlineColor]
709
710 // [objc_PolylineMapObject_setOutlineAlpha]
711 // Set polyline outline alpha
712 BOOL outlineAlphaSuccess = [polylineObject setOutlineAlpha:0.5];
713 NSLog(@"Set polyline outline alpha to 0.5: %@", outlineAlphaSuccess ? @"YES" : @"NO");
714 // [objc_PolylineMapObject_setOutlineAlpha]
715
716 // [objc_PolylineMapObject_setOutlineOrder]
717 // Set polyline outline rendering order
718 BOOL outlineOrderSuccess = [polylineObject setOutlineOrder:0];
719 NSLog(@"Set polyline outline rendering order to 0: %@", outlineOrderSuccess ? @"YES" : @"NO");
720 // [objc_PolylineMapObject_setOutlineOrder]
721
722 // [objc_PolylineMapObject_setOutlineCapType]
723 // Set polyline outline cap type
724 BOOL outlineCapTypeSuccess = [polylineObject setOutlineCapType:NCCapTypeSquare];
725 NSLog(@"Set polyline outline cap type to SQUARE: %@", outlineCapTypeSuccess ? @"YES" : @"NO");
726 // [objc_PolylineMapObject_setOutlineCapType]
727
728 // [objc_PolylineMapObject_setOutlineJoinType]
729 // Set polyline outline join type
730 BOOL outlineJoinTypeSuccess = [polylineObject setOutlineJoinType:NCJoinTypeMiter];
731 NSLog(@"Set polyline outline join type to MITER: %@", outlineJoinTypeSuccess ? @"YES" : @"NO");
732 // [objc_PolylineMapObject_setOutlineJoinType]
733
734 // [objc_PolylineMapObject_setOutlineMiterLimit]
735 // Set polyline outline miter limit
736 BOOL outlineMiterLimitSuccess = [polylineObject setOutlineMiterLimit:3.0];
737 NSLog(@"Set polyline outline miter limit to 3.0: %@", outlineMiterLimitSuccess ? @"YES" : @"NO");
738 // [objc_PolylineMapObject_setOutlineMiterLimit]
739
740 // [objc_PolylineMapObject_setVisible]
741 // Set polyline visibility
742 BOOL visibleSuccess = [polylineObject setVisible:YES];
743 NSLog(@"Set polyline visibility to true: %@", visibleSuccess ? @"YES" : @"NO");
744 // [objc_PolylineMapObject_setVisible]
745
746 // [objc_PolylineMapObject_getMapObjectType]
747 // Get map object type
748 NCMapObjectType objectType = polylineObject.mapObjectType;
749 NSLog(@"Polyline map object type: %@", objectType);
750 // [objc_PolylineMapObject_getMapObjectType]
751
752 // [objc_MapObject_setAlpha_3]
753 // Set alpha transparency
754 BOOL alphaSuccess = [polylineObject setAlpha:0.7];
755 NSLog(@"Set polyline alpha to 0.7: %@", alphaSuccess ? @"YES" : @"NO");
756 // [objc_MapObject_setAlpha_3]
757
758 // [objc_MapObject_setInteractive_3]
759 // Set interactive mode
760 BOOL interactiveSuccess = [polylineObject setInteractive:YES];
761 NSLog(@"Set polyline interactive to true: %@", interactiveSuccess ? @"YES" : @"NO");
762 // [objc_MapObject_setInteractive_3]
763
764 // [objc_MapObject_setTitle_3]
765 // Set title
766 BOOL titleSuccess = [polylineObject setTitle:@"Polyline Object"];
767 NSLog(@"Set polyline title to 'Polyline Object': %@", titleSuccess ? @"YES" : @"NO");
768 // [objc_MapObject_setTitle_3]
769
770 // [objc_MapObject_setData_3]
771 // Set custom data
772 NSDictionary *customData = @{@"key": @"value", @"number": @"42"};
773 BOOL dataSuccess = [polylineObject setData:customData];
774 NSLog(@"Set polyline custom data: %@", dataSuccess ? @"YES" : @"NO");
775 // [objc_MapObject_setData_3]
776
777 // [objc_MapObject_getId_3]
778 // Get object ID
779 NSInteger objectId = polylineObject.id;
780 NSLog(@"Polyline object ID: %ld", (long)objectId);
781 // [objc_MapObject_getId_3]
782
783 // [objc_MapObject_getType_3]
784 // Get object type
785 NSString *objectTypeString = polylineObject.type;
786 NSLog(@"Polyline object type: %@", objectTypeString);
787 // [objc_MapObject_getType_3]
788
789 // [objc_MapObject_getData_3]
790 // Get custom data
791 NSDictionary *retrievedData = polylineObject.data;
792 NSLog(@"Polyline custom data: %@", retrievedData);
793 // [objc_MapObject_getData_3]
794 }
795}
796
801 NSLog(@"--- Dotted Polyline Map Objects ---");
802
803 if (_locationWindow == nil) {
804 NSLog(@"LocationWindow not available yet");
805 return;
806 }
807
808 // [objc_DottedPolylineMapObject_constructor]
809 // Create dotted polyline map object
810 NSArray *points = @[
811 [[NCLocationPoint alloc] initWithX:160.0 y:170.0],
812 [[NCLocationPoint alloc] initWithX:165.0 y:175.0],
813 [[NCLocationPoint alloc] initWithX:170.0 y:180.0],
814 [[NCLocationPoint alloc] initWithX:175.0 y:185.0]
815 ];
816 NCLocationPolyline *polyline = [[NCLocationPolyline alloc] initWithPoints:points];
817 NCDottedPolylineMapObject *dottedPolylineObject = [[NCDottedPolylineMapObject alloc] initWithPolyline:polyline];
818 NSLog(@"Created dotted polyline map object with %lu points", (unsigned long)points.count);
819 // [objc_DottedPolylineMapObject_constructor]
820
821 // [objc_DottedPolylineMapObject_getPolyline]
822 // Access dotted polyline
823 NCLocationPolyline *dottedPolylineShape = dottedPolylineObject.polyline;
824 NSLog(@"Dotted polyline has %lu points", (unsigned long)dottedPolylineShape.points.count);
825 // [objc_DottedPolylineMapObject_getPolyline]
826
827 // [objc_DottedPolylineMapObject_setPolyline]
828 // Set dotted polyline geometry
829 NSArray *dottedPoints = @[
830 [[NCLocationPoint alloc] initWithX:160.0 y:170.0],
831 [[NCLocationPoint alloc] initWithX:165.0 y:175.0],
832 [[NCLocationPoint alloc] initWithX:170.0 y:180.0],
833 [[NCLocationPoint alloc] initWithX:175.0 y:185.0]
834 ];
835 NCLocationPolyline *dottedPolyline = [[NCLocationPolyline alloc] initWithPoints:dottedPoints];
836 BOOL dottedSuccess = [dottedPolylineObject setPolyline:dottedPolyline];
837 NSLog(@"Set dotted polyline with %lu points: %@", (unsigned long)dottedPoints.count, dottedSuccess ? @"YES" : @"NO");
838 // [objc_DottedPolylineMapObject_setPolyline]
839
840 // [objc_DottedPolylineMapObject_setColor]
841 // Set dotted polyline color
842 BOOL colorSuccess = [dottedPolylineObject setColorWithRed:0.5 green:0.0 blue:1.0 alpha:0.8];
843 NSLog(@"Set dotted polyline color to purple with 80%% opacity: %@", colorSuccess ? @"YES" : @"NO");
844 // [objc_DottedPolylineMapObject_setColor]
845
846 // [objc_DottedPolylineMapObject_setWidth]
847 // Set dotted polyline width
848 BOOL widthSuccess = [dottedPolylineObject setWidth:3.0];
849 NSLog(@"Set dotted polyline width to 3.0 pixels: %@", widthSuccess ? @"YES" : @"NO");
850 // [objc_DottedPolylineMapObject_setWidth]
851
852 // [objc_DottedPolylineMapObject_setOrder]
853 // Set dotted polyline rendering order
854 BOOL orderSuccess = [dottedPolylineObject setOrder:2];
855 NSLog(@"Set dotted polyline rendering order to 2: %@", orderSuccess ? @"YES" : @"NO");
856 // [objc_DottedPolylineMapObject_setOrder]
857
858 // [objc_DottedPolylineMapObject_setCollisionEnabled]
859 // Enable collision detection
860 BOOL collisionSuccess = [dottedPolylineObject setCollisionEnabled:YES];
861 NSLog(@"Enabled collision detection for dotted polyline: %@", collisionSuccess ? @"YES" : @"NO");
862 // [objc_DottedPolylineMapObject_setCollisionEnabled]
863
864 // [objc_DottedPolylineMapObject_setPlacement]
865 // Set placement type
866 BOOL placementSuccess = [dottedPolylineObject setPlacement:NCCenter];
867 NSLog(@"Set dotted polyline placement to CENTER: %@", placementSuccess ? @"YES" : @"NO");
868 // [objc_DottedPolylineMapObject_setPlacement]
869
870 // [objc_DottedPolylineMapObject_setPlacementMinRatio]
871 // Set placement min ratio
872 BOOL minRatioSuccess = [dottedPolylineObject setPlacementMinRatio:0.5];
873 NSLog(@"Set dotted polyline placement min ratio to 0.5: %@", minRatioSuccess ? @"YES" : @"NO");
874 // [objc_DottedPolylineMapObject_setPlacementMinRatio]
875
876 // [objc_DottedPolylineMapObject_setPlacementSpacing]
877 // Set placement spacing
878 BOOL spacingSuccess = [dottedPolylineObject setPlacementSpacing:10.0];
879 NSLog(@"Set dotted polyline placement spacing to 10.0: %@", spacingSuccess ? @"YES" : @"NO");
880 // [objc_DottedPolylineMapObject_setPlacementSpacing]
881
882 // [objc_DottedPolylineMapObject_setPriority]
883 // Set rendering priority
884 BOOL prioritySuccess = [dottedPolylineObject setPriority:1];
885 NSLog(@"Set dotted polyline rendering priority to 1: %@", prioritySuccess ? @"YES" : @"NO");
886 // [objc_DottedPolylineMapObject_setPriority]
887
888 // [objc_DottedPolylineMapObject_setRepeatDistance]
889 // Set repeat distance
890 BOOL repeatDistanceSuccess = [dottedPolylineObject setRepeatDistance:20.0];
891 NSLog(@"Set dotted polyline repeat distance to 20.0: %@", repeatDistanceSuccess ? @"YES" : @"NO");
892 // [objc_DottedPolylineMapObject_setRepeatDistance]
893
894 // [objc_DottedPolylineMapObject_setRepeatGroup]
895 // Set repeat group
896 BOOL repeatGroupSuccess = [dottedPolylineObject setRepeatGroup:1];
897 NSLog(@"Set dotted polyline repeat group to 1: %@", repeatGroupSuccess ? @"YES" : @"NO");
898 // [objc_DottedPolylineMapObject_setRepeatGroup]
899
900 // [objc_DottedPolylineMapObject_setSize]
901 // Set size
902 NCSize *size = [[NCSize alloc] initWithWidth:16.0 height:16.0];
903 BOOL sizeSuccess = [dottedPolylineObject setSize:size];
904 NSLog(@"Set dotted polyline size to (%.1f, %.1f): %@", size.width, size.height, sizeSuccess ? @"YES" : @"NO");
905 // [objc_DottedPolylineMapObject_setSize]
906
907 // [objc_DottedPolylineMapObject_setVisible]
908 // Set visibility
909 BOOL visibleSuccess = [dottedPolylineObject setVisible:YES];
910 NSLog(@"Set dotted polyline visibility to true: %@", visibleSuccess ? @"YES" : @"NO");
911 // [objc_DottedPolylineMapObject_setVisible]
912
913 // [objc_DottedPolylineMapObject_getMapObjectType]
914 // Get map object type
915 NCMapObjectType objectType = dottedPolylineObject.mapObjectType;
916 NSLog(@"Dotted polyline map object type: %@", objectType);
917 // [objc_DottedPolylineMapObject_getMapObjectType]
918
919 // [objc_MapObject_setAlpha_4]
920 // Set alpha transparency
921 BOOL alphaSuccess = [dottedPolylineObject setAlpha:0.8];
922 NSLog(@"Set dotted polyline alpha to 0.8: %@", alphaSuccess ? @"YES" : @"NO");
923 // [objc_MapObject_setAlpha_4]
924
925 // [objc_MapObject_setInteractive_4]
926 // Set interactive mode
927 BOOL interactiveSuccess = [dottedPolylineObject setInteractive:YES];
928 NSLog(@"Set dotted polyline interactive to true: %@", interactiveSuccess ? @"YES" : @"NO");
929 // [objc_MapObject_setInteractive_4]
930
931 // [objc_MapObject_setTitle_4]
932 // Set title
933 BOOL titleSuccess = [dottedPolylineObject setTitle:@"Dotted Polyline Object"];
934 NSLog(@"Set dotted polyline title to 'Dotted Polyline Object': %@", titleSuccess ? @"YES" : @"NO");
935 // [objc_MapObject_setTitle_4]
936
937 // [objc_MapObject_setData_4]
938 // Set custom data
939 NSDictionary *customData = @{@"key": @"value", @"number": @"42"};
940 BOOL dataSuccess = [dottedPolylineObject setData:customData];
941 NSLog(@"Set dotted polyline custom data: %@", dataSuccess ? @"YES" : @"NO");
942 // [objc_MapObject_setData_4]
943
944 // [objc_MapObject_getId_4]
945 // Get object ID
946 NSInteger objectId = dottedPolylineObject.id;
947 NSLog(@"Dotted polyline object ID: %ld", (long)objectId);
948 // [objc_MapObject_getId_4]
949
950 // [objc_MapObject_getType_4]
951 // Get object type
952 NSString *objectTypeString = dottedPolylineObject.type;
953 NSLog(@"Dotted polyline object type: %@", objectTypeString);
954 // [objc_MapObject_getType_4]
955
956 // [objc_MapObject_getData_4]
957 // Get custom data
958 NSDictionary *retrievedData = dottedPolylineObject.data;
959 NSLog(@"Dotted polyline custom data: %@", retrievedData);
960 // [objc_MapObject_getData_4]
961
962 // [objc_LocationWindow_addDottedPolylineMapObject]
963 // Add dotted polyline map object
964 [_locationWindow addDottedPolylineMapObject:dottedPolylineObject];
965 [_mapObjects addObject:dottedPolylineObject];
966 NSLog(@"Added dotted polyline map object");
967 // [objc_LocationWindow_addDottedPolylineMapObject]
968
969 // Test multiple dotted polyline objects
970 NSArray *dottedPolylines = @[
971 [[NCDottedPolylineMapObject alloc] initWithPolyline:[[NCLocationPolyline alloc] initWithPoints:@[
972 [[NCLocationPoint alloc] initWithX:180.0 y:190.0],
973 [[NCLocationPoint alloc] initWithX:185.0 y:195.0],
974 [[NCLocationPoint alloc] initWithX:190.0 y:200.0]
975 ]]],
976 [[NCDottedPolylineMapObject alloc] initWithPolyline:[[NCLocationPolyline alloc] initWithPoints:@[
977 [[NCLocationPoint alloc] initWithX:195.0 y:205.0],
978 [[NCLocationPoint alloc] initWithX:200.0 y:210.0],
979 [[NCLocationPoint alloc] initWithX:205.0 y:215.0],
980 [[NCLocationPoint alloc] initWithX:210.0 y:220.0]
981 ]]]
982 ];
983
984 for (NCDottedPolylineMapObject *dottedLine in dottedPolylines) {
985 [_locationWindow addDottedPolylineMapObject:dottedLine];
986 [_mapObjects addObject:dottedLine];
987 NSLog(@"Added dotted polyline with %lu points", (unsigned long)dottedLine.polyline.points.count);
988 }
989
990 // [objc_LocationWindow_removeDottedPolylineMapObject]
991 // Remove dotted polyline map object
992 [_locationWindow removeDottedPolylineMapObject:dottedPolylineObject];
993 [_mapObjects removeObject:dottedPolylineObject];
994 NSLog(@"Removed dotted polyline map object");
995 // [objc_LocationWindow_removeDottedPolylineMapObject]
996}
997
1002 NSLog(@"--- Remove All Map Objects ---");
1003
1004 if (_locationWindow == nil) {
1005 NSLog(@"LocationWindow not available yet");
1006 return;
1007 }
1008
1009 NSLog(@"Current map objects count: %lu", (unsigned long)_mapObjects.count);
1010
1011 // [objc_LocationWindow_removeAllMapObjects]
1012 // Remove all map objects
1013 [_locationWindow removeAllMapObjects];
1014 [_mapObjects removeAllObjects];
1015 NSLog(@"Removed all map objects");
1016 // [objc_LocationWindow_removeAllMapObjects]
1017
1018 NSLog(@"Map objects count after removal: %lu", (unsigned long)_mapObjects.count);
1019}
1020
1024- (void)cleanup {
1025 NSLog(@"--- Cleanup ---");
1026
1027 if (_locationWindow != nil) {
1028 [_locationWindow removeAllMapObjects];
1029 NSLog(@"Cleaned up all map objects");
1030 }
1031
1032 [_mapObjects removeAllObjects];
1033 NSLog(@"Cleared map objects list");
1034}
1035
1036@end
1037
1038// Main function to run the example
1039int main(int argc, const char * argv[]) {
1040 @autoreleasepool {
1042 }
1043 return 0;
1044}