googlemaps / googlemaps/react-native-navigation-sdk

TurnByTurn JS payload diverges from the TS types: step field names, maneuver type, missing/empty fields

Offen
#641 1 Kommentar 0 Reaktionen 1 zugewiesene Person Beansprucht von @jokerttu Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
227
Forks
38
Ø Merge
5 T. 7 Std.
Gemergte PRs (30 T.)
10

Beschreibung

While building CarPlay/Android Auto guidance on top of `onTurnByTurn` (SDK 0.16.3), we hit four places where the wire payload differs from the TypeScript declarations. Each cost us a real on-device defect (silently rejected car turn cards), so documenting them with sources:

1. **Step distance/time field names don't match.** `StepInfoSpec` (NativeNavModule) declares `distanceMeters`/`durationSeconds`, but both native layers emit `distanceFromPrevStepMeters`/`timeFromPrevStepSeconds` instead — see `ObjectTranslationUtil.getMapFromStepInfo` (Android) and `NavModule.mm`'s `getDictionaryFromStepInfo` (iOS). The spec-named fields are never present at runtime.

2. **`maneuver` is typed `string` but is a number on the wire.** Both platforms `putInt`/`numberWithInteger` the platform maneuver constant (which, helpfully, uses identical values 0–65 on both platforms).

3. **Fields emitted but untyped:** `fullRoadName` and `stepNumber` (both platforms), `roundaboutTurnNumber`/`exitNumber` (Android) are in the payload but absent from `StepInfoSpec`.

4. **`instruction` is empty on the final arrival tick** (iOS observed; the arrival step arrives with maneuver=DESTINATION and an empty instruction). Worth documenting since `instruction` reads as always-populated from the types.

Also: `TurnByTurnEvent` in the public API is an empty interface, so none of the above is even visible to consumers without reading native source. Happy to PR type updates if you'd take them — aligning `StepInfoSpec` with the actual emitters seems the minimal fix.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.