@@ -366,4 +366,132 @@ export class Query {
366
366
*/
367
367
static and = ( queries : string [ ] ) =>
368
368
new Query ( "and" , undefined , queries . map ( ( query ) => JSON . parse ( query ) ) ) . toString ( ) ;
369
+
370
+ /**
371
+ * Filter resources where attribute is at a specific distance from the given coordinates.
372
+ *
373
+ * @param {string } attribute
374
+ * @param {any[] } values
375
+ * @param {number } distance
376
+ * @param {boolean } meters
377
+ * @returns {string }
378
+ */
379
+ static distanceEqual = ( attribute : string , values : any [ ] , distance : number , meters : boolean = true ) : string =>
380
+ new Query ( "distanceEqual" , attribute , [ values , distance , meters ] as QueryTypesList ) . toString ( ) ;
381
+
382
+ /**
383
+ * Filter resources where attribute is not at a specific distance from the given coordinates.
384
+ *
385
+ * @param {string } attribute
386
+ * @param {any[] } values
387
+ * @param {number } distance
388
+ * @param {boolean } meters
389
+ * @returns {string }
390
+ */
391
+ static distanceNotEqual = ( attribute : string , values : any [ ] , distance : number , meters : boolean = true ) : string =>
392
+ new Query ( "distanceNotEqual" , attribute , [ values , distance , meters ] as QueryTypesList ) . toString ( ) ;
393
+
394
+ /**
395
+ * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.
396
+ *
397
+ * @param {string } attribute
398
+ * @param {any[] } values
399
+ * @param {number } distance
400
+ * @param {boolean } meters
401
+ * @returns {string }
402
+ */
403
+ static distanceGreaterThan = ( attribute : string , values : any [ ] , distance : number , meters : boolean = true ) : string =>
404
+ new Query ( "distanceGreaterThan" , attribute , [ values , distance , meters ] as QueryTypesList ) . toString ( ) ;
405
+
406
+ /**
407
+ * Filter resources where attribute is at a distance less than the specified value from the given coordinates.
408
+ *
409
+ * @param {string } attribute
410
+ * @param {any[] } values
411
+ * @param {number } distance
412
+ * @param {boolean } meters
413
+ * @returns {string }
414
+ */
415
+ static distanceLessThan = ( attribute : string , values : any [ ] , distance : number , meters : boolean = true ) : string =>
416
+ new Query ( "distanceLessThan" , attribute , [ values , distance , meters ] as QueryTypesList ) . toString ( ) ;
417
+
418
+ /**
419
+ * Filter resources where attribute intersects with the given geometry.
420
+ *
421
+ * @param {string } attribute
422
+ * @param {any[] } values
423
+ * @returns {string }
424
+ */
425
+ static intersects = ( attribute : string , values : any [ ] ) : string =>
426
+ new Query ( "intersects" , attribute , values ) . toString ( ) ;
427
+
428
+ /**
429
+ * Filter resources where attribute does not intersect with the given geometry.
430
+ *
431
+ * @param {string } attribute
432
+ * @param {any[] } values
433
+ * @returns {string }
434
+ */
435
+ static notIntersects = ( attribute : string , values : any [ ] ) : string =>
436
+ new Query ( "notIntersects" , attribute , values ) . toString ( ) ;
437
+
438
+ /**
439
+ * Filter resources where attribute crosses the given geometry.
440
+ *
441
+ * @param {string } attribute
442
+ * @param {any[] } values
443
+ * @returns {string }
444
+ */
445
+ static crosses = ( attribute : string , values : any [ ] ) : string =>
446
+ new Query ( "crosses" , attribute , values ) . toString ( ) ;
447
+
448
+ /**
449
+ * Filter resources where attribute does not cross the given geometry.
450
+ *
451
+ * @param {string } attribute
452
+ * @param {any[] } values
453
+ * @returns {string }
454
+ */
455
+ static notCrosses = ( attribute : string , values : any [ ] ) : string =>
456
+ new Query ( "notCrosses" , attribute , values ) . toString ( ) ;
457
+
458
+ /**
459
+ * Filter resources where attribute overlaps with the given geometry.
460
+ *
461
+ * @param {string } attribute
462
+ * @param {any[] } values
463
+ * @returns {string }
464
+ */
465
+ static overlaps = ( attribute : string , values : any [ ] ) : string =>
466
+ new Query ( "overlaps" , attribute , values ) . toString ( ) ;
467
+
468
+ /**
469
+ * Filter resources where attribute does not overlap with the given geometry.
470
+ *
471
+ * @param {string } attribute
472
+ * @param {any[] } values
473
+ * @returns {string }
474
+ */
475
+ static notOverlaps = ( attribute : string , values : any [ ] ) : string =>
476
+ new Query ( "notOverlaps" , attribute , values ) . toString ( ) ;
477
+
478
+ /**
479
+ * Filter resources where attribute touches the given geometry.
480
+ *
481
+ * @param {string } attribute
482
+ * @param {any[] } values
483
+ * @returns {string }
484
+ */
485
+ static touches = ( attribute : string , values : any [ ] ) : string =>
486
+ new Query ( "touches" , attribute , values ) . toString ( ) ;
487
+
488
+ /**
489
+ * Filter resources where attribute does not touch the given geometry.
490
+ *
491
+ * @param {string } attribute
492
+ * @param {any[] } values
493
+ * @returns {string }
494
+ */
495
+ static notTouches = ( attribute : string , values : any [ ] ) : string =>
496
+ new Query ( "notTouches" , attribute , values ) . toString ( ) ;
369
497
}
0 commit comments