rendezvous-kit 1.8.0 → 1.10.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.
- package/README.md +69 -5
- package/dist/engines/graphhopper.d.ts +14 -1
- package/dist/engines/graphhopper.d.ts.map +1 -1
- package/dist/engines/graphhopper.js +15 -0
- package/dist/engines/graphhopper.js.map +1 -1
- package/dist/engines/openrouteservice.d.ts +17 -1
- package/dist/engines/openrouteservice.d.ts.map +1 -1
- package/dist/engines/openrouteservice.js +15 -0
- package/dist/engines/openrouteservice.js.map +1 -1
- package/dist/engines/osrm.d.ts +16 -1
- package/dist/engines/osrm.d.ts.map +1 -1
- package/dist/engines/osrm.js +17 -0
- package/dist/engines/osrm.js.map +1 -1
- package/dist/engines/valhalla.d.ts +25 -1
- package/dist/engines/valhalla.d.ts.map +1 -1
- package/dist/engines/valhalla.js +100 -4
- package/dist/engines/valhalla.js.map +1 -1
- package/dist/geo.d.ts +12 -0
- package/dist/geo.d.ts.map +1 -1
- package/dist/geo.js +27 -1
- package/dist/geo.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/llms.txt +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,24 @@
|
|
|
8
8
|
|
|
9
9
|
**[Live Demo →](https://thecryptodonkey.github.io/rendezvous-kit)**
|
|
10
10
|
|
|
11
|
+
### How it works
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Alice (London) Bob (Bristol) Carol (Birmingham)
|
|
15
|
+
╲ │ ╱
|
|
16
|
+
isochrone isochrone isochrone
|
|
17
|
+
╲ │ ╱
|
|
18
|
+
╲────────── intersection ──────────╱
|
|
19
|
+
│
|
|
20
|
+
venue search
|
|
21
|
+
│
|
|
22
|
+
fairness scoring
|
|
23
|
+
│
|
|
24
|
+
ranked suggestions
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Geographic midpoint tools find the centre of a triangle. **rendezvous-kit finds where everyone can actually get to** — using real road networks, travel times, and venue availability.
|
|
28
|
+
|
|
11
29
|
## Why rendezvous-kit?
|
|
12
30
|
|
|
13
31
|
- **Full pipeline** — isochrone computation → polygon intersection → venue search → fairness scoring, all in one library
|
|
@@ -16,6 +34,28 @@
|
|
|
16
34
|
- **Built on geohash-kit** — leverages our spatial primitives; only runtime dependency
|
|
17
35
|
- **Zero third-party dependencies** — ships with a pure-TypeScript Sutherland–Hodgman polygon intersection, Overpass API venue search, and all engine adapters
|
|
18
36
|
|
|
37
|
+
## Use Cases
|
|
38
|
+
|
|
39
|
+
- **Social apps** — "Meet in the middle" features for groups of friends picking a pub, café, or restaurant
|
|
40
|
+
- **Ride-sharing** — optimal pickup points that minimise detour for all passengers
|
|
41
|
+
- **Event planning** — conference venues fair to attendees from multiple cities
|
|
42
|
+
- **Corporate** — office locations that balance commute times across a distributed team
|
|
43
|
+
- **Delivery logistics** — hub placement that minimises worst-case last-mile distances
|
|
44
|
+
- **Emergency services** — staging areas reachable by multiple response units within a time budget
|
|
45
|
+
|
|
46
|
+
## Compared to Alternatives
|
|
47
|
+
|
|
48
|
+
| Capability | Geographic midpoint libraries | Commercial APIs (Targomo, TravelTime) | rendezvous-kit |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| Travel-time aware | No — straight-line distance only | Yes | Yes |
|
|
51
|
+
| Multi-person intersection | No | Yes (API key + billing) | Yes (self-hosted, free) |
|
|
52
|
+
| Fairness weighting | No | No | Yes — 3 strategies |
|
|
53
|
+
| Venue search included | No | No | Yes — via Overpass API |
|
|
54
|
+
| Engine-agnostic | N/A | No — vendor lock-in | Yes — 4 engines |
|
|
55
|
+
| Works offline/self-hosted | N/A | No | Yes (with local Valhalla/OSRM) |
|
|
56
|
+
|
|
57
|
+
rendezvous-kit is the only open-source library that combines isochrone intersection, venue discovery, and fairness scoring in a single pipeline.
|
|
58
|
+
|
|
19
59
|
## Install
|
|
20
60
|
|
|
21
61
|
```bash
|
|
@@ -80,10 +120,13 @@ OSRM does not support isochrone computation — use it only when you need a fast
|
|
|
80
120
|
|
|
81
121
|
| Function | Description |
|
|
82
122
|
|----------|-------------|
|
|
83
|
-
| `intersectPolygons(polygons)` | Sutherland–Hodgman N-polygon intersection; returns
|
|
123
|
+
| `intersectPolygons(polygons)` | Sutherland–Hodgman N-polygon intersection; returns largest component or `null` |
|
|
124
|
+
| `intersectPolygonsAll(polygons)` | N-polygon intersection preserving all disconnected components; returns `GeoJSONPolygon[]` |
|
|
84
125
|
| `boundingBox(polygon)` | Compute `BBox` (minLon, minLat, maxLon, maxLat) |
|
|
85
126
|
| `centroid(polygon)` | Geometric centre as `{ lat, lon }` |
|
|
86
127
|
| `polygonArea(polygon)` | Area in square metres |
|
|
128
|
+
| `circleToPolygon(centre, radiusMetres, segments?)` | Approximate a circle as a GeoJSON Polygon (default 64 segments) |
|
|
129
|
+
| `getDestinationPoint(start, distanceMetres, bearingDeg)` | Haversine destination point from `[lon, lat]`, distance, and bearing |
|
|
87
130
|
|
|
88
131
|
### Engines
|
|
89
132
|
|
|
@@ -116,12 +159,15 @@ OSRM does not support isochrone computation — use it only when you need a fast
|
|
|
116
159
|
| `Venue` | `{ name, lat, lon, venueType, osmId? }` |
|
|
117
160
|
| `RendezvousOptions` | `{ participants, mode, maxTimeMinutes, venueTypes, fairness?, limit? }` |
|
|
118
161
|
| `RendezvousSuggestion` | `{ venue, travelTimes, fairnessScore }` |
|
|
162
|
+
| `BBox` | `{ minLon, minLat, maxLon, maxLat }` |
|
|
163
|
+
| `Coordinate` | `{ lat, lon }` |
|
|
119
164
|
|
|
120
165
|
## Subpath Exports
|
|
121
166
|
|
|
122
167
|
```typescript
|
|
123
168
|
import { findRendezvous } from 'rendezvous-kit' // barrel
|
|
124
|
-
import { intersectPolygons, centroid
|
|
169
|
+
import { intersectPolygons, intersectPolygonsAll, centroid,
|
|
170
|
+
circleToPolygon, getDestinationPoint } from 'rendezvous-kit/geo' // geometry
|
|
125
171
|
import { ValhallaEngine } from 'rendezvous-kit/engines/valhalla'
|
|
126
172
|
import { OpenRouteServiceEngine } from 'rendezvous-kit/engines/openrouteservice'
|
|
127
173
|
import { GraphHopperEngine } from 'rendezvous-kit/engines/graphhopper'
|
|
@@ -135,11 +181,12 @@ import { findRendezvous } from 'rendezvous-kit/rendezvous' // same
|
|
|
135
181
|
`findRendezvous` runs six steps:
|
|
136
182
|
|
|
137
183
|
1. **Isochrones** — compute a reachability polygon for each participant
|
|
138
|
-
2. **Intersection** — intersect all polygons using Sutherland–Hodgman
|
|
184
|
+
2. **Intersection** — intersect all polygons using Sutherland–Hodgman (supports concave shapes and disconnected components)
|
|
139
185
|
3. **Venue search** — query Overpass API within the intersection's bounding box
|
|
140
186
|
4. **Route matrix** — compute travel times from every participant to every candidate venue
|
|
141
|
-
5. **
|
|
142
|
-
6. **
|
|
187
|
+
5. **Filtering** — remove venues where any participant exceeds the time budget or is unreachable
|
|
188
|
+
6. **Scoring** — apply the fairness strategy to produce a single score per venue
|
|
189
|
+
7. **Ranking** — sort by score ascending and return the top `limit` suggestions
|
|
143
190
|
|
|
144
191
|
If the isochrones do not overlap, `findRendezvous` returns an empty array. If no venues are found, it falls back to the geometric centroid of the intersection.
|
|
145
192
|
|
|
@@ -172,6 +219,23 @@ class MyEngine implements RoutingEngine {
|
|
|
172
219
|
|
|
173
220
|
See [llms.txt](./llms.txt) for a concise API summary, or [llms-full.txt](./llms-full.txt) for the complete reference with examples.
|
|
174
221
|
|
|
222
|
+
## Troubleshooting
|
|
223
|
+
|
|
224
|
+
**`findRendezvous` returns an empty array**
|
|
225
|
+
The participants' isochrones don't overlap — they are too far apart for the given `maxTimeMinutes`. Try increasing the time budget or switching to a faster transport mode.
|
|
226
|
+
|
|
227
|
+
**No venues found (fallback to centroid)**
|
|
228
|
+
The Overpass API found no matching venues within the intersection zone. This can happen in rural areas. The library returns a synthetic "Meeting point" at the area-weighted centroid as a fallback. Try broader `venueTypes` or a larger `maxTimeMinutes`.
|
|
229
|
+
|
|
230
|
+
**`RangeError: findRendezvous requires at least 2 participants`**
|
|
231
|
+
You must pass at least 2 participants. Single-origin use cases don't need a meeting-point library — query the routing engine directly.
|
|
232
|
+
|
|
233
|
+
**Engine HTTP errors (e.g., `Valhalla isochrone error: 400`)**
|
|
234
|
+
Check that your engine base URL is correct and the service is running. For ORS, verify your API key is valid. For Valhalla/OSRM, ensure the server has routing tiles loaded for the region you're querying.
|
|
235
|
+
|
|
236
|
+
**OSRM: `Error: OSRM does not support isochrone computation`**
|
|
237
|
+
OSRM cannot generate isochrones. Use Valhalla, OpenRouteService, or GraphHopper instead. OSRM is supported only for route matrix computation.
|
|
238
|
+
|
|
175
239
|
## Licence
|
|
176
240
|
|
|
177
241
|
[MIT](https://github.com/TheCryptoDonkey/rendezvous-kit/blob/main/LICENSE)
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import type { RoutingEngine, Isochrone, RouteMatrix, TransportMode, LatLon } from '../types.js';
|
|
1
|
+
import type { RoutingEngine, Isochrone, RouteMatrix, RouteGeometry, TransportMode, LatLon } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* GraphHopper routing engine adapter.
|
|
4
|
+
*
|
|
5
|
+
* Works with self-hosted or cloud GraphHopper instances.
|
|
6
|
+
* API key is optional for self-hosted deployments.
|
|
7
|
+
* Note: GraphHopper does not natively support `public_transit` — falls back to driving.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const engine = new GraphHopperEngine({ baseUrl: 'http://localhost:8989' })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
2
14
|
export declare class GraphHopperEngine implements RoutingEngine {
|
|
3
15
|
readonly name = "GraphHopper";
|
|
4
16
|
private readonly baseUrl;
|
|
@@ -10,5 +22,6 @@ export declare class GraphHopperEngine implements RoutingEngine {
|
|
|
10
22
|
private params;
|
|
11
23
|
computeIsochrone(origin: LatLon, mode: TransportMode, timeMinutes: number): Promise<Isochrone>;
|
|
12
24
|
computeRouteMatrix(origins: LatLon[], destinations: LatLon[], mode: TransportMode): Promise<RouteMatrix>;
|
|
25
|
+
computeRoute(_origin: LatLon, _destination: LatLon, _mode: TransportMode): Promise<RouteGeometry>;
|
|
13
26
|
}
|
|
14
27
|
//# sourceMappingURL=graphhopper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphhopper.d.ts","sourceRoot":"","sources":["../../src/engines/graphhopper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"graphhopper.d.ts","sourceRoot":"","sources":["../../src/engines/graphhopper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EACpD,aAAa,EAAE,MAAM,EACtB,MAAM,aAAa,CAAA;AASpB;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,iBAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;gBAEpB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAKxD,OAAO,CAAC,MAAM;IAMR,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,SAAS,CAAC;IAmBf,kBAAkB,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC;IAwCjB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CAGxG"}
|
|
@@ -4,6 +4,18 @@ const PROFILE = {
|
|
|
4
4
|
walk: 'foot',
|
|
5
5
|
public_transit: 'car',
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* GraphHopper routing engine adapter.
|
|
9
|
+
*
|
|
10
|
+
* Works with self-hosted or cloud GraphHopper instances.
|
|
11
|
+
* API key is optional for self-hosted deployments.
|
|
12
|
+
* Note: GraphHopper does not natively support `public_transit` — falls back to driving.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const engine = new GraphHopperEngine({ baseUrl: 'http://localhost:8989' })
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
7
19
|
export class GraphHopperEngine {
|
|
8
20
|
name = 'GraphHopper';
|
|
9
21
|
baseUrl;
|
|
@@ -68,5 +80,8 @@ export class GraphHopperEngine {
|
|
|
68
80
|
}
|
|
69
81
|
return { origins, destinations, entries };
|
|
70
82
|
}
|
|
83
|
+
async computeRoute(_origin, _destination, _mode) {
|
|
84
|
+
throw new Error('computeRoute is not yet implemented for GraphHopper');
|
|
85
|
+
}
|
|
71
86
|
}
|
|
72
87
|
//# sourceMappingURL=graphhopper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphhopper.js","sourceRoot":"","sources":["../../src/engines/graphhopper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graphhopper.js","sourceRoot":"","sources":["../../src/engines/graphhopper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
|
-
import type { RoutingEngine, Isochrone, RouteMatrix, LatLon, TransportMode } from '../types.js';
|
|
1
|
+
import type { RoutingEngine, Isochrone, RouteMatrix, RouteGeometry, LatLon, TransportMode } from '../types.js';
|
|
2
|
+
/** Constructor options for the OpenRouteService engine adapter. */
|
|
2
3
|
export interface OpenRouteServiceOptions {
|
|
4
|
+
/** ORS API key (required — obtain from https://openrouteservice.org/dev). */
|
|
3
5
|
apiKey: string;
|
|
6
|
+
/** Base URL override. Defaults to the public ORS API (`https://api.openrouteservice.org`). */
|
|
4
7
|
baseUrl?: string;
|
|
5
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* OpenRouteService routing engine adapter.
|
|
11
|
+
*
|
|
12
|
+
* Requires an API key from https://openrouteservice.org/dev.
|
|
13
|
+
* Supports isochrone computation and route matrices.
|
|
14
|
+
* Note: ORS does not support `public_transit` mode — falls back to driving.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const engine = new OpenRouteServiceEngine({ apiKey: 'your-key' })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
6
21
|
export declare class OpenRouteServiceEngine implements RoutingEngine {
|
|
7
22
|
readonly name = "OpenRouteService";
|
|
8
23
|
private readonly apiKey;
|
|
@@ -10,5 +25,6 @@ export declare class OpenRouteServiceEngine implements RoutingEngine {
|
|
|
10
25
|
constructor(options: OpenRouteServiceOptions);
|
|
11
26
|
computeIsochrone(origin: LatLon, mode: TransportMode, timeMinutes: number): Promise<Isochrone>;
|
|
12
27
|
computeRouteMatrix(origins: LatLon[], destinations: LatLon[], mode: TransportMode): Promise<RouteMatrix>;
|
|
28
|
+
computeRoute(_origin: LatLon, _destination: LatLon, _mode: TransportMode): Promise<RouteGeometry>;
|
|
13
29
|
}
|
|
14
30
|
//# sourceMappingURL=openrouteservice.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouteservice.d.ts","sourceRoot":"","sources":["../../src/engines/openrouteservice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"openrouteservice.d.ts","sourceRoot":"","sources":["../../src/engines/openrouteservice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAW9G,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,QAAQ,CAAC,IAAI,sBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,EAAE,uBAAuB;IAKtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAsC9F,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IA8CxG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CAGxG"}
|
|
@@ -5,6 +5,18 @@ const MODE_MAP = {
|
|
|
5
5
|
walk: 'foot-walking',
|
|
6
6
|
public_transit: 'driving-car', // ORS doesn't support public transit; fallback to driving
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* OpenRouteService routing engine adapter.
|
|
10
|
+
*
|
|
11
|
+
* Requires an API key from https://openrouteservice.org/dev.
|
|
12
|
+
* Supports isochrone computation and route matrices.
|
|
13
|
+
* Note: ORS does not support `public_transit` mode — falls back to driving.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const engine = new OpenRouteServiceEngine({ apiKey: 'your-key' })
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
8
20
|
export class OpenRouteServiceEngine {
|
|
9
21
|
name = 'OpenRouteService';
|
|
10
22
|
apiKey;
|
|
@@ -80,5 +92,8 @@ export class OpenRouteServiceEngine {
|
|
|
80
92
|
}
|
|
81
93
|
return { origins, destinations, entries };
|
|
82
94
|
}
|
|
95
|
+
async computeRoute(_origin, _destination, _mode) {
|
|
96
|
+
throw new Error('computeRoute is not yet implemented for OpenRouteService');
|
|
97
|
+
}
|
|
83
98
|
}
|
|
84
99
|
//# sourceMappingURL=openrouteservice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouteservice.js","sourceRoot":"","sources":["../../src/engines/openrouteservice.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,kCAAkC,CAAA;AAEnD,MAAM,QAAQ,GAAkC;IAC9C,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE,aAAa,EAAE,0DAA0D;CAC1F,CAAA;
|
|
1
|
+
{"version":3,"file":"openrouteservice.js","sourceRoot":"","sources":["../../src/engines/openrouteservice.ts"],"names":[],"mappings":"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"}
|
package/dist/engines/osrm.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
import type { RoutingEngine, Isochrone, RouteMatrix, TransportMode, LatLon } from '../types.js';
|
|
1
|
+
import type { RoutingEngine, Isochrone, RouteMatrix, RouteGeometry, TransportMode, LatLon } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* OSRM routing engine adapter (route matrix only).
|
|
4
|
+
*
|
|
5
|
+
* OSRM does not support isochrone computation — calling `computeIsochrone`
|
|
6
|
+
* throws an error. Use this engine only when you need a fast route matrix
|
|
7
|
+
* and are supplying your own intersection polygon.
|
|
8
|
+
*
|
|
9
|
+
* Requires a self-hosted OSRM instance — no API key needed.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const engine = new OsrmEngine({ baseUrl: 'http://localhost:5000' })
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
2
16
|
export declare class OsrmEngine implements RoutingEngine {
|
|
3
17
|
readonly name = "OSRM";
|
|
4
18
|
private readonly baseUrl;
|
|
@@ -7,5 +21,6 @@ export declare class OsrmEngine implements RoutingEngine {
|
|
|
7
21
|
});
|
|
8
22
|
computeIsochrone(_origin: LatLon, _mode: TransportMode, _timeMinutes: number): Promise<Isochrone>;
|
|
9
23
|
computeRouteMatrix(origins: LatLon[], destinations: LatLon[], mode: TransportMode): Promise<RouteMatrix>;
|
|
24
|
+
computeRoute(_origin: LatLon, _destination: LatLon, _mode: TransportMode): Promise<RouteGeometry>;
|
|
10
25
|
}
|
|
11
26
|
//# sourceMappingURL=osrm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osrm.d.ts","sourceRoot":"","sources":["../../src/engines/osrm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"osrm.d.ts","sourceRoot":"","sources":["../../src/engines/osrm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EACpD,aAAa,EAAE,MAAM,EACtB,MAAM,aAAa,CAAA;AASpB;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC9C,QAAQ,CAAC,IAAI,UAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAM3F,kBAAkB,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC;IA0CjB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CAGxG"}
|
package/dist/engines/osrm.js
CHANGED
|
@@ -4,6 +4,20 @@ const PROFILE = {
|
|
|
4
4
|
walk: 'foot',
|
|
5
5
|
public_transit: 'car', // OSRM does not support public transit; fallback to driving
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* OSRM routing engine adapter (route matrix only).
|
|
9
|
+
*
|
|
10
|
+
* OSRM does not support isochrone computation — calling `computeIsochrone`
|
|
11
|
+
* throws an error. Use this engine only when you need a fast route matrix
|
|
12
|
+
* and are supplying your own intersection polygon.
|
|
13
|
+
*
|
|
14
|
+
* Requires a self-hosted OSRM instance — no API key needed.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const engine = new OsrmEngine({ baseUrl: 'http://localhost:5000' })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
7
21
|
export class OsrmEngine {
|
|
8
22
|
name = 'OSRM';
|
|
9
23
|
baseUrl;
|
|
@@ -44,5 +58,8 @@ export class OsrmEngine {
|
|
|
44
58
|
}
|
|
45
59
|
return { origins, destinations, entries };
|
|
46
60
|
}
|
|
61
|
+
async computeRoute(_origin, _destination, _mode) {
|
|
62
|
+
throw new Error('computeRoute is not yet implemented for OSRM');
|
|
63
|
+
}
|
|
47
64
|
}
|
|
48
65
|
//# sourceMappingURL=osrm.js.map
|
package/dist/engines/osrm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osrm.js","sourceRoot":"","sources":["../../src/engines/osrm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"osrm.js","sourceRoot":"","sources":["../../src/engines/osrm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
|
-
import type { RoutingEngine, Isochrone, RouteMatrix, TransportMode, LatLon } from '../types.js';
|
|
1
|
+
import type { RoutingEngine, Isochrone, RouteMatrix, RouteGeometry, TransportMode, LatLon } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown by ValhallaEngine when the server returns a non-200 response.
|
|
4
|
+
* Includes the HTTP status code and response body for error handling
|
|
5
|
+
* (e.g. detecting 402 Payment Required for L402 flows).
|
|
6
|
+
*/
|
|
7
|
+
export declare class ValhallaError extends Error {
|
|
8
|
+
readonly status: number;
|
|
9
|
+
readonly body: string;
|
|
10
|
+
constructor(message: string, status: number, body: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Valhalla routing engine adapter.
|
|
14
|
+
*
|
|
15
|
+
* Requires a self-hosted Valhalla instance — no API key needed.
|
|
16
|
+
* Supports isochrone computation and route matrices.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const engine = new ValhallaEngine({ baseUrl: 'http://localhost:8002' })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
2
23
|
export declare class ValhallaEngine implements RoutingEngine {
|
|
3
24
|
readonly name = "Valhalla";
|
|
4
25
|
private readonly baseUrl;
|
|
26
|
+
private readonly extraHeaders;
|
|
5
27
|
constructor(config: {
|
|
6
28
|
baseUrl: string;
|
|
29
|
+
headers?: Record<string, string>;
|
|
7
30
|
});
|
|
8
31
|
computeIsochrone(origin: LatLon, mode: TransportMode, timeMinutes: number): Promise<Isochrone>;
|
|
9
32
|
computeRouteMatrix(origins: LatLon[], destinations: LatLon[], mode: TransportMode): Promise<RouteMatrix>;
|
|
33
|
+
computeRoute(origin: LatLon, destination: LatLon, mode: TransportMode): Promise<RouteGeometry>;
|
|
10
34
|
}
|
|
11
35
|
//# sourceMappingURL=valhalla.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valhalla.d.ts","sourceRoot":"","sources":["../../src/engines/valhalla.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"valhalla.d.ts","sourceRoot":"","sources":["../../src/engines/valhalla.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EACpD,aAAa,EAAE,MAAM,EACtB,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;CAK/B;AA6CD;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,cAAa;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;gBAEzC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAKnE,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,SAAS,CAAC;IAmCf,kBAAkB,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC;IAuCjB,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC;CAyD1B"}
|
package/dist/engines/valhalla.js
CHANGED
|
@@ -1,14 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown by ValhallaEngine when the server returns a non-200 response.
|
|
3
|
+
* Includes the HTTP status code and response body for error handling
|
|
4
|
+
* (e.g. detecting 402 Payment Required for L402 flows).
|
|
5
|
+
*/
|
|
6
|
+
export class ValhallaError extends Error {
|
|
7
|
+
status;
|
|
8
|
+
body;
|
|
9
|
+
constructor(message, status, body) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.status = status;
|
|
12
|
+
this.body = body;
|
|
13
|
+
this.name = 'ValhallaError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Decode a polyline encoded with precision 6 (Valhalla default) into [lon, lat] pairs. */
|
|
17
|
+
function decodePolyline6(encoded) {
|
|
18
|
+
const coordinates = [];
|
|
19
|
+
let index = 0;
|
|
20
|
+
let lat = 0;
|
|
21
|
+
let lon = 0;
|
|
22
|
+
const factor = 1e6;
|
|
23
|
+
while (index < encoded.length) {
|
|
24
|
+
let shift = 0;
|
|
25
|
+
let result = 0;
|
|
26
|
+
let byte;
|
|
27
|
+
do {
|
|
28
|
+
byte = encoded.charCodeAt(index++) - 63;
|
|
29
|
+
result |= (byte & 0x1f) << shift;
|
|
30
|
+
shift += 5;
|
|
31
|
+
} while (byte >= 0x20);
|
|
32
|
+
lat += (result & 1) ? ~(result >> 1) : (result >> 1);
|
|
33
|
+
shift = 0;
|
|
34
|
+
result = 0;
|
|
35
|
+
do {
|
|
36
|
+
byte = encoded.charCodeAt(index++) - 63;
|
|
37
|
+
result |= (byte & 0x1f) << shift;
|
|
38
|
+
shift += 5;
|
|
39
|
+
} while (byte >= 0x20);
|
|
40
|
+
lon += (result & 1) ? ~(result >> 1) : (result >> 1);
|
|
41
|
+
coordinates.push([lon / factor, lat / factor]);
|
|
42
|
+
}
|
|
43
|
+
return coordinates;
|
|
44
|
+
}
|
|
1
45
|
const COSTING = {
|
|
2
46
|
drive: 'auto',
|
|
3
47
|
cycle: 'bicycle',
|
|
4
48
|
walk: 'pedestrian',
|
|
5
49
|
public_transit: 'multimodal',
|
|
6
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Valhalla routing engine adapter.
|
|
53
|
+
*
|
|
54
|
+
* Requires a self-hosted Valhalla instance — no API key needed.
|
|
55
|
+
* Supports isochrone computation and route matrices.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const engine = new ValhallaEngine({ baseUrl: 'http://localhost:8002' })
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
7
62
|
export class ValhallaEngine {
|
|
8
63
|
name = 'Valhalla';
|
|
9
64
|
baseUrl;
|
|
65
|
+
extraHeaders;
|
|
10
66
|
constructor(config) {
|
|
11
67
|
this.baseUrl = config.baseUrl.replace(/\/$/, '');
|
|
68
|
+
this.extraHeaders = config.headers ?? {};
|
|
12
69
|
}
|
|
13
70
|
async computeIsochrone(origin, mode, timeMinutes) {
|
|
14
71
|
const body = {
|
|
@@ -19,12 +76,12 @@ export class ValhallaEngine {
|
|
|
19
76
|
};
|
|
20
77
|
const res = await fetch(`${this.baseUrl}/isochrone`, {
|
|
21
78
|
method: 'POST',
|
|
22
|
-
headers: { 'Content-Type': 'application/json' },
|
|
79
|
+
headers: { 'Content-Type': 'application/json', ...this.extraHeaders },
|
|
23
80
|
body: JSON.stringify(body),
|
|
24
81
|
});
|
|
25
82
|
if (!res.ok) {
|
|
26
83
|
const text = await res.text().catch(() => '');
|
|
27
|
-
throw new
|
|
84
|
+
throw new ValhallaError(`Valhalla isochrone error: ${res.status} ${res.statusText} — ${text}`, res.status, text);
|
|
28
85
|
}
|
|
29
86
|
const data = (await res.json());
|
|
30
87
|
if (!data.features?.length) {
|
|
@@ -45,12 +102,12 @@ export class ValhallaEngine {
|
|
|
45
102
|
};
|
|
46
103
|
const res = await fetch(`${this.baseUrl}/sources_to_targets`, {
|
|
47
104
|
method: 'POST',
|
|
48
|
-
headers: { 'Content-Type': 'application/json' },
|
|
105
|
+
headers: { 'Content-Type': 'application/json', ...this.extraHeaders },
|
|
49
106
|
body: JSON.stringify(body),
|
|
50
107
|
});
|
|
51
108
|
if (!res.ok) {
|
|
52
109
|
const text = await res.text().catch(() => '');
|
|
53
|
-
throw new
|
|
110
|
+
throw new ValhallaError(`Valhalla matrix error: ${res.status} ${res.statusText} — ${text}`, res.status, text);
|
|
54
111
|
}
|
|
55
112
|
const data = (await res.json());
|
|
56
113
|
const entries = [];
|
|
@@ -68,5 +125,44 @@ export class ValhallaEngine {
|
|
|
68
125
|
}
|
|
69
126
|
return { origins, destinations, entries };
|
|
70
127
|
}
|
|
128
|
+
async computeRoute(origin, destination, mode) {
|
|
129
|
+
const body = {
|
|
130
|
+
locations: [
|
|
131
|
+
{ lat: origin.lat, lon: origin.lon },
|
|
132
|
+
{ lat: destination.lat, lon: destination.lon },
|
|
133
|
+
],
|
|
134
|
+
costing: COSTING[mode],
|
|
135
|
+
directions_type: 'maneuvers',
|
|
136
|
+
};
|
|
137
|
+
const res = await fetch(`${this.baseUrl}/route`, {
|
|
138
|
+
method: 'POST',
|
|
139
|
+
headers: { 'Content-Type': 'application/json', ...this.extraHeaders },
|
|
140
|
+
body: JSON.stringify(body),
|
|
141
|
+
});
|
|
142
|
+
if (!res.ok) {
|
|
143
|
+
const text = await res.text().catch(() => '');
|
|
144
|
+
throw new ValhallaError(`Valhalla route error: ${res.status} ${res.statusText} — ${text}`, res.status, text);
|
|
145
|
+
}
|
|
146
|
+
const data = (await res.json());
|
|
147
|
+
const tripLeg = data.trip.legs[0];
|
|
148
|
+
const coordinates = decodePolyline6(tripLeg.shape);
|
|
149
|
+
const legs = tripLeg.maneuvers.map((m) => ({
|
|
150
|
+
instruction: m.instruction,
|
|
151
|
+
distanceKm: m.length,
|
|
152
|
+
durationMinutes: m.time / 60,
|
|
153
|
+
}));
|
|
154
|
+
return {
|
|
155
|
+
origin,
|
|
156
|
+
destination,
|
|
157
|
+
mode,
|
|
158
|
+
durationMinutes: data.trip.summary.time / 60,
|
|
159
|
+
distanceKm: data.trip.summary.length,
|
|
160
|
+
geometry: {
|
|
161
|
+
type: 'LineString',
|
|
162
|
+
coordinates,
|
|
163
|
+
},
|
|
164
|
+
legs,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
71
167
|
}
|
|
72
168
|
//# sourceMappingURL=valhalla.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valhalla.js","sourceRoot":"","sources":["../../src/engines/valhalla.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,GAAkC;IAC7C,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,YAAY;CAC7B,CAAA;AAED,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,UAAU,CAAA;IACT,OAAO,CAAQ;
|
|
1
|
+
{"version":3,"file":"valhalla.js","sourceRoot":"","sources":["../../src/engines/valhalla.ts"],"names":[],"mappings":"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"}
|
package/dist/geo.d.ts
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import type { GeoJSONPolygon } from './types.js';
|
|
2
|
+
/** Axis-aligned bounding box in geographic coordinates. */
|
|
2
3
|
export interface BBox {
|
|
3
4
|
minLon: number;
|
|
4
5
|
minLat: number;
|
|
5
6
|
maxLon: number;
|
|
6
7
|
maxLat: number;
|
|
7
8
|
}
|
|
9
|
+
/** A geographic coordinate (latitude/longitude). */
|
|
8
10
|
export interface Coordinate {
|
|
9
11
|
lat: number;
|
|
10
12
|
lon: number;
|
|
11
13
|
}
|
|
14
|
+
/** Compute the axis-aligned bounding box of a GeoJSON Polygon. Returns zeroed BBox if the polygon has no coordinates. */
|
|
12
15
|
export declare function boundingBox(polygon: GeoJSONPolygon): BBox;
|
|
16
|
+
/** Compute the geometric centroid of a GeoJSON Polygon. Uses the arithmetic mean of the outer ring vertices (excluding closing vertex). */
|
|
13
17
|
export declare function centroid(polygon: GeoJSONPolygon): Coordinate;
|
|
18
|
+
/** Approximate area of a GeoJSON Polygon in square metres. Uses the shoelace formula with a local flat-Earth projection centred on the polygon. */
|
|
14
19
|
export declare function polygonArea(polygon: GeoJSONPolygon): number;
|
|
20
|
+
/**
|
|
21
|
+
* Intersect N GeoJSON Polygons, preserving all disconnected components.
|
|
22
|
+
*
|
|
23
|
+
* Uses Sutherland–Hodgman clipping for convex polygons and ear-clip triangulation
|
|
24
|
+
* for concave shapes. Returns an empty array if any pairwise intersection is empty.
|
|
25
|
+
*/
|
|
15
26
|
export declare function intersectPolygonsAll(polygons: GeoJSONPolygon[]): GeoJSONPolygon[];
|
|
27
|
+
/** Intersect N GeoJSON Polygons, returning the single largest component. Returns `null` if the polygons do not overlap. */
|
|
16
28
|
export declare function intersectPolygons(polygons: GeoJSONPolygon[]): GeoJSONPolygon | null;
|
|
17
29
|
/**
|
|
18
30
|
* Compute the destination point given a start [lon, lat], distance in metres,
|
package/dist/geo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geo.d.ts","sourceRoot":"","sources":["../src/geo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAiBzD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAa5D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmB3D;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,EAAE,CAsBlB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,GAAG,IAAI,CAavB;
|
|
1
|
+
{"version":3,"file":"geo.d.ts","sourceRoot":"","sources":["../src/geo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,yHAAyH;AACzH,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAiBzD;AAED,2IAA2I;AAC3I,wBAAgB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAa5D;AAED,mJAAmJ;AACnJ,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmB3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,EAAE,CAsBlB;AAED,2HAA2H;AAC3H,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,GAAG,IAAI,CAavB;AA0QD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,CAAC,MAAM,EAAE,MAAM,CAAC,CA+BlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,SAAK,GACZ,cAAc,CAoBhB"}
|
package/dist/geo.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Compute the axis-aligned bounding box of a GeoJSON Polygon. Returns zeroed BBox if the polygon has no coordinates. */
|
|
1
2
|
export function boundingBox(polygon) {
|
|
2
3
|
const ring = polygon.coordinates[0];
|
|
3
4
|
if (!ring || ring.length === 0) {
|
|
@@ -17,6 +18,7 @@ export function boundingBox(polygon) {
|
|
|
17
18
|
}
|
|
18
19
|
return { minLon, minLat, maxLon, maxLat };
|
|
19
20
|
}
|
|
21
|
+
/** Compute the geometric centroid of a GeoJSON Polygon. Uses the arithmetic mean of the outer ring vertices (excluding closing vertex). */
|
|
20
22
|
export function centroid(polygon) {
|
|
21
23
|
const ring = polygon.coordinates[0];
|
|
22
24
|
if (!ring || ring.length < 2)
|
|
@@ -29,6 +31,7 @@ export function centroid(polygon) {
|
|
|
29
31
|
}
|
|
30
32
|
return { lon: sumLon / n, lat: sumLat / n };
|
|
31
33
|
}
|
|
34
|
+
/** Approximate area of a GeoJSON Polygon in square metres. Uses the shoelace formula with a local flat-Earth projection centred on the polygon. */
|
|
32
35
|
export function polygonArea(polygon) {
|
|
33
36
|
const ring = polygon.coordinates[0];
|
|
34
37
|
if (!ring || ring.length < 4)
|
|
@@ -47,6 +50,12 @@ export function polygonArea(polygon) {
|
|
|
47
50
|
}
|
|
48
51
|
return Math.abs(area) / 2;
|
|
49
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Intersect N GeoJSON Polygons, preserving all disconnected components.
|
|
55
|
+
*
|
|
56
|
+
* Uses Sutherland–Hodgman clipping for convex polygons and ear-clip triangulation
|
|
57
|
+
* for concave shapes. Returns an empty array if any pairwise intersection is empty.
|
|
58
|
+
*/
|
|
50
59
|
export function intersectPolygonsAll(polygons) {
|
|
51
60
|
if (polygons.length === 0)
|
|
52
61
|
return [];
|
|
@@ -71,6 +80,7 @@ export function intersectPolygonsAll(polygons) {
|
|
|
71
80
|
}
|
|
72
81
|
return components.filter(ring => ring.length >= 3).map(ringToPolygon);
|
|
73
82
|
}
|
|
83
|
+
/** Intersect N GeoJSON Polygons, returning the single largest component. Returns `null` if the polygons do not overlap. */
|
|
74
84
|
export function intersectPolygons(polygons) {
|
|
75
85
|
const all = intersectPolygonsAll(polygons);
|
|
76
86
|
if (all.length === 0)
|
|
@@ -147,7 +157,23 @@ function sutherlandHodgman(subject, clip) {
|
|
|
147
157
|
}
|
|
148
158
|
}
|
|
149
159
|
}
|
|
150
|
-
return output;
|
|
160
|
+
return deduplicateConsecutive(output);
|
|
161
|
+
}
|
|
162
|
+
/** Remove consecutive duplicate points (including wrap-around: last vs first). */
|
|
163
|
+
function deduplicateConsecutive(ring) {
|
|
164
|
+
if (ring.length <= 1)
|
|
165
|
+
return ring;
|
|
166
|
+
const EPS = 1e-9;
|
|
167
|
+
const eq = (a, b) => Math.abs(a[0] - b[0]) < EPS && Math.abs(a[1] - b[1]) < EPS;
|
|
168
|
+
const out = [ring[0]];
|
|
169
|
+
for (let i = 1; i < ring.length; i++) {
|
|
170
|
+
if (!eq(ring[i], out[out.length - 1]))
|
|
171
|
+
out.push(ring[i]);
|
|
172
|
+
}
|
|
173
|
+
// Also check wrap-around: if last == first, drop last
|
|
174
|
+
if (out.length > 1 && eq(out[out.length - 1], out[0]))
|
|
175
|
+
out.pop();
|
|
176
|
+
return out;
|
|
151
177
|
}
|
|
152
178
|
function isLeft(a, b, p) {
|
|
153
179
|
return (b[0] - a[0]) * (p[1] - a[1]) - (b[1] - a[1]) * (p[0] - a[0]) >= 0;
|
package/dist/geo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geo.js","sourceRoot":"","sources":["../src/geo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geo.js","sourceRoot":"","sources":["../src/geo.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type { LatLon, GeoJSONPolygon, TransportMode, FairnessStrategy, VenueType, RoutingEngine, Isochrone, MatrixEntry, RouteMatrix, Venue, RendezvousOptions, RendezvousSuggestion, } from './types.js';
|
|
1
|
+
export type { LatLon, GeoJSONPolygon, GeoJSONLineString, TransportMode, FairnessStrategy, VenueType, RoutingEngine, Isochrone, MatrixEntry, RouteMatrix, RouteLeg, RouteGeometry, Venue, RendezvousOptions, RendezvousSuggestion, } from './types.js';
|
|
2
2
|
export { intersectPolygons, intersectPolygonsAll, boundingBox, centroid, polygonArea, circleToPolygon, getDestinationPoint, } from './geo.js';
|
|
3
3
|
export type { BBox, Coordinate } from './geo.js';
|
|
4
4
|
export { OpenRouteServiceEngine } from './engines/openrouteservice.js';
|
|
5
|
-
export { ValhallaEngine } from './engines/valhalla.js';
|
|
5
|
+
export { ValhallaEngine, ValhallaError } from './engines/valhalla.js';
|
|
6
6
|
export { GraphHopperEngine } from './engines/graphhopper.js';
|
|
7
7
|
export { OsrmEngine } from './engines/osrm.js';
|
|
8
8
|
export { searchVenues } from './venues.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export { intersectPolygons, intersectPolygonsAll, boundingBox, centroid, polygonArea, circleToPolygon, getDestinationPoint, } from './geo.js';
|
|
3
3
|
// Engines
|
|
4
4
|
export { OpenRouteServiceEngine } from './engines/openrouteservice.js';
|
|
5
|
-
export { ValhallaEngine } from './engines/valhalla.js';
|
|
5
|
+
export { ValhallaEngine, ValhallaError } from './engines/valhalla.js';
|
|
6
6
|
export { GraphHopperEngine } from './engines/graphhopper.js';
|
|
7
7
|
export { OsrmEngine } from './engines/osrm.js';
|
|
8
8
|
// Venues
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,WAAW;AACX,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AAGjB,UAAU;AACV,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export interface GeoJSONPolygon {
|
|
|
13
13
|
type: 'Polygon';
|
|
14
14
|
coordinates: number[][][];
|
|
15
15
|
}
|
|
16
|
+
/** GeoJSON LineString geometry. */
|
|
17
|
+
export interface GeoJSONLineString {
|
|
18
|
+
type: 'LineString';
|
|
19
|
+
coordinates: number[][];
|
|
20
|
+
}
|
|
16
21
|
/** Result of an isochrone computation. */
|
|
17
22
|
export interface Isochrone {
|
|
18
23
|
origin: LatLon;
|
|
@@ -43,6 +48,22 @@ export interface Venue {
|
|
|
43
48
|
venueType: VenueType;
|
|
44
49
|
osmId?: string;
|
|
45
50
|
}
|
|
51
|
+
/** A single manoeuvre in a route. */
|
|
52
|
+
export interface RouteLeg {
|
|
53
|
+
instruction: string;
|
|
54
|
+
distanceKm: number;
|
|
55
|
+
durationMinutes: number;
|
|
56
|
+
}
|
|
57
|
+
/** Result of a single route computation. */
|
|
58
|
+
export interface RouteGeometry {
|
|
59
|
+
origin: LatLon;
|
|
60
|
+
destination: LatLon;
|
|
61
|
+
mode: TransportMode;
|
|
62
|
+
durationMinutes: number;
|
|
63
|
+
distanceKm: number;
|
|
64
|
+
geometry: GeoJSONLineString;
|
|
65
|
+
legs?: RouteLeg[];
|
|
66
|
+
}
|
|
46
67
|
/** Options for rendezvous calculation. */
|
|
47
68
|
export interface RendezvousOptions {
|
|
48
69
|
participants: LatLon[];
|
|
@@ -69,5 +90,7 @@ export interface RoutingEngine {
|
|
|
69
90
|
computeIsochrone(origin: LatLon, mode: TransportMode, timeMinutes: number): Promise<Isochrone>;
|
|
70
91
|
/** Compute a travel time/distance matrix between origins and destinations. */
|
|
71
92
|
computeRouteMatrix(origins: LatLon[], destinations: LatLon[], mode: TransportMode): Promise<RouteMatrix>;
|
|
93
|
+
/** Compute a route between two points, returning the polyline and optional turn-by-turn legs. */
|
|
94
|
+
computeRoute(origin: LatLon, destination: LatLon, mode: TransportMode): Promise<RouteGeometry>;
|
|
72
95
|
}
|
|
73
96
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEzE,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAA;AAEvE,mDAAmD;AACnD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;CAC1B;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,kBAAkB,GAAG,MAAM,CAAA;AAE3I,gDAAgD;AAChD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,IAAI,EAAE,aAAa,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,mDAAmD;IACnD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE9F,8EAA8E;IAC9E,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -23,10 +23,13 @@ The main pipeline function.
|
|
|
23
23
|
### rendezvous-kit/geo
|
|
24
24
|
Pure-TypeScript polygon geometry.
|
|
25
25
|
|
|
26
|
-
- intersectPolygons(polygons: GeoJSONPolygon[]) → GeoJSONPolygon | null
|
|
26
|
+
- intersectPolygons(polygons: GeoJSONPolygon[]) → GeoJSONPolygon | null — largest intersection component
|
|
27
|
+
- intersectPolygonsAll(polygons: GeoJSONPolygon[]) → GeoJSONPolygon[] — all intersection components
|
|
27
28
|
- boundingBox(polygon: GeoJSONPolygon) → BBox
|
|
28
29
|
- centroid(polygon: GeoJSONPolygon) → { lat, lon }
|
|
29
30
|
- polygonArea(polygon: GeoJSONPolygon) → number (square metres)
|
|
31
|
+
- circleToPolygon(centre: [lon, lat], radiusMetres, segments?) → GeoJSONPolygon
|
|
32
|
+
- getDestinationPoint(start: [lon, lat], distanceMetres, bearingDeg) → [lon, lat]
|
|
30
33
|
|
|
31
34
|
### rendezvous-kit/engines/valhalla
|
|
32
35
|
- new ValhallaEngine({ baseUrl: string })
|
package/package.json
CHANGED