@fieldia/map 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +103 -10
  2. package/package.json +5 -4
  3. package/src/index.d.mts +5 -1
  4. package/src/index.d.ts +5 -1
  5. package/src/index.js +7 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +3 -0
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/answers.d.mts +17 -0
  10. package/src/lib/answers.d.ts +17 -0
  11. package/src/lib/answers.js +27 -0
  12. package/src/lib/answers.js.map +1 -0
  13. package/src/lib/answers.mjs +21 -0
  14. package/src/lib/answers.mjs.map +1 -0
  15. package/src/lib/area.js +29 -246
  16. package/src/lib/area.js.map +1 -1
  17. package/src/lib/area.mjs +29 -246
  18. package/src/lib/area.mjs.map +1 -1
  19. package/src/lib/card.d.mts +53 -0
  20. package/src/lib/card.d.ts +53 -0
  21. package/src/lib/card.js +98 -0
  22. package/src/lib/card.js.map +1 -0
  23. package/src/lib/card.mjs +94 -0
  24. package/src/lib/card.mjs.map +1 -0
  25. package/src/lib/cluster.d.mts +12 -0
  26. package/src/lib/cluster.d.ts +12 -0
  27. package/src/lib/cluster.js +60 -0
  28. package/src/lib/cluster.js.map +1 -0
  29. package/src/lib/cluster.mjs +57 -0
  30. package/src/lib/cluster.mjs.map +1 -0
  31. package/src/lib/drawing.d.mts +36 -0
  32. package/src/lib/drawing.d.ts +36 -0
  33. package/src/lib/drawing.js +267 -0
  34. package/src/lib/drawing.js.map +1 -0
  35. package/src/lib/drawing.mjs +263 -0
  36. package/src/lib/drawing.mjs.map +1 -0
  37. package/src/lib/form-map.d.mts +16 -0
  38. package/src/lib/form-map.d.ts +16 -0
  39. package/src/lib/form-map.js +525 -0
  40. package/src/lib/form-map.js.map +1 -0
  41. package/src/lib/form-map.mjs +522 -0
  42. package/src/lib/form-map.mjs.map +1 -0
  43. package/src/lib/kinds.js +9 -2
  44. package/src/lib/kinds.js.map +1 -1
  45. package/src/lib/kinds.mjs +9 -2
  46. package/src/lib/kinds.mjs.map +1 -1
  47. package/src/lib/labels.d.mts +41 -0
  48. package/src/lib/labels.d.ts +41 -0
  49. package/src/lib/labels.js +87 -1
  50. package/src/lib/labels.js.map +1 -1
  51. package/src/lib/labels.mjs +84 -0
  52. package/src/lib/labels.mjs.map +1 -1
  53. package/src/lib/list-view.d.mts +13 -0
  54. package/src/lib/list-view.d.ts +13 -0
  55. package/src/lib/list-view.js +464 -0
  56. package/src/lib/list-view.js.map +1 -0
  57. package/src/lib/list-view.mjs +461 -0
  58. package/src/lib/list-view.mjs.map +1 -0
  59. package/src/lib/map-core.d.mts +2 -2
  60. package/src/lib/map-core.d.ts +2 -2
  61. package/src/lib/map-core.js +23 -3
  62. package/src/lib/map-core.js.map +1 -1
  63. package/src/lib/map-core.mjs +23 -3
  64. package/src/lib/map-core.mjs.map +1 -1
  65. package/src/lib/map-icons.d.mts +8 -0
  66. package/src/lib/map-icons.d.ts +8 -0
  67. package/src/lib/map-icons.js +21 -0
  68. package/src/lib/map-icons.js.map +1 -0
  69. package/src/lib/map-icons.mjs +18 -0
  70. package/src/lib/map-icons.mjs.map +1 -0
  71. package/src/lib/marks.d.mts +34 -0
  72. package/src/lib/marks.d.ts +34 -0
  73. package/src/lib/marks.js +56 -0
  74. package/src/lib/marks.js.map +1 -0
  75. package/src/lib/marks.mjs +49 -0
  76. package/src/lib/marks.mjs.map +1 -0
  77. package/src/lib/pins.d.mts +58 -0
  78. package/src/lib/pins.d.ts +58 -0
  79. package/src/lib/pins.js +165 -0
  80. package/src/lib/pins.js.map +1 -0
  81. package/src/lib/pins.mjs +156 -0
  82. package/src/lib/pins.mjs.map +1 -0
  83. package/src/lib/providers.d.mts +27 -3
  84. package/src/lib/providers.d.ts +27 -3
  85. package/src/lib/providers.js +69 -67
  86. package/src/lib/providers.js.map +1 -1
  87. package/src/lib/providers.mjs +17 -15
  88. package/src/lib/providers.mjs.map +1 -1
  89. package/src/lib/route-line.d.mts +34 -0
  90. package/src/lib/route-line.d.ts +34 -0
  91. package/src/lib/route-line.js +53 -0
  92. package/src/lib/route-line.js.map +1 -0
  93. package/src/lib/route-line.mjs +47 -0
  94. package/src/lib/route-line.mjs.map +1 -0
  95. package/src/lib/routes.d.mts +28 -0
  96. package/src/lib/routes.d.ts +28 -0
  97. package/src/lib/routes.js +112 -0
  98. package/src/lib/routes.js.map +1 -0
  99. package/src/lib/routes.mjs +105 -0
  100. package/src/lib/routes.mjs.map +1 -0
  101. package/src/lib/settings.d.mts +8 -3
  102. package/src/lib/settings.d.ts +8 -3
  103. package/src/lib/styles.d.mts +16 -0
  104. package/src/lib/styles.d.ts +16 -0
  105. package/src/lib/styles.js +181 -1
  106. package/src/lib/styles.js.map +1 -1
  107. package/src/lib/styles.mjs +178 -0
  108. package/src/lib/styles.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"providers.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type LatLng } from './geo.mjs';
2
+ /**
3
+ * A route's line as a traveller moves along it: how far along each of its
4
+ * points lies, where on it a place is nearest (and how far off it), the part
5
+ * travelled and the part left, and the point a distance along — for the
6
+ * faded part behind a courier, the time and distance left, a pin gliding
7
+ * along the road, and a new route once the courier leaves this one.
8
+ */
9
+ export interface RouteLine {
10
+ line: LatLng[];
11
+ /** How far along each point lies, in metres from the start. */
12
+ along: number[];
13
+ metres: number;
14
+ }
15
+ export interface OnLine {
16
+ /** The segment it falls on: from `line[index]` to `line[index + 1]`. */
17
+ index: number;
18
+ /** The point on the line nearest the place. */
19
+ at: LatLng;
20
+ /** How far along the line that is, in metres. */
21
+ along: number;
22
+ /** How far the place is from the line, in metres. */
23
+ off: number;
24
+ }
25
+ export declare function routeLine(line: LatLng[]): RouteLine;
26
+ /** The nearest point of the line to a place: each segment measured flat around the place, as a few hundred metres are. */
27
+ export declare function nearestOnLine(route: RouteLine, place: LatLng): OnLine;
28
+ /** The line in two at a point on it: the part travelled, and the part left, each starting or ending there. */
29
+ export declare function splitLine(route: RouteLine, on: OnLine): {
30
+ done: LatLng[];
31
+ left: LatLng[];
32
+ };
33
+ /** The point `metres` along the line, the ends where it runs past them. */
34
+ export declare function pointAlong(route: RouteLine, metres: number): LatLng;
@@ -0,0 +1,34 @@
1
+ import { type LatLng } from './geo';
2
+ /**
3
+ * A route's line as a traveller moves along it: how far along each of its
4
+ * points lies, where on it a place is nearest (and how far off it), the part
5
+ * travelled and the part left, and the point a distance along — for the
6
+ * faded part behind a courier, the time and distance left, a pin gliding
7
+ * along the road, and a new route once the courier leaves this one.
8
+ */
9
+ export interface RouteLine {
10
+ line: LatLng[];
11
+ /** How far along each point lies, in metres from the start. */
12
+ along: number[];
13
+ metres: number;
14
+ }
15
+ export interface OnLine {
16
+ /** The segment it falls on: from `line[index]` to `line[index + 1]`. */
17
+ index: number;
18
+ /** The point on the line nearest the place. */
19
+ at: LatLng;
20
+ /** How far along the line that is, in metres. */
21
+ along: number;
22
+ /** How far the place is from the line, in metres. */
23
+ off: number;
24
+ }
25
+ export declare function routeLine(line: LatLng[]): RouteLine;
26
+ /** The nearest point of the line to a place: each segment measured flat around the place, as a few hundred metres are. */
27
+ export declare function nearestOnLine(route: RouteLine, place: LatLng): OnLine;
28
+ /** The line in two at a point on it: the part travelled, and the part left, each starting or ending there. */
29
+ export declare function splitLine(route: RouteLine, on: OnLine): {
30
+ done: LatLng[];
31
+ left: LatLng[];
32
+ };
33
+ /** The point `metres` along the line, the ends where it runs past them. */
34
+ export declare function pointAlong(route: RouteLine, metres: number): LatLng;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.routeLine = routeLine;
4
+ exports.nearestOnLine = nearestOnLine;
5
+ exports.splitLine = splitLine;
6
+ exports.pointAlong = pointAlong;
7
+ const geo_1 = require("./geo");
8
+ function routeLine(line) {
9
+ const along = [0];
10
+ for (let i = 1; i < line.length; i++)
11
+ along.push(along[i - 1] + (0, geo_1.metresBetween)(line[i - 1], line[i]));
12
+ return { line, along, metres: along[along.length - 1] ?? 0 };
13
+ }
14
+ /** The nearest point of the line to a place: each segment measured flat around the place, as a few hundred metres are. */
15
+ function nearestOnLine(route, place) {
16
+ const { line, along } = route;
17
+ if (line.length === 1)
18
+ return { index: 0, at: line[0], along: 0, off: (0, geo_1.metresBetween)(line[0], place) };
19
+ const scale = Math.cos((place.lat * Math.PI) / 180);
20
+ let best = { index: 0, at: line[0], along: 0, off: Infinity };
21
+ for (let i = 0; i < line.length - 1; i++) {
22
+ const a = line[i];
23
+ const b = line[i + 1];
24
+ const dx = (b.lng - a.lng) * scale;
25
+ const dy = b.lat - a.lat;
26
+ const length = dx * dx + dy * dy;
27
+ const t = length ? Math.max(0, Math.min(1, (((place.lng - a.lng) * scale) * dx + (place.lat - a.lat) * dy) / length)) : 0;
28
+ const at = { lat: a.lat + (b.lat - a.lat) * t, lng: a.lng + (b.lng - a.lng) * t };
29
+ const off = (0, geo_1.metresBetween)(at, place);
30
+ if (off < best.off)
31
+ best = { index: i, at, along: along[i] + (along[i + 1] - along[i]) * t, off };
32
+ }
33
+ return best;
34
+ }
35
+ /** The line in two at a point on it: the part travelled, and the part left, each starting or ending there. */
36
+ function splitLine(route, on) {
37
+ const { line } = route;
38
+ return { done: [...line.slice(0, on.index + 1), on.at], left: [on.at, ...line.slice(on.index + 1)] };
39
+ }
40
+ /** The point `metres` along the line, the ends where it runs past them. */
41
+ function pointAlong(route, metres) {
42
+ const { line, along } = route;
43
+ if (metres <= 0)
44
+ return line[0];
45
+ if (metres >= route.metres)
46
+ return line[line.length - 1];
47
+ let i = 1;
48
+ while (along[i] < metres)
49
+ i++;
50
+ const t = (metres - along[i - 1]) / (along[i] - along[i - 1] || 1);
51
+ return { lat: line[i - 1].lat + (line[i].lat - line[i - 1].lat) * t, lng: line[i - 1].lng + (line[i].lng - line[i - 1].lng) * t };
52
+ }
53
+ //# sourceMappingURL=route-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-line.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/route-line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { metresBetween } from './geo.mjs';
2
+ export function routeLine(line) {
3
+ const along = [0];
4
+ for (let i = 1; i < line.length; i++)
5
+ along.push(along[i - 1] + metresBetween(line[i - 1], line[i]));
6
+ return { line, along, metres: along[along.length - 1] ?? 0 };
7
+ }
8
+ /** The nearest point of the line to a place: each segment measured flat around the place, as a few hundred metres are. */
9
+ export function nearestOnLine(route, place) {
10
+ const { line, along } = route;
11
+ if (line.length === 1)
12
+ return { index: 0, at: line[0], along: 0, off: metresBetween(line[0], place) };
13
+ const scale = Math.cos((place.lat * Math.PI) / 180);
14
+ let best = { index: 0, at: line[0], along: 0, off: Infinity };
15
+ for (let i = 0; i < line.length - 1; i++) {
16
+ const a = line[i];
17
+ const b = line[i + 1];
18
+ const dx = (b.lng - a.lng) * scale;
19
+ const dy = b.lat - a.lat;
20
+ const length = dx * dx + dy * dy;
21
+ const t = length ? Math.max(0, Math.min(1, (((place.lng - a.lng) * scale) * dx + (place.lat - a.lat) * dy) / length)) : 0;
22
+ const at = { lat: a.lat + (b.lat - a.lat) * t, lng: a.lng + (b.lng - a.lng) * t };
23
+ const off = metresBetween(at, place);
24
+ if (off < best.off)
25
+ best = { index: i, at, along: along[i] + (along[i + 1] - along[i]) * t, off };
26
+ }
27
+ return best;
28
+ }
29
+ /** The line in two at a point on it: the part travelled, and the part left, each starting or ending there. */
30
+ export function splitLine(route, on) {
31
+ const { line } = route;
32
+ return { done: [...line.slice(0, on.index + 1), on.at], left: [on.at, ...line.slice(on.index + 1)] };
33
+ }
34
+ /** The point `metres` along the line, the ends where it runs past them. */
35
+ export function pointAlong(route, metres) {
36
+ const { line, along } = route;
37
+ if (metres <= 0)
38
+ return line[0];
39
+ if (metres >= route.metres)
40
+ return line[line.length - 1];
41
+ let i = 1;
42
+ while (along[i] < metres)
43
+ i++;
44
+ const t = (metres - along[i - 1]) / (along[i] - along[i - 1] || 1);
45
+ return { lat: line[i - 1].lat + (line[i].lat - line[i - 1].lat) * t, lng: line[i - 1].lng + (line[i].lng - line[i - 1].lng) * t };
46
+ }
47
+ //# sourceMappingURL=route-line.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-line.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/route-line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { LatLng } from './geo.mjs';
2
+ import { type Fetch } from './answers.mjs';
3
+ import type { RouteFound, RouteRequest } from './providers.mjs';
4
+ /**
5
+ * The providers' routes along the roads, loaded the first time a map asks
6
+ * for one: a form with only a place or an area never carries them. Each
7
+ * reads its provider's answer into one line, its metres and its seconds.
8
+ */
9
+ /** Google's encoded polyline, as its Routes API sends a line: five decimals, each number a run of five-bit groups. */
10
+ export declare function decodePolyline(encoded: string): LatLng[];
11
+ /** OSRM's route: the points longitude first, by its profile. */
12
+ export declare function osrmRoute(fetchWith: Fetch, osrm: string, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
13
+ /** Azure Maps' Route Directions of 2025: a GeoJSON of the points in order, its route path asked for; by car or on foot. */
14
+ export declare function azureRoute(ask: {
15
+ fetchWith: Fetch;
16
+ auth: string;
17
+ headers: () => Promise<Record<string, string>>;
18
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
19
+ /** Google's Routes API: only the fields it reads, its line an encoded polyline, traffic for a car. */
20
+ export declare function googleRoute(ask: {
21
+ fetchWith: Fetch;
22
+ key: string;
23
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
24
+ /** Mapbox Directions: by its profile, traffic for a car. */
25
+ export declare function mapboxRoute(ask: {
26
+ fetchWith: Fetch;
27
+ token: string;
28
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
@@ -0,0 +1,28 @@
1
+ import type { LatLng } from './geo';
2
+ import { type Fetch } from './answers';
3
+ import type { RouteFound, RouteRequest } from './providers';
4
+ /**
5
+ * The providers' routes along the roads, loaded the first time a map asks
6
+ * for one: a form with only a place or an area never carries them. Each
7
+ * reads its provider's answer into one line, its metres and its seconds.
8
+ */
9
+ /** Google's encoded polyline, as its Routes API sends a line: five decimals, each number a run of five-bit groups. */
10
+ export declare function decodePolyline(encoded: string): LatLng[];
11
+ /** OSRM's route: the points longitude first, by its profile. */
12
+ export declare function osrmRoute(fetchWith: Fetch, osrm: string, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
13
+ /** Azure Maps' Route Directions of 2025: a GeoJSON of the points in order, its route path asked for; by car or on foot. */
14
+ export declare function azureRoute(ask: {
15
+ fetchWith: Fetch;
16
+ auth: string;
17
+ headers: () => Promise<Record<string, string>>;
18
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
19
+ /** Google's Routes API: only the fields it reads, its line an encoded polyline, traffic for a car. */
20
+ export declare function googleRoute(ask: {
21
+ fetchWith: Fetch;
22
+ key: string;
23
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
24
+ /** Mapbox Directions: by its profile, traffic for a car. */
25
+ export declare function mapboxRoute(ask: {
26
+ fetchWith: Fetch;
27
+ token: string;
28
+ }, { points, mode, signal }: RouteRequest): Promise<RouteFound>;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodePolyline = decodePolyline;
4
+ exports.osrmRoute = osrmRoute;
5
+ exports.azureRoute = azureRoute;
6
+ exports.googleRoute = googleRoute;
7
+ exports.mapboxRoute = mapboxRoute;
8
+ const answers_1 = require("./answers");
9
+ /**
10
+ * The providers' routes along the roads, loaded the first time a map asks
11
+ * for one: a form with only a place or an area never carries them. Each
12
+ * reads its provider's answer into one line, its metres and its seconds.
13
+ */
14
+ /** Google's encoded polyline, as its Routes API sends a line: five decimals, each number a run of five-bit groups. */
15
+ function decodePolyline(encoded) {
16
+ const line = [];
17
+ let at = 0;
18
+ let lat = 0;
19
+ let lng = 0;
20
+ const next = () => {
21
+ let shift = 0;
22
+ let result = 0;
23
+ let byte;
24
+ do {
25
+ byte = encoded.charCodeAt(at++) - 63;
26
+ result |= (byte & 0x1f) << shift;
27
+ shift += 5;
28
+ } while (byte >= 0x20);
29
+ return result & 1 ? ~(result >> 1) : result >> 1;
30
+ };
31
+ while (at < encoded.length) {
32
+ lat += next();
33
+ lng += next();
34
+ line.push({ lat: lat / 1e5, lng: lng / 1e5 });
35
+ }
36
+ return line;
37
+ }
38
+ /** A route's line from GeoJSON coordinates, longitude first: a LineString's, or a MultiLineString's joined. */
39
+ function lineOf(coordinates, multi = false) {
40
+ const runs = multi ? coordinates : [coordinates];
41
+ if (!Array.isArray(runs))
42
+ return [];
43
+ return runs.flatMap((run) => Array.isArray(run) ? run.flatMap((pair) => (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'number' ? [{ lat: pair[1], lng: pair[0] }] : [])) : []);
44
+ }
45
+ /** A route that is no route: refused in words a developer can act on. */
46
+ function routed(found, provider) {
47
+ if (found.line.length < 2 || !Number.isFinite(found.metres) || !Number.isFinite(found.seconds))
48
+ throw new Error(`${provider} found no route`);
49
+ return found;
50
+ }
51
+ const OSRM_PROFILE = { car: 'driving', bike: 'cycling', foot: 'walking' };
52
+ /** OSRM's route: the points longitude first, by its profile. */
53
+ async function osrmRoute(fetchWith, osrm, { points, mode, signal }) {
54
+ const found = await (0, answers_1.getJson)(fetchWith, `${osrm}/route/v1/${OSRM_PROFILE[mode]}/${points.map((p) => `${p.lng},${p.lat}`).join(';')}?overview=full&geometries=geojson`, { signal });
55
+ const route = (0, answers_1.pathOf)(found, 'routes')?.[0];
56
+ return routed({ line: lineOf((0, answers_1.pathOf)(route, 'geometry', 'coordinates')), metres: Number((0, answers_1.pathOf)(route, 'distance')), seconds: Number((0, answers_1.pathOf)(route, 'duration')) }, 'OSRM');
57
+ }
58
+ /** Azure Maps' Route Directions of 2025: a GeoJSON of the points in order, its route path asked for; by car or on foot. */
59
+ async function azureRoute(ask, { points, mode, signal }) {
60
+ // Its route service drives and walks; it has no bicycles.
61
+ if (mode === 'bike')
62
+ throw new Error('Azure Maps finds routes by car or on foot, not by bike');
63
+ const found = await (0, answers_1.getJson)(ask.fetchWith, `https://atlas.microsoft.com/route/directions?api-version=2025-01-01${ask.auth}`, {
64
+ method: 'POST',
65
+ signal,
66
+ headers: { 'Content-Type': 'application/geo+json', ...(await ask.headers()) },
67
+ body: JSON.stringify({
68
+ type: 'FeatureCollection',
69
+ features: points.map((p, i) => ({
70
+ type: 'Feature',
71
+ geometry: { type: 'Point', coordinates: [p.lng, p.lat] },
72
+ // Its first and last are where it starts and ends; those between, passed through.
73
+ properties: { pointIndex: i, pointType: i === 0 || i === points.length - 1 ? 'waypoint' : 'viaWaypoint' },
74
+ })),
75
+ travelMode: mode === 'foot' ? 'walking' : 'driving',
76
+ routeOutputOptions: ['routePath'],
77
+ }),
78
+ });
79
+ const features = (0, answers_1.pathOf)(found, 'features');
80
+ const path = Array.isArray(features) ? features.find((f) => (0, answers_1.pathOf)(f, 'properties', 'type') === 'RoutePath') : undefined;
81
+ // The time with traffic, when it gives one.
82
+ const seconds = (0, answers_1.pathOf)(path, 'properties', 'durationTrafficInSeconds') ?? (0, answers_1.pathOf)(path, 'properties', 'durationInSeconds');
83
+ return routed({ line: lineOf((0, answers_1.pathOf)(path, 'geometry', 'coordinates'), true), metres: Number((0, answers_1.pathOf)(path, 'properties', 'distanceInMeters')), seconds: Number(seconds) }, 'Azure Maps');
84
+ }
85
+ /** Google's Routes API: only the fields it reads, its line an encoded polyline, traffic for a car. */
86
+ async function googleRoute(ask, { points, mode, signal }) {
87
+ const place = (p) => ({ location: { latLng: { latitude: p.lat, longitude: p.lng } } });
88
+ const answer = await (0, answers_1.getJson)(ask.fetchWith, 'https://routes.googleapis.com/directions/v2:computeRoutes', {
89
+ method: 'POST',
90
+ signal,
91
+ headers: { 'Content-Type': 'application/json', 'X-Goog-Api-Key': ask.key, 'X-Goog-FieldMask': 'routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline' },
92
+ body: JSON.stringify({
93
+ origin: place(points[0]),
94
+ destination: place(points[points.length - 1]),
95
+ ...(points.length > 2 ? { intermediates: points.slice(1, -1).map(place) } : {}),
96
+ travelMode: mode === 'bike' ? 'BICYCLE' : mode === 'foot' ? 'WALK' : 'DRIVE',
97
+ ...(mode === 'car' ? { routingPreference: 'TRAFFIC_AWARE' } : {}),
98
+ }),
99
+ });
100
+ const route = (0, answers_1.pathOf)(answer, 'routes')?.[0];
101
+ const encoded = (0, answers_1.pathOf)(route, 'polyline', 'encodedPolyline');
102
+ // Its duration is words: "489s".
103
+ return routed({ line: typeof encoded === 'string' ? decodePolyline(encoded) : [], metres: Number((0, answers_1.pathOf)(route, 'distanceMeters')), seconds: parseFloat(String((0, answers_1.pathOf)(route, 'duration'))) }, "Google's Routes API");
104
+ }
105
+ /** Mapbox Directions: by its profile, traffic for a car. */
106
+ async function mapboxRoute(ask, { points, mode, signal }) {
107
+ const profile = mode === 'bike' ? 'cycling' : mode === 'foot' ? 'walking' : 'driving-traffic';
108
+ const found = await (0, answers_1.getJson)(ask.fetchWith, `https://api.mapbox.com/directions/v5/mapbox/${profile}/${points.map((p) => `${p.lng},${p.lat}`).join(';')}?geometries=geojson&overview=full&access_token=${ask.token}`, { signal });
109
+ const route = (0, answers_1.pathOf)(found, 'routes')?.[0];
110
+ return routed({ line: lineOf((0, answers_1.pathOf)(route, 'geometry', 'coordinates')), metres: Number((0, answers_1.pathOf)(route, 'distance')), seconds: Number((0, answers_1.pathOf)(route, 'duration')) }, 'Mapbox');
111
+ }
112
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { getJson, pathOf } from './answers.mjs';
2
+ /**
3
+ * The providers' routes along the roads, loaded the first time a map asks
4
+ * for one: a form with only a place or an area never carries them. Each
5
+ * reads its provider's answer into one line, its metres and its seconds.
6
+ */
7
+ /** Google's encoded polyline, as its Routes API sends a line: five decimals, each number a run of five-bit groups. */
8
+ export function decodePolyline(encoded) {
9
+ const line = [];
10
+ let at = 0;
11
+ let lat = 0;
12
+ let lng = 0;
13
+ const next = () => {
14
+ let shift = 0;
15
+ let result = 0;
16
+ let byte;
17
+ do {
18
+ byte = encoded.charCodeAt(at++) - 63;
19
+ result |= (byte & 0x1f) << shift;
20
+ shift += 5;
21
+ } while (byte >= 0x20);
22
+ return result & 1 ? ~(result >> 1) : result >> 1;
23
+ };
24
+ while (at < encoded.length) {
25
+ lat += next();
26
+ lng += next();
27
+ line.push({ lat: lat / 1e5, lng: lng / 1e5 });
28
+ }
29
+ return line;
30
+ }
31
+ /** A route's line from GeoJSON coordinates, longitude first: a LineString's, or a MultiLineString's joined. */
32
+ function lineOf(coordinates, multi = false) {
33
+ const runs = multi ? coordinates : [coordinates];
34
+ if (!Array.isArray(runs))
35
+ return [];
36
+ return runs.flatMap((run) => Array.isArray(run) ? run.flatMap((pair) => (Array.isArray(pair) && typeof pair[0] === 'number' && typeof pair[1] === 'number' ? [{ lat: pair[1], lng: pair[0] }] : [])) : []);
37
+ }
38
+ /** A route that is no route: refused in words a developer can act on. */
39
+ function routed(found, provider) {
40
+ if (found.line.length < 2 || !Number.isFinite(found.metres) || !Number.isFinite(found.seconds))
41
+ throw new Error(`${provider} found no route`);
42
+ return found;
43
+ }
44
+ const OSRM_PROFILE = { car: 'driving', bike: 'cycling', foot: 'walking' };
45
+ /** OSRM's route: the points longitude first, by its profile. */
46
+ export async function osrmRoute(fetchWith, osrm, { points, mode, signal }) {
47
+ const found = await getJson(fetchWith, `${osrm}/route/v1/${OSRM_PROFILE[mode]}/${points.map((p) => `${p.lng},${p.lat}`).join(';')}?overview=full&geometries=geojson`, { signal });
48
+ const route = pathOf(found, 'routes')?.[0];
49
+ return routed({ line: lineOf(pathOf(route, 'geometry', 'coordinates')), metres: Number(pathOf(route, 'distance')), seconds: Number(pathOf(route, 'duration')) }, 'OSRM');
50
+ }
51
+ /** Azure Maps' Route Directions of 2025: a GeoJSON of the points in order, its route path asked for; by car or on foot. */
52
+ export async function azureRoute(ask, { points, mode, signal }) {
53
+ // Its route service drives and walks; it has no bicycles.
54
+ if (mode === 'bike')
55
+ throw new Error('Azure Maps finds routes by car or on foot, not by bike');
56
+ const found = await getJson(ask.fetchWith, `https://atlas.microsoft.com/route/directions?api-version=2025-01-01${ask.auth}`, {
57
+ method: 'POST',
58
+ signal,
59
+ headers: { 'Content-Type': 'application/geo+json', ...(await ask.headers()) },
60
+ body: JSON.stringify({
61
+ type: 'FeatureCollection',
62
+ features: points.map((p, i) => ({
63
+ type: 'Feature',
64
+ geometry: { type: 'Point', coordinates: [p.lng, p.lat] },
65
+ // Its first and last are where it starts and ends; those between, passed through.
66
+ properties: { pointIndex: i, pointType: i === 0 || i === points.length - 1 ? 'waypoint' : 'viaWaypoint' },
67
+ })),
68
+ travelMode: mode === 'foot' ? 'walking' : 'driving',
69
+ routeOutputOptions: ['routePath'],
70
+ }),
71
+ });
72
+ const features = pathOf(found, 'features');
73
+ const path = Array.isArray(features) ? features.find((f) => pathOf(f, 'properties', 'type') === 'RoutePath') : undefined;
74
+ // The time with traffic, when it gives one.
75
+ const seconds = pathOf(path, 'properties', 'durationTrafficInSeconds') ?? pathOf(path, 'properties', 'durationInSeconds');
76
+ return routed({ line: lineOf(pathOf(path, 'geometry', 'coordinates'), true), metres: Number(pathOf(path, 'properties', 'distanceInMeters')), seconds: Number(seconds) }, 'Azure Maps');
77
+ }
78
+ /** Google's Routes API: only the fields it reads, its line an encoded polyline, traffic for a car. */
79
+ export async function googleRoute(ask, { points, mode, signal }) {
80
+ const place = (p) => ({ location: { latLng: { latitude: p.lat, longitude: p.lng } } });
81
+ const answer = await getJson(ask.fetchWith, 'https://routes.googleapis.com/directions/v2:computeRoutes', {
82
+ method: 'POST',
83
+ signal,
84
+ headers: { 'Content-Type': 'application/json', 'X-Goog-Api-Key': ask.key, 'X-Goog-FieldMask': 'routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline' },
85
+ body: JSON.stringify({
86
+ origin: place(points[0]),
87
+ destination: place(points[points.length - 1]),
88
+ ...(points.length > 2 ? { intermediates: points.slice(1, -1).map(place) } : {}),
89
+ travelMode: mode === 'bike' ? 'BICYCLE' : mode === 'foot' ? 'WALK' : 'DRIVE',
90
+ ...(mode === 'car' ? { routingPreference: 'TRAFFIC_AWARE' } : {}),
91
+ }),
92
+ });
93
+ const route = pathOf(answer, 'routes')?.[0];
94
+ const encoded = pathOf(route, 'polyline', 'encodedPolyline');
95
+ // Its duration is words: "489s".
96
+ return routed({ line: typeof encoded === 'string' ? decodePolyline(encoded) : [], metres: Number(pathOf(route, 'distanceMeters')), seconds: parseFloat(String(pathOf(route, 'duration'))) }, "Google's Routes API");
97
+ }
98
+ /** Mapbox Directions: by its profile, traffic for a car. */
99
+ export async function mapboxRoute(ask, { points, mode, signal }) {
100
+ const profile = mode === 'bike' ? 'cycling' : mode === 'foot' ? 'walking' : 'driving-traffic';
101
+ const found = await getJson(ask.fetchWith, `https://api.mapbox.com/directions/v5/mapbox/${profile}/${points.map((p) => `${p.lng},${p.lat}`).join(';')}?geometries=geojson&overview=full&access_token=${ask.token}`, { signal });
102
+ const route = pathOf(found, 'routes')?.[0];
103
+ return routed({ line: lineOf(pathOf(route, 'geometry', 'coordinates')), metres: Number(pathOf(route, 'distance')), seconds: Number(pathOf(route, 'duration')) }, 'Mapbox');
104
+ }
105
+ //# sourceMappingURL=routes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/routes.ts"],"names":[],"mappings":"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"}