backend/src/utils/geo.utils.ts   A
last analyzed

Complexity

Total Complexity 2
Complexity/F 1

Size

Lines of Code 32
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 24
dl 0
loc 32
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0
wmc 2
mnd 0
bc 0
fnc 2
bpm 0
cpm 1
noi 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A geo.utils.ts ➔ positionInsidePolygon 0 23 1
A geo.utils.ts ➔ getDistance 0 5 1
1 12
import * as turf from '@turf/turf';
2
3 12
export function getDistance(lat1: number, lon1: number, lat2: number, lon2: number) {
4 50
  const from = turf.point([lon1, lat1]);
5 50
  const to = turf.point([lon2, lat2]);
6 50
  return turf.distance(from, to) * 1000;
7
}
8
9 12
export function positionInsidePolygon(
10
  lat: number,
11
  lon: number,
12
  polygon: { lat: number; lng: number }[],
13
): boolean {
14 486
  const point = {
15
    type: 'Feature' as const,
16
    properties: {},
17
    geometry: {
18
      type: 'Point' as const,
19
      coordinates: [lon, lat],
20
    },
21
  };
22 486
  const poly = {
23
    type: 'Feature' as const,
24
    properties: {},
25
    geometry: {
26
      type: 'Polygon' as const,
27 2469
      coordinates: [polygon.map((p) => [p.lng, p.lat])],
28
    },
29
  };
30 486
  return turf.booleanPointInPolygon(point, poly);
31
}
32