@drawtonomy/sdk 0.7.0 → 0.9.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/dist/exporter/index.d.ts +5 -1
- package/dist/exporter/index.d.ts.map +1 -1
- package/dist/exporter/index.js +4 -0
- package/dist/exporter/index.js.map +1 -1
- package/dist/exporter/lanelet2.d.ts.map +1 -1
- package/dist/exporter/lanelet2.js +434 -2
- package/dist/exporter/lanelet2.js.map +1 -1
- package/dist/exporter/odrGeometry.d.ts +64 -0
- package/dist/exporter/odrGeometry.d.ts.map +1 -0
- package/dist/exporter/odrGeometry.js +324 -0
- package/dist/exporter/odrGeometry.js.map +1 -0
- package/dist/exporter/odrToShapes.d.ts +45 -0
- package/dist/exporter/odrToShapes.d.ts.map +1 -0
- package/dist/exporter/odrToShapes.js +1370 -0
- package/dist/exporter/odrToShapes.js.map +1 -0
- package/dist/exporter/opendrive.d.ts.map +1 -1
- package/dist/exporter/opendrive.js +547 -69
- package/dist/exporter/opendrive.js.map +1 -1
- package/dist/exporter/opendriveParser.d.ts +186 -0
- package/dist/exporter/opendriveParser.d.ts.map +1 -0
- package/dist/exporter/opendriveParser.js +426 -0
- package/dist/exporter/opendriveParser.js.map +1 -0
- package/dist/exporter/osmToShapes.d.ts +52 -3
- package/dist/exporter/osmToShapes.d.ts.map +1 -1
- package/dist/exporter/osmToShapes.js +208 -5
- package/dist/exporter/osmToShapes.js.map +1 -1
- package/dist/exporter/projection.d.ts +36 -0
- package/dist/exporter/projection.d.ts.map +1 -0
- package/dist/exporter/projection.js +64 -0
- package/dist/exporter/projection.js.map +1 -0
- package/dist/types.d.ts +38 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Convert parsed Lanelet2 OSM data into the shape primitives that the
|
|
2
|
-
// drawtonomy editor consumes (points, linestrings, lanes
|
|
2
|
+
// drawtonomy editor consumes (points, linestrings, lanes, traffic lights,
|
|
3
|
+
// crosswalks). right_of_way regulatory elements are restored as lane-level
|
|
4
|
+
// `yieldLaneIds` props rather than standalone shapes.
|
|
3
5
|
//
|
|
4
6
|
// The output is the intermediate `ImportedShapes` structure used by the
|
|
5
7
|
// editor's import flow — not a full DrawtonomySnapshot — because the editor
|
|
@@ -9,7 +11,7 @@
|
|
|
9
11
|
import { latLonToCanvas } from './osmParser';
|
|
10
12
|
/** Default allocator: monotonic counter per shape kind. */
|
|
11
13
|
export function createShapeIdAllocator() {
|
|
12
|
-
const counters = { point: 0, linestring: 0, lane: 0 };
|
|
14
|
+
const counters = { point: 0, linestring: 0, lane: 0, traffic_light: 0, crosswalk: 0 };
|
|
13
15
|
return {
|
|
14
16
|
next(kind) {
|
|
15
17
|
const id = `shape:${kind}_${counters[kind]}`;
|
|
@@ -178,6 +180,8 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
178
180
|
points: [],
|
|
179
181
|
linestrings: [],
|
|
180
182
|
lanes: [],
|
|
183
|
+
trafficLights: [],
|
|
184
|
+
crosswalks: [],
|
|
181
185
|
bounds: emptyBounds(),
|
|
182
186
|
};
|
|
183
187
|
// Compute the projection center.
|
|
@@ -202,14 +206,48 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
202
206
|
const osmWayToLinestringId = new Map();
|
|
203
207
|
const pointIdToPoint = new Map();
|
|
204
208
|
const linestringIdToLinestring = new Map();
|
|
205
|
-
// Only `type=lanelet` relations become lanes.
|
|
206
|
-
//
|
|
207
|
-
//
|
|
209
|
+
// Only `type=lanelet` relations become lanes. Traffic light regulatory
|
|
210
|
+
// elements are promoted to traffic light shapes below; other relation types
|
|
211
|
+
// (multipolygon, other regulatory elements, etc.) are preserved verbatim
|
|
212
|
+
// via the OSM sidecar.
|
|
208
213
|
let laneletRelations = osmData.relations.filter(r => r.tags.type === 'lanelet');
|
|
209
214
|
if (options.selectedLaneIds) {
|
|
210
215
|
const selected = new Set(options.selectedLaneIds);
|
|
211
216
|
laneletRelations = laneletRelations.filter(r => selected.has(r.id));
|
|
212
217
|
}
|
|
218
|
+
// Traffic light / crosswalk / right_of_way regulatory elements to promote.
|
|
219
|
+
// When a lanelet selection is active, only the elements referenced by the
|
|
220
|
+
// selected lanelets come along.
|
|
221
|
+
let trafficLightRelations = osmData.relations.filter(r => r.tags.type === 'regulatory_element' && r.tags.subtype === 'traffic_light');
|
|
222
|
+
let crosswalkRelations = osmData.relations.filter(r => r.tags.type === 'regulatory_element' && r.tags.subtype === 'crosswalk');
|
|
223
|
+
let rightOfWayRelations = osmData.relations.filter(r => r.tags.type === 'regulatory_element' && r.tags.subtype === 'right_of_way');
|
|
224
|
+
if (options.selectedLaneIds) {
|
|
225
|
+
const referencedReIds = new Set();
|
|
226
|
+
for (const relation of laneletRelations) {
|
|
227
|
+
for (const member of relation.members) {
|
|
228
|
+
if (member.type === 'relation' && member.role === 'regulatory_element') {
|
|
229
|
+
referencedReIds.add(member.ref);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
trafficLightRelations = trafficLightRelations.filter(r => referencedReIds.has(r.id));
|
|
234
|
+
crosswalkRelations = crosswalkRelations.filter(r => referencedReIds.has(r.id));
|
|
235
|
+
rightOfWayRelations = rightOfWayRelations.filter(r => referencedReIds.has(r.id));
|
|
236
|
+
}
|
|
237
|
+
// A `subtype=crosswalk` lanelet that is the "refers" of a promoted crosswalk
|
|
238
|
+
// regulatory element is consumed into the crosswalk shape — it must not also
|
|
239
|
+
// materialize as a lane (no duplication).
|
|
240
|
+
const crosswalkLaneletIds = new Set();
|
|
241
|
+
for (const re of crosswalkRelations) {
|
|
242
|
+
for (const member of re.members) {
|
|
243
|
+
if (member.type === 'relation' && member.role === 'refers') {
|
|
244
|
+
const lanelet = osmData.relations.find(r => r.id === member.ref);
|
|
245
|
+
if (lanelet && lanelet.tags.type === 'lanelet')
|
|
246
|
+
crosswalkLaneletIds.add(member.ref);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
laneletRelations = laneletRelations.filter(r => !crosswalkLaneletIds.has(r.id));
|
|
213
251
|
// Collect ways and nodes referenced by the chosen lanelets.
|
|
214
252
|
const usedWayIds = new Set();
|
|
215
253
|
const usedNodeIds = new Set();
|
|
@@ -219,6 +257,18 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
219
257
|
usedWayIds.add(member.ref);
|
|
220
258
|
}
|
|
221
259
|
}
|
|
260
|
+
// Stop line ("ref_line") ways become linestrings too even though they are
|
|
261
|
+
// not lane boundaries; "refers" ways are consumed into the traffic light
|
|
262
|
+
// shape itself and stay sidecar-only.
|
|
263
|
+
const refLineWayIds = new Set();
|
|
264
|
+
for (const re of [...trafficLightRelations, ...crosswalkRelations]) {
|
|
265
|
+
for (const member of re.members) {
|
|
266
|
+
if (member.type === 'way' && member.role === 'ref_line' && osmData.ways.has(member.ref)) {
|
|
267
|
+
refLineWayIds.add(member.ref);
|
|
268
|
+
usedWayIds.add(member.ref);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
222
272
|
for (const wayId of usedWayIds) {
|
|
223
273
|
const way = osmData.ways.get(wayId);
|
|
224
274
|
if (!way)
|
|
@@ -271,8 +321,17 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
271
321
|
result.linestrings.push(data);
|
|
272
322
|
linestringIdToLinestring.set(linestringId, data);
|
|
273
323
|
}
|
|
324
|
+
// Stop line ways keep (or gain) the stop_line type so re-exports and the
|
|
325
|
+
// editor recognize them; third-party files may leave the tag off.
|
|
326
|
+
for (const wayId of refLineWayIds) {
|
|
327
|
+
const lsId = osmWayToLinestringId.get(wayId);
|
|
328
|
+
const ls = lsId ? linestringIdToLinestring.get(lsId) : undefined;
|
|
329
|
+
if (ls && ls.attributes.type !== 'stop_line')
|
|
330
|
+
ls.attributes.type = 'stop_line';
|
|
331
|
+
}
|
|
274
332
|
// Materialize lanes and collect info for connectivity detection.
|
|
275
333
|
const laneInfos = [];
|
|
334
|
+
const laneShapeIdsByRegElem = new Map();
|
|
276
335
|
for (const relation of laneletRelations) {
|
|
277
336
|
let leftWayId = null;
|
|
278
337
|
let rightWayId = null;
|
|
@@ -307,6 +366,13 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
307
366
|
.map(p => ({ x: p.x, y: p.y }));
|
|
308
367
|
const { invertLeft, invertRight } = alignBoundaries(getPointCoords(leftLinestring.pointIds), getPointCoords(rightLinestring.pointIds));
|
|
309
368
|
const laneId = idAllocator.next('lane');
|
|
369
|
+
for (const member of relation.members) {
|
|
370
|
+
if (member.type === 'relation' && member.role === 'regulatory_element') {
|
|
371
|
+
const list = laneShapeIdsByRegElem.get(member.ref) ?? [];
|
|
372
|
+
list.push(laneId);
|
|
373
|
+
laneShapeIdsByRegElem.set(member.ref, list);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
310
376
|
laneInfos.push({
|
|
311
377
|
osmId: relation.id,
|
|
312
378
|
laneId,
|
|
@@ -329,6 +395,10 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
329
395
|
invertRight,
|
|
330
396
|
osmId: relation.id,
|
|
331
397
|
attributes: {
|
|
398
|
+
// Unknown tags (e.g. odr_* source metadata) pass through verbatim so
|
|
399
|
+
// they survive a Lanelet2 round-trip; the known keys keep their
|
|
400
|
+
// defaults when absent.
|
|
401
|
+
...relation.tags,
|
|
332
402
|
type: 'lanelet',
|
|
333
403
|
subtype: relation.tags.subtype || 'road',
|
|
334
404
|
location: relation.tags.location || 'urban',
|
|
@@ -348,6 +418,139 @@ export function osmToShapes(osmData, options = {}) {
|
|
|
348
418
|
lane.prev = conn.prev;
|
|
349
419
|
}
|
|
350
420
|
}
|
|
421
|
+
// Materialize traffic lights from regulatory elements. The shape sits at
|
|
422
|
+
// the midpoint of the "refers" way and spans its width; the way's OSM id is
|
|
423
|
+
// kept in `refers_osm_id` so re-exports override the sidecar copy in place.
|
|
424
|
+
for (const re of trafficLightRelations) {
|
|
425
|
+
const refersMember = re.members.find(m => m.type === 'way' && m.role === 'refers');
|
|
426
|
+
const refersWay = refersMember ? osmData.ways.get(refersMember.ref) : undefined;
|
|
427
|
+
if (!refersWay || refersWay.nodeRefs.length === 0)
|
|
428
|
+
continue;
|
|
429
|
+
const coords = [];
|
|
430
|
+
for (const ref of refersWay.nodeRefs) {
|
|
431
|
+
const node = osmData.nodes.get(ref);
|
|
432
|
+
if (node)
|
|
433
|
+
coords.push(latLonToCanvas(node.lat, node.lon, centerLat, centerLon));
|
|
434
|
+
}
|
|
435
|
+
if (coords.length === 0)
|
|
436
|
+
continue;
|
|
437
|
+
const first = coords[0];
|
|
438
|
+
const last = coords[coords.length - 1];
|
|
439
|
+
const span = Math.hypot(last.x - first.x, last.y - first.y);
|
|
440
|
+
// The OSM encoding carries only the signal width; height keeps the
|
|
441
|
+
// editor's default 1:2 aspect. Degenerate ways fall back to 30 px.
|
|
442
|
+
const w = span > 1e-6 ? span : 30;
|
|
443
|
+
const refLineMember = re.members.find(m => m.type === 'way' && m.role === 'ref_line');
|
|
444
|
+
const stopLineId = refLineMember ? osmWayToLinestringId.get(refLineMember.ref) ?? null : null;
|
|
445
|
+
result.trafficLights.push({
|
|
446
|
+
id: idAllocator.next('traffic_light'),
|
|
447
|
+
x: (first.x + last.x) / 2,
|
|
448
|
+
y: (first.y + last.y) / 2,
|
|
449
|
+
w,
|
|
450
|
+
h: w * 2,
|
|
451
|
+
osmId: re.id,
|
|
452
|
+
affectedLaneIds: laneShapeIdsByRegElem.get(re.id) ?? [],
|
|
453
|
+
stopLineId,
|
|
454
|
+
attributes: { ...re.tags, refers_osm_id: refersWay.id },
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
// Materialize crosswalks from regulatory elements. The shape geometry is
|
|
458
|
+
// rebuilt from the "refers" crosswalk lanelet's left/right ways (axis along
|
|
459
|
+
// the walking direction, band width = boundary separation); the consumed
|
|
460
|
+
// lanelet / polygon / boundary way ids are kept in the attributes so
|
|
461
|
+
// re-exports override the sidecar copies in place.
|
|
462
|
+
const toCanvas = (nodeId) => {
|
|
463
|
+
const node = osmData.nodes.get(nodeId);
|
|
464
|
+
return node ? latLonToCanvas(node.lat, node.lon, centerLat, centerLon) : null;
|
|
465
|
+
};
|
|
466
|
+
for (const re of crosswalkRelations) {
|
|
467
|
+
const refersMember = re.members.find(m => m.type === 'relation' && m.role === 'refers');
|
|
468
|
+
const lanelet = refersMember
|
|
469
|
+
? osmData.relations.find(r => r.id === refersMember.ref && r.tags.type === 'lanelet')
|
|
470
|
+
: undefined;
|
|
471
|
+
if (!lanelet)
|
|
472
|
+
continue;
|
|
473
|
+
const leftWayId = lanelet.members.find(m => m.type === 'way' && m.role === 'left')?.ref;
|
|
474
|
+
const rightWayId = lanelet.members.find(m => m.type === 'way' && m.role === 'right')?.ref;
|
|
475
|
+
const leftWay = leftWayId ? osmData.ways.get(leftWayId) : undefined;
|
|
476
|
+
const rightWay = rightWayId ? osmData.ways.get(rightWayId) : undefined;
|
|
477
|
+
if (!leftWay || !rightWay || leftWay.nodeRefs.length < 2 || rightWay.nodeRefs.length < 2)
|
|
478
|
+
continue;
|
|
479
|
+
const l0 = toCanvas(leftWay.nodeRefs[0]);
|
|
480
|
+
const l1 = toCanvas(leftWay.nodeRefs[leftWay.nodeRefs.length - 1]);
|
|
481
|
+
let r0 = toCanvas(rightWay.nodeRefs[0]);
|
|
482
|
+
let r1 = toCanvas(rightWay.nodeRefs[rightWay.nodeRefs.length - 1]);
|
|
483
|
+
if (!l0 || !l1 || !r0 || !r1)
|
|
484
|
+
continue;
|
|
485
|
+
// Pair the boundary endpoints so left/right run parallel (the right way
|
|
486
|
+
// may be stored reversed).
|
|
487
|
+
const dist = (a, b) => Math.hypot(a.x - b.x, a.y - b.y);
|
|
488
|
+
if (dist(l0, r0) + dist(l1, r1) > dist(l0, r1) + dist(l1, r0)) {
|
|
489
|
+
;
|
|
490
|
+
[r0, r1] = [r1, r0];
|
|
491
|
+
}
|
|
492
|
+
const start = { x: (l0.x + r0.x) / 2, y: (l0.y + r0.y) / 2 };
|
|
493
|
+
const end = { x: (l1.x + r1.x) / 2, y: (l1.y + r1.y) / 2 };
|
|
494
|
+
const width = (dist(l0, r0) + dist(l1, r1)) / 2;
|
|
495
|
+
const cx = (start.x + end.x) / 2;
|
|
496
|
+
const cy = (start.y + end.y) / 2;
|
|
497
|
+
const refLineMember = re.members.find(m => m.type === 'way' && m.role === 'ref_line');
|
|
498
|
+
const stopLineId = refLineMember ? osmWayToLinestringId.get(refLineMember.ref) ?? null : null;
|
|
499
|
+
const polygonMember = re.members.find(m => m.type === 'way' && m.role === 'crosswalk_polygon');
|
|
500
|
+
const attributes = {
|
|
501
|
+
...re.tags,
|
|
502
|
+
crosswalk_lanelet_osm_id: lanelet.id,
|
|
503
|
+
crosswalk_left_osm_id: leftWay.id,
|
|
504
|
+
crosswalk_right_osm_id: rightWay.id,
|
|
505
|
+
};
|
|
506
|
+
if (polygonMember)
|
|
507
|
+
attributes.crosswalk_polygon_osm_id = polygonMember.ref;
|
|
508
|
+
result.crosswalks.push({
|
|
509
|
+
id: idAllocator.next('crosswalk'),
|
|
510
|
+
x: cx,
|
|
511
|
+
y: cy,
|
|
512
|
+
startX: start.x - cx,
|
|
513
|
+
startY: start.y - cy,
|
|
514
|
+
endX: end.x - cx,
|
|
515
|
+
endY: end.y - cy,
|
|
516
|
+
crosswalkWidth: width,
|
|
517
|
+
osmId: re.id,
|
|
518
|
+
affectedLaneIds: laneShapeIdsByRegElem.get(re.id) ?? [],
|
|
519
|
+
stopLineId,
|
|
520
|
+
attributes,
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
// Restore yieldLaneIds from right_of_way regulatory elements: each lanelet
|
|
524
|
+
// playing the "right_of_way" role gains the materialized "yield" lanelets.
|
|
525
|
+
const laneByOsmId = new Map();
|
|
526
|
+
for (const lane of result.lanes)
|
|
527
|
+
laneByOsmId.set(lane.osmId, lane);
|
|
528
|
+
for (const re of rightOfWayRelations) {
|
|
529
|
+
const yieldLaneIds = [];
|
|
530
|
+
for (const member of re.members) {
|
|
531
|
+
if (member.type !== 'relation' || member.role !== 'yield')
|
|
532
|
+
continue;
|
|
533
|
+
const yieldLane = laneByOsmId.get(member.ref);
|
|
534
|
+
if (yieldLane && !yieldLaneIds.includes(yieldLane.id))
|
|
535
|
+
yieldLaneIds.push(yieldLane.id);
|
|
536
|
+
}
|
|
537
|
+
if (yieldLaneIds.length === 0)
|
|
538
|
+
continue;
|
|
539
|
+
for (const member of re.members) {
|
|
540
|
+
if (member.type !== 'relation' || member.role !== 'right_of_way')
|
|
541
|
+
continue;
|
|
542
|
+
const rowLane = laneByOsmId.get(member.ref);
|
|
543
|
+
if (!rowLane)
|
|
544
|
+
continue;
|
|
545
|
+
// 同じ lanelet が複数の right_of_way RE に属する場合があるため union する
|
|
546
|
+
const merged = rowLane.yieldLaneIds ?? [];
|
|
547
|
+
for (const id of yieldLaneIds) {
|
|
548
|
+
if (!merged.includes(id))
|
|
549
|
+
merged.push(id);
|
|
550
|
+
}
|
|
551
|
+
rowLane.yieldLaneIds = merged;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
351
554
|
// Bounds across all materialized points.
|
|
352
555
|
for (const point of result.points) {
|
|
353
556
|
if (point.x < result.bounds.minX)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"osmToShapes.js","sourceRoot":"","sources":["../../src/exporter/osmToShapes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"osmToShapes.js","sourceRoot":"","sources":["../../src/exporter/osmToShapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Geographic anchor expressed as WGS84 lat/lon (and optional heading).
|
|
3
|
+
* Used to derive a local PROJ string anchored at this point.
|
|
4
|
+
*/
|
|
5
|
+
export interface GeoOrigin {
|
|
6
|
+
lat: number;
|
|
7
|
+
lon: number;
|
|
8
|
+
/** Heading of the local page +x axis clockwise from north, in radians. */
|
|
9
|
+
headingRad?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Fallback PROJ string used when no geographic origin is available. It still
|
|
13
|
+
* declares WGS84 explicitly so downstream tools see a defined CRS rather than
|
|
14
|
+
* an empty <geoReference>.
|
|
15
|
+
*/
|
|
16
|
+
export declare const FALLBACK_GEO_REFERENCE = "+proj=longlat +datum=WGS84";
|
|
17
|
+
/**
|
|
18
|
+
* Build a Transverse Mercator (tmerc) PROJ.4 string anchored at the given
|
|
19
|
+
* lat/lon. tmerc is preferred over UTM for small-area maps (sub-km) because
|
|
20
|
+
* it avoids UTM zone boundary distortion and minimises error near the origin.
|
|
21
|
+
*/
|
|
22
|
+
export declare function latLonToTmercProj(lat: number, lon: number): string;
|
|
23
|
+
/**
|
|
24
|
+
* Build a UTM PROJ.4 string for the UTM zone containing the given lon. The
|
|
25
|
+
* hemisphere is selected from the sign of lat. Use this when the consumer
|
|
26
|
+
* expects a globally-named UTM zone rather than a tmerc-at-origin.
|
|
27
|
+
*/
|
|
28
|
+
export declare function latLonToUtmProj(lat: number, lon: number): string;
|
|
29
|
+
/**
|
|
30
|
+
* Choose a PROJ.4 string for the given origin. Defaults to tmerc-at-origin,
|
|
31
|
+
* which is appropriate for the small-area maps that this SDK typically
|
|
32
|
+
* exports. Falls back to a generic WGS84 longlat string when origin is absent
|
|
33
|
+
* or malformed.
|
|
34
|
+
*/
|
|
35
|
+
export declare function originToProjString(origin: GeoOrigin | undefined | null, method?: 'tmerc' | 'utm'): string;
|
|
36
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/exporter/projection.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,+BAA+B,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAWlE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,EACpC,MAAM,GAAE,OAAO,GAAG,KAAe,GAChC,MAAM,CAaR"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// PROJ.4 string helpers used by the OpenDRIVE exporter to populate
|
|
2
|
+
// <header><geoReference>.
|
|
3
|
+
//
|
|
4
|
+
// OpenDRIVE 1.8 expects the <geoReference> child of <header> to declare the
|
|
5
|
+
// coordinate reference system as a PROJ.4 string (or similar). Without it,
|
|
6
|
+
// downstream tools (esmini, RoadRunner, CARLA, asam-qc-opendrive) cannot
|
|
7
|
+
// interpret the map's coordinates consistently.
|
|
8
|
+
//
|
|
9
|
+
// No external dependencies — these are pure formatting helpers.
|
|
10
|
+
/**
|
|
11
|
+
* Fallback PROJ string used when no geographic origin is available. It still
|
|
12
|
+
* declares WGS84 explicitly so downstream tools see a defined CRS rather than
|
|
13
|
+
* an empty <geoReference>.
|
|
14
|
+
*/
|
|
15
|
+
export const FALLBACK_GEO_REFERENCE = '+proj=longlat +datum=WGS84';
|
|
16
|
+
/**
|
|
17
|
+
* Build a Transverse Mercator (tmerc) PROJ.4 string anchored at the given
|
|
18
|
+
* lat/lon. tmerc is preferred over UTM for small-area maps (sub-km) because
|
|
19
|
+
* it avoids UTM zone boundary distortion and minimises error near the origin.
|
|
20
|
+
*/
|
|
21
|
+
export function latLonToTmercProj(lat, lon) {
|
|
22
|
+
return [
|
|
23
|
+
'+proj=tmerc',
|
|
24
|
+
`+lat_0=${lat.toFixed(8)}`,
|
|
25
|
+
`+lon_0=${lon.toFixed(8)}`,
|
|
26
|
+
'+k=1',
|
|
27
|
+
'+x_0=0',
|
|
28
|
+
'+y_0=0',
|
|
29
|
+
'+datum=WGS84',
|
|
30
|
+
'+units=m',
|
|
31
|
+
].join(' ');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build a UTM PROJ.4 string for the UTM zone containing the given lon. The
|
|
35
|
+
* hemisphere is selected from the sign of lat. Use this when the consumer
|
|
36
|
+
* expects a globally-named UTM zone rather than a tmerc-at-origin.
|
|
37
|
+
*/
|
|
38
|
+
export function latLonToUtmProj(lat, lon) {
|
|
39
|
+
const zone = Math.floor((lon + 180) / 6) + 1;
|
|
40
|
+
const parts = ['+proj=utm', `+zone=${zone}`];
|
|
41
|
+
if (lat < 0)
|
|
42
|
+
parts.push('+south');
|
|
43
|
+
parts.push('+datum=WGS84', '+units=m');
|
|
44
|
+
return parts.join(' ');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Choose a PROJ.4 string for the given origin. Defaults to tmerc-at-origin,
|
|
48
|
+
* which is appropriate for the small-area maps that this SDK typically
|
|
49
|
+
* exports. Falls back to a generic WGS84 longlat string when origin is absent
|
|
50
|
+
* or malformed.
|
|
51
|
+
*/
|
|
52
|
+
export function originToProjString(origin, method = 'tmerc') {
|
|
53
|
+
if (!origin ||
|
|
54
|
+
typeof origin.lat !== 'number' ||
|
|
55
|
+
typeof origin.lon !== 'number' ||
|
|
56
|
+
!Number.isFinite(origin.lat) ||
|
|
57
|
+
!Number.isFinite(origin.lon)) {
|
|
58
|
+
return FALLBACK_GEO_REFERENCE;
|
|
59
|
+
}
|
|
60
|
+
return method === 'utm'
|
|
61
|
+
? latLonToUtmProj(origin.lat, origin.lon)
|
|
62
|
+
: latLonToTmercProj(origin.lat, origin.lon);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/exporter/projection.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,0BAA0B;AAC1B,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,gDAAgD;AAChD,EAAE;AACF,gEAAgE;AAahE;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,4BAA4B,CAAA;AAElE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAW;IACxD,OAAO;QACL,aAAa;QACb,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC1B,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC1B,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,UAAU;KACX,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IAC5C,IAAI,GAAG,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoC,EACpC,SAA0B,OAAO;IAEjC,IACE,CAAC,MAAM;QACP,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,CAAC;QACD,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IACD,OAAO,MAAM,KAAK,KAAK;QACrB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;QACzC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -54,10 +54,16 @@ export interface LaneProps {
|
|
|
54
54
|
type: string;
|
|
55
55
|
subtype: string;
|
|
56
56
|
speed_limit?: string;
|
|
57
|
-
}
|
|
57
|
+
} & Record<string, string | undefined>;
|
|
58
58
|
next: string[];
|
|
59
59
|
prev: string[];
|
|
60
60
|
osmId: string;
|
|
61
|
+
/**
|
|
62
|
+
* Lane shape ids that must yield to this lane (regulatory layer).
|
|
63
|
+
* Exported as a Lanelet2 `right_of_way` regulatory element whose
|
|
64
|
+
* "right_of_way" member is this lane and "yield" members are these lanes.
|
|
65
|
+
*/
|
|
66
|
+
yieldLaneIds?: string[];
|
|
61
67
|
}
|
|
62
68
|
export interface VehicleProps {
|
|
63
69
|
w: number;
|
|
@@ -151,6 +157,18 @@ export interface TrafficLightProps {
|
|
|
151
157
|
subtype?: string;
|
|
152
158
|
} & Record<string, string>;
|
|
153
159
|
osmId: string;
|
|
160
|
+
/**
|
|
161
|
+
* Lane shape ids whose traffic this signal controls (regulatory layer).
|
|
162
|
+
* Exported as a Lanelet2 regulatory element / OpenDRIVE signal validity.
|
|
163
|
+
*/
|
|
164
|
+
affectedLaneIds?: string[];
|
|
165
|
+
/** Linestring shape id of the associated stop line, or null when absent. */
|
|
166
|
+
stopLineId?: string | null;
|
|
167
|
+
/**
|
|
168
|
+
* Signal group id. Signals sharing the same controllerId belong to one
|
|
169
|
+
* intersection controller (exported as an OpenDRIVE <controller>).
|
|
170
|
+
*/
|
|
171
|
+
controllerId?: string;
|
|
154
172
|
}
|
|
155
173
|
export interface CrosswalkProps {
|
|
156
174
|
/** Crosswalk axis start in shape-local coordinates. */
|
|
@@ -172,6 +190,14 @@ export interface CrosswalkProps {
|
|
|
172
190
|
subtype?: string;
|
|
173
191
|
} & Record<string, string>;
|
|
174
192
|
osmId: string;
|
|
193
|
+
/**
|
|
194
|
+
* Lane shape ids whose traffic this crosswalk regulates (regulatory layer).
|
|
195
|
+
* Exported as a Lanelet2 `crosswalk` regulatory element referenced by the
|
|
196
|
+
* affected lanelets.
|
|
197
|
+
*/
|
|
198
|
+
affectedLaneIds?: string[];
|
|
199
|
+
/** Linestring shape id of the associated stop line, or null when absent. */
|
|
200
|
+
stopLineId?: string | null;
|
|
175
201
|
}
|
|
176
202
|
export interface FreehandProps {
|
|
177
203
|
points: Array<{
|
|
@@ -192,6 +218,17 @@ export interface DrawtonomySnapshot {
|
|
|
192
218
|
y: number;
|
|
193
219
|
z: number;
|
|
194
220
|
};
|
|
221
|
+
/**
|
|
222
|
+
* Optional geographic anchor for the scene, expressed as WGS84 lat/lon plus
|
|
223
|
+
* an optional heading of the page +x axis clockwise from north (radians).
|
|
224
|
+
* When present, the OpenDRIVE exporter uses this to populate
|
|
225
|
+
* <header><geoReference> with a PROJ.4 string.
|
|
226
|
+
*/
|
|
227
|
+
origin?: {
|
|
228
|
+
lat: number;
|
|
229
|
+
lon: number;
|
|
230
|
+
headingRad?: number;
|
|
231
|
+
};
|
|
195
232
|
}
|
|
196
233
|
export type ExtensionCapability = 'shapes:write' | 'shapes:read' | 'snapshot:read' | 'snapshot:export' | 'viewport:read' | 'selection:read' | 'ui:panel' | 'ui:notify';
|
|
197
234
|
export interface ExtensionManifest {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtF,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;IAC5F,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|