react-native-brouter 0.0.1

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 (48) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +125 -0
  3. package/android/build.gradle +110 -0
  4. package/android/generated/java/com/jhotadhari/reactnative/brouter/NativeBRouterSpec.java +39 -0
  5. package/android/generated/jni/CMakeLists.txt +28 -0
  6. package/android/generated/jni/RNBRouterSpec-generated.cpp +32 -0
  7. package/android/generated/jni/RNBRouterSpec.h +31 -0
  8. package/android/generated/jni/react/renderer/components/RNBRouterSpec/RNBRouterSpecJSI.h +38 -0
  9. package/android/gradle.properties +5 -0
  10. package/android/src/main/AndroidManifest.xml +3 -0
  11. package/android/src/main/AndroidManifestNew.xml +2 -0
  12. package/android/src/main/aidl/btools/routingapp/IBRouterService.aidl +47 -0
  13. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterClient.java +205 -0
  14. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterError.java +38 -0
  15. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterModule.java +135 -0
  16. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterPackage.kt +33 -0
  17. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterServiceConnection.java +54 -0
  18. package/android/src/main/java/com/jhotadhari/reactnative/brouter/ParamMapper.java +174 -0
  19. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterClientTest.java +247 -0
  20. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterErrorTest.java +48 -0
  21. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterModuleTest.java +137 -0
  22. package/android/src/test/java/com/jhotadhari/reactnative/brouter/ParamMapperTest.java +279 -0
  23. package/lib/module/NativeBRouter.js +5 -0
  24. package/lib/module/NativeBRouter.js.map +1 -0
  25. package/lib/module/geojson/index.js +235 -0
  26. package/lib/module/geojson/index.js.map +1 -0
  27. package/lib/module/index.js +297 -0
  28. package/lib/module/index.js.map +1 -0
  29. package/lib/module/package.json +1 -0
  30. package/lib/module/types.js +2 -0
  31. package/lib/module/types.js.map +1 -0
  32. package/lib/typescript/package.json +1 -0
  33. package/lib/typescript/release.config.d.ts +11 -0
  34. package/lib/typescript/release.config.d.ts.map +1 -0
  35. package/lib/typescript/src/NativeBRouter.d.ts +9 -0
  36. package/lib/typescript/src/NativeBRouter.d.ts.map +1 -0
  37. package/lib/typescript/src/geojson/index.d.ts +122 -0
  38. package/lib/typescript/src/geojson/index.d.ts.map +1 -0
  39. package/lib/typescript/src/index.d.ts +13 -0
  40. package/lib/typescript/src/index.d.ts.map +1 -0
  41. package/lib/typescript/src/types.d.ts +93 -0
  42. package/lib/typescript/src/types.d.ts.map +1 -0
  43. package/package.json +159 -0
  44. package/react-native.config.js +12 -0
  45. package/src/NativeBRouter.ts +8 -0
  46. package/src/geojson/index.ts +371 -0
  47. package/src/index.tsx +344 -0
  48. package/src/types.ts +112 -0
package/src/types.ts ADDED
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Mirrors GeoJSON's `Position` (`[lng, lat, alt?]`).
3
+ *
4
+ * This is the same convention used by react-native-mapsforge-vtm.
5
+ * Uses `number` for general TypeScript compatibility; codegen specs
6
+ * should redeclare with `Double` where needed.
7
+ */
8
+ export type Position = ReadonlyArray<number>;
9
+
10
+ export type VehicleMode = 'motorcar' | 'bicycle' | 'foot';
11
+
12
+ export type TrackFormat = 'kml' | 'gpx' | 'json';
13
+
14
+ export type TurnInstructionFormat = 'osmand' | 'locus';
15
+
16
+ export type TurnInstructionMode =
17
+ | 'none'
18
+ | 'auto-choose'
19
+ | 'locus'
20
+ | 'osmand'
21
+ | 'comment'
22
+ | 'gpsies'
23
+ | 'orux'
24
+ | 'locus-old';
25
+
26
+ export interface Waypoint {
27
+ /** [lng, lat, alt?] */
28
+ position: Position;
29
+ /** Named waypoints are preserved in the output and not optimized away. */
30
+ name?: string;
31
+ /** Route as a straight line from the previous waypoint to this one. */
32
+ direct?: boolean;
33
+ }
34
+
35
+ export interface NogoArea {
36
+ /** [lng, lat] of the nogo center. */
37
+ position: Position;
38
+ /** Radius in meters. */
39
+ radiusMeters: number;
40
+ /** Penalty weight (optional). */
41
+ weight?: number;
42
+ }
43
+
44
+ export interface Polyline {
45
+ /** Array of [lng, lat]* positions. */
46
+ positions: Position[];
47
+ /** Penalty weight (optional). */
48
+ weight?: number;
49
+ }
50
+
51
+ export interface Polygon {
52
+ /** Closed ring of [lng, lat]* positions. */
53
+ positions: Position[];
54
+ /** Penalty weight (optional). */
55
+ weight?: number;
56
+ }
57
+
58
+ export interface Poi {
59
+ /** [lng, lat] */
60
+ position: Position;
61
+ name: string;
62
+ }
63
+
64
+ export interface RouteRequest {
65
+ /** At least 2 waypoints required. */
66
+ waypoints: Waypoint[];
67
+ /** BRouter profile file name without .brf extension. */
68
+ profile?: string;
69
+ /** Raw profile content that overrides profile + vehicle + fast. */
70
+ remoteProfile?: string;
71
+ vehicle?: VehicleMode;
72
+ /** Fast mode (ignored if remoteProfile is set). */
73
+ fast?: boolean;
74
+ format?: TrackFormat;
75
+ alternativeIndex?: 0 | 1 | 2 | 3;
76
+ nogos?: NogoArea[];
77
+ polylines?: Polyline[];
78
+ polygons?: Polygon[];
79
+ pois?: Poi[];
80
+ exportWaypoints?: boolean;
81
+ turnInstructionFormat?: TurnInstructionFormat;
82
+ turnInstructionMode?: TurnInstructionMode;
83
+ /** Start direction in degrees. */
84
+ heading?: number;
85
+ /** Recalculation start direction in degrees. */
86
+ direction?: number;
87
+ /** Request elevation data (engineMode=2). */
88
+ elevation?: boolean;
89
+ /** Routing timeout in seconds (default 60). */
90
+ maxRunningTime?: number;
91
+ /** Connection timeout in milliseconds (default 1000). */
92
+ connectTimeout?: number;
93
+ /** Save result to file instead of returning it in the promise. */
94
+ pathToFileResult?: string;
95
+ /** Compress result (gpx format only). */
96
+ acceptCompressedResult?: boolean;
97
+ /** Arbitrary key=value pairs passed to the BRouter profile. */
98
+ extraParams?: Record<string, string>;
99
+ }
100
+
101
+ export interface RouteResult {
102
+ /** The raw track string (GPX, KML, or JSON). */
103
+ raw: string;
104
+ /** The format of the returned track. */
105
+ format: TrackFormat;
106
+ }
107
+
108
+ /** Structured error from the BRouter native module. */
109
+ export interface BRouterError {
110
+ code: string;
111
+ message: string;
112
+ }