@aguacerowx/javascript-sdk 0.0.27 → 0.0.28
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/AguaceroCore.js +207 -794
- package/dist/default-colormaps.js +437 -556
- package/dist/dictionaries.js +2413 -2071
- package/dist/events.js +2 -2
- package/dist/getBundleId.js +20 -9
- package/dist/index.js +1 -172
- package/dist/unitConversions.js +10 -10
- package/package.json +99 -99
- package/src/coordinate_configs.js +374 -374
- package/src/default-colormaps.js +3369 -3369
- package/src/dictionaries.js +3857 -3857
- package/src/events.js +31 -31
- package/src/fill-layer-worker.js +26 -26
- package/src/getBundleId.js +8 -8
- package/src/getBundleId.native.js +14 -14
- package/src/gridDecodePipeline.js +32 -32
- package/src/gridDecodeWorker.js +24 -24
- package/src/index.js +48 -48
- package/src/map-styles.js +101 -101
- package/src/nexradTiltCoalesce.js +95 -95
- package/src/nexradTilts.js +128 -128
- package/src/nexrad_level3_catalog.js +26 -26
- package/src/nws/nwsAlertsFetchSpec.js +93 -93
- package/src/nws/nwsEventColorsDefaults.js +133 -133
- package/src/nws/nwsSdkConstants.js +368 -368
- package/src/satellite_support.js +376 -376
- package/src/spawnGridDecodeWorker.js +5 -5
- package/src/unitConversions.js +102 -102
- package/dist/getBundleId.native.js +0 -18
- package/dist/gridDecodePipeline.js +0 -37
- package/dist/gridDecodeWorker.js +0 -31
- package/dist/nexradTiltCoalesce.js +0 -95
- package/dist/nexradTilts.js +0 -129
- package/dist/nexrad_level3_catalog.js +0 -56
- package/dist/nexrad_support.js +0 -269
- package/dist/satellite_support.js +0 -395
package/src/events.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
// aguacero-api/src/events.js
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* A simple class for emitting and listening to events.
|
|
5
|
-
*/
|
|
6
|
-
export class EventEmitter {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.callbacks = {};
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
on(event, cb) {
|
|
12
|
-
if (!this.callbacks[event]) this.callbacks[event] = [];
|
|
13
|
-
this.callbacks[event].push(cb);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// --- THIS IS THE MISSING PIECE ---
|
|
17
|
-
// Add this method to allow listeners to be removed.
|
|
18
|
-
off(event, cb) {
|
|
19
|
-
const cbs = this.callbacks[event];
|
|
20
|
-
if (cbs) {
|
|
21
|
-
// Create a new array that excludes the callback we want to remove
|
|
22
|
-
this.callbacks[event] = cbs.filter(callback => callback !== cb);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
emit(event, data) {
|
|
27
|
-
const cbs = this.callbacks[event];
|
|
28
|
-
if (cbs) {
|
|
29
|
-
cbs.forEach(cb => cb(data));
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
// aguacero-api/src/events.js
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A simple class for emitting and listening to events.
|
|
5
|
+
*/
|
|
6
|
+
export class EventEmitter {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.callbacks = {};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
on(event, cb) {
|
|
12
|
+
if (!this.callbacks[event]) this.callbacks[event] = [];
|
|
13
|
+
this.callbacks[event].push(cb);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// --- THIS IS THE MISSING PIECE ---
|
|
17
|
+
// Add this method to allow listeners to be removed.
|
|
18
|
+
off(event, cb) {
|
|
19
|
+
const cbs = this.callbacks[event];
|
|
20
|
+
if (cbs) {
|
|
21
|
+
// Create a new array that excludes the callback we want to remove
|
|
22
|
+
this.callbacks[event] = cbs.filter(callback => callback !== cb);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
emit(event, data) {
|
|
27
|
+
const cbs = this.callbacks[event];
|
|
28
|
+
if (cbs) {
|
|
29
|
+
cbs.forEach(cb => cb(data));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
32
|
}
|
package/src/fill-layer-worker.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
// aguaceroAPI/src/fill-layer-worker.js
|
|
2
|
-
|
|
3
|
-
import { decompress } from 'fzstd';
|
|
4
|
-
|
|
5
|
-
// Listen for messages from the main thread
|
|
6
|
-
self.onmessage = async (e) => {
|
|
7
|
-
const { compressedData, encoding } = e.data;
|
|
8
|
-
|
|
9
|
-
try {
|
|
10
|
-
// Perform the heavy decompression work
|
|
11
|
-
const decompressedData = decompress(compressedData);
|
|
12
|
-
|
|
13
|
-
// Send the successful result back to the main thread
|
|
14
|
-
self.postMessage({
|
|
15
|
-
success: true,
|
|
16
|
-
decompressedData,
|
|
17
|
-
encoding
|
|
18
|
-
}, [decompressedData.buffer]); // Transfer the buffer for performance
|
|
19
|
-
|
|
20
|
-
} catch (error) {
|
|
21
|
-
// If something goes wrong, send an error message back
|
|
22
|
-
self.postMessage({
|
|
23
|
-
success: false,
|
|
24
|
-
error: error.message
|
|
25
|
-
});
|
|
26
|
-
}
|
|
1
|
+
// aguaceroAPI/src/fill-layer-worker.js
|
|
2
|
+
|
|
3
|
+
import { decompress } from 'fzstd';
|
|
4
|
+
|
|
5
|
+
// Listen for messages from the main thread
|
|
6
|
+
self.onmessage = async (e) => {
|
|
7
|
+
const { compressedData, encoding } = e.data;
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
// Perform the heavy decompression work
|
|
11
|
+
const decompressedData = decompress(compressedData);
|
|
12
|
+
|
|
13
|
+
// Send the successful result back to the main thread
|
|
14
|
+
self.postMessage({
|
|
15
|
+
success: true,
|
|
16
|
+
decompressedData,
|
|
17
|
+
encoding
|
|
18
|
+
}, [decompressedData.buffer]); // Transfer the buffer for performance
|
|
19
|
+
|
|
20
|
+
} catch (error) {
|
|
21
|
+
// If something goes wrong, send an error message back
|
|
22
|
+
self.postMessage({
|
|
23
|
+
success: false,
|
|
24
|
+
error: error.message
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
27
|
};
|
package/src/getBundleId.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default implementation for web and Node bundlers (Vite, webpack).
|
|
3
|
-
* Do not import react-native-device-info here: static analysis would pull in
|
|
4
|
-
* `react-native` (Flow sources) and break esbuild.
|
|
5
|
-
*
|
|
6
|
-
* Metro resolves `getBundleId.native.js` on iOS/Android instead of this file.
|
|
7
|
-
*/
|
|
8
|
-
export const getBundleId = () => null;
|
|
1
|
+
/**
|
|
2
|
+
* Default implementation for web and Node bundlers (Vite, webpack).
|
|
3
|
+
* Do not import react-native-device-info here: static analysis would pull in
|
|
4
|
+
* `react-native` (Flow sources) and break esbuild.
|
|
5
|
+
*
|
|
6
|
+
* Metro resolves `getBundleId.native.js` on iOS/Android instead of this file.
|
|
7
|
+
*/
|
|
8
|
+
export const getBundleId = () => null;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React Native (Metro picks this file over getBundleId.js on native platforms).
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
let getBundleIdImpl;
|
|
6
|
-
|
|
7
|
-
try {
|
|
8
|
-
const DeviceInfo = require('react-native-device-info');
|
|
9
|
-
getBundleIdImpl = () => DeviceInfo.getBundleId();
|
|
10
|
-
} catch {
|
|
11
|
-
getBundleIdImpl = () => null;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const getBundleId = getBundleIdImpl;
|
|
1
|
+
/**
|
|
2
|
+
* React Native (Metro picks this file over getBundleId.js on native platforms).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
let getBundleIdImpl;
|
|
6
|
+
|
|
7
|
+
try {
|
|
8
|
+
const DeviceInfo = require('react-native-device-info');
|
|
9
|
+
getBundleIdImpl = () => DeviceInfo.getBundleId();
|
|
10
|
+
} catch {
|
|
11
|
+
getBundleIdImpl = () => null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const getBundleId = getBundleIdImpl;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { decompress } from 'fzstd';
|
|
2
|
-
|
|
3
|
-
function reconstructData(decompressedDeltas, encoding) {
|
|
4
|
-
const expectedLength = encoding.length;
|
|
5
|
-
const reconstructedData = new Int8Array(expectedLength);
|
|
6
|
-
|
|
7
|
-
if (decompressedDeltas.length > 0 && expectedLength > 0) {
|
|
8
|
-
reconstructedData[0] = decompressedDeltas[0] > 127 ? decompressedDeltas[0] - 256 : decompressedDeltas[0];
|
|
9
|
-
for (let i = 1; i < expectedLength; i++) {
|
|
10
|
-
const delta = decompressedDeltas[i] > 127 ? decompressedDeltas[i] - 256 : decompressedDeltas[i];
|
|
11
|
-
reconstructedData[i] = reconstructedData[i - 1] + delta;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return new Uint8Array(reconstructedData.buffer);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* zstd decompress → delta reconstruction → unsigned byte offset for GPU lookup.
|
|
19
|
-
* Used on the main thread as a fallback and inside {@link ./gridDecodeWorker.js}.
|
|
20
|
-
*/
|
|
21
|
-
export function processCompressedGrid(compressedData, encoding) {
|
|
22
|
-
const decompressedDeltas = decompress(compressedData);
|
|
23
|
-
const finalData = reconstructData(decompressedDeltas, encoding);
|
|
24
|
-
|
|
25
|
-
const transformedData = new Uint8Array(finalData.length);
|
|
26
|
-
for (let i = 0; i < finalData.length; i++) {
|
|
27
|
-
const signedValue = finalData[i] > 127 ? finalData[i] - 256 : finalData[i];
|
|
28
|
-
transformedData[i] = signedValue + 128;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return { data: transformedData, encoding };
|
|
32
|
-
}
|
|
1
|
+
import { decompress } from 'fzstd';
|
|
2
|
+
|
|
3
|
+
function reconstructData(decompressedDeltas, encoding) {
|
|
4
|
+
const expectedLength = encoding.length;
|
|
5
|
+
const reconstructedData = new Int8Array(expectedLength);
|
|
6
|
+
|
|
7
|
+
if (decompressedDeltas.length > 0 && expectedLength > 0) {
|
|
8
|
+
reconstructedData[0] = decompressedDeltas[0] > 127 ? decompressedDeltas[0] - 256 : decompressedDeltas[0];
|
|
9
|
+
for (let i = 1; i < expectedLength; i++) {
|
|
10
|
+
const delta = decompressedDeltas[i] > 127 ? decompressedDeltas[i] - 256 : decompressedDeltas[i];
|
|
11
|
+
reconstructedData[i] = reconstructedData[i - 1] + delta;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return new Uint8Array(reconstructedData.buffer);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* zstd decompress → delta reconstruction → unsigned byte offset for GPU lookup.
|
|
19
|
+
* Used on the main thread as a fallback and inside {@link ./gridDecodeWorker.js}.
|
|
20
|
+
*/
|
|
21
|
+
export function processCompressedGrid(compressedData, encoding) {
|
|
22
|
+
const decompressedDeltas = decompress(compressedData);
|
|
23
|
+
const finalData = reconstructData(decompressedDeltas, encoding);
|
|
24
|
+
|
|
25
|
+
const transformedData = new Uint8Array(finalData.length);
|
|
26
|
+
for (let i = 0; i < finalData.length; i++) {
|
|
27
|
+
const signedValue = finalData[i] > 127 ? finalData[i] - 256 : finalData[i];
|
|
28
|
+
transformedData[i] = signedValue + 128;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return { data: transformedData, encoding };
|
|
32
|
+
}
|
package/src/gridDecodeWorker.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { processCompressedGrid } from './gridDecodePipeline.js';
|
|
2
|
-
|
|
3
|
-
self.onmessage = (e) => {
|
|
4
|
-
const { id, encoding, compressedBuffer, compressedByteOffset, compressedByteLength } = e.data;
|
|
5
|
-
try {
|
|
6
|
-
const compressedData = new Uint8Array(compressedBuffer, compressedByteOffset, compressedByteLength);
|
|
7
|
-
const { data, encoding: enc } = processCompressedGrid(compressedData, encoding);
|
|
8
|
-
self.postMessage(
|
|
9
|
-
{
|
|
10
|
-
id,
|
|
11
|
-
encoding: enc,
|
|
12
|
-
dataBuffer: data.buffer,
|
|
13
|
-
dataByteOffset: data.byteOffset,
|
|
14
|
-
dataByteLength: data.byteLength,
|
|
15
|
-
},
|
|
16
|
-
[data.buffer]
|
|
17
|
-
);
|
|
18
|
-
} catch (err) {
|
|
19
|
-
self.postMessage({
|
|
20
|
-
id,
|
|
21
|
-
error: err?.message || String(err),
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
};
|
|
1
|
+
import { processCompressedGrid } from './gridDecodePipeline.js';
|
|
2
|
+
|
|
3
|
+
self.onmessage = (e) => {
|
|
4
|
+
const { id, encoding, compressedBuffer, compressedByteOffset, compressedByteLength } = e.data;
|
|
5
|
+
try {
|
|
6
|
+
const compressedData = new Uint8Array(compressedBuffer, compressedByteOffset, compressedByteLength);
|
|
7
|
+
const { data, encoding: enc } = processCompressedGrid(compressedData, encoding);
|
|
8
|
+
self.postMessage(
|
|
9
|
+
{
|
|
10
|
+
id,
|
|
11
|
+
encoding: enc,
|
|
12
|
+
dataBuffer: data.buffer,
|
|
13
|
+
dataByteOffset: data.byteOffset,
|
|
14
|
+
dataByteLength: data.byteLength,
|
|
15
|
+
},
|
|
16
|
+
[data.buffer]
|
|
17
|
+
);
|
|
18
|
+
} catch (err) {
|
|
19
|
+
self.postMessage({
|
|
20
|
+
id,
|
|
21
|
+
error: err?.message || String(err),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
};
|
package/src/index.js
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
// In packages/javascript-sdk/src/index.js (The final, correct version)
|
|
2
|
-
|
|
3
|
-
// Import the specific things you want to make public from your package's internal files.
|
|
4
|
-
import { AguaceroCore } from './AguaceroCore.js';
|
|
5
|
-
import { EventEmitter } from './events.js';
|
|
6
|
-
import { THEME_CONFIGS } from './map-styles.js';
|
|
7
|
-
import { DICTIONARIES } from './dictionaries.js';
|
|
8
|
-
import { DEFAULT_COLORMAPS } from './default-colormaps.js';
|
|
9
|
-
import { getUnitConversionFunction } from './unitConversions.js';
|
|
10
|
-
export {
|
|
11
|
-
SATELLITE_FRAMES_URL,
|
|
12
|
-
GOES_EAST_SATELLITE_SECTORS,
|
|
13
|
-
GOES_SATELLITE_CHANNELS,
|
|
14
|
-
GOES_SATELLITE_CHANNEL_LABELS,
|
|
15
|
-
SATELLITE_DURATION_CONFIG,
|
|
16
|
-
TIMELINE_DURATION_MAX_HOURS,
|
|
17
|
-
TIMELINE_DURATION_HOUR_VALUES,
|
|
18
|
-
formatTimelineDurationValue,
|
|
19
|
-
normalizeTimelineDurationValue,
|
|
20
|
-
parseTimelineDurationHours,
|
|
21
|
-
resolveSatelliteDurationOption,
|
|
22
|
-
getDefaultSatelliteDurationOption,
|
|
23
|
-
buildSatelliteTimelineForSelection,
|
|
24
|
-
getAllGoesEastSatelliteSelections,
|
|
25
|
-
calculateUnixTimeFromSatelliteKey,
|
|
26
|
-
resolveSatelliteS3FileName,
|
|
27
|
-
resolveSatelliteSectorLabel,
|
|
28
|
-
} from './satellite_support.js';
|
|
29
|
-
|
|
30
|
-
// Now, export them all so other packages can import them.
|
|
31
|
-
export {
|
|
32
|
-
AguaceroCore,
|
|
33
|
-
EventEmitter,
|
|
34
|
-
THEME_CONFIGS,
|
|
35
|
-
DICTIONARIES,
|
|
36
|
-
DEFAULT_COLORMAPS,
|
|
37
|
-
getUnitConversionFunction
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/** NEXRAD tilt + listing helpers (also importable via subpaths; root re-export fixes Vite/esbuild subpath resolution). */
|
|
41
|
-
export * from './nexradTilts.js';
|
|
42
|
-
export * from './nexradTiltCoalesce.js';
|
|
43
|
-
export * from './nexrad_support.js';
|
|
44
|
-
|
|
45
|
-
/** NWS watches/warnings (NWWS HTTP + SSE, Mapbox-style paint helpers) — shared by mapsgl and React Native. */
|
|
46
|
-
export { NwsWatchesWarningsOverlay, NWS_DEFAULT_LINE_BEFORE_LAYER_ID } from './nws/NwsWatchesWarningsOverlay.js';
|
|
47
|
-
export * from './nws/nwsSdkConstants.js';
|
|
48
|
-
export * from './nws/nwsAlertsSupport.js';
|
|
1
|
+
// In packages/javascript-sdk/src/index.js (The final, correct version)
|
|
2
|
+
|
|
3
|
+
// Import the specific things you want to make public from your package's internal files.
|
|
4
|
+
import { AguaceroCore } from './AguaceroCore.js';
|
|
5
|
+
import { EventEmitter } from './events.js';
|
|
6
|
+
import { THEME_CONFIGS } from './map-styles.js';
|
|
7
|
+
import { DICTIONARIES } from './dictionaries.js';
|
|
8
|
+
import { DEFAULT_COLORMAPS } from './default-colormaps.js';
|
|
9
|
+
import { getUnitConversionFunction } from './unitConversions.js';
|
|
10
|
+
export {
|
|
11
|
+
SATELLITE_FRAMES_URL,
|
|
12
|
+
GOES_EAST_SATELLITE_SECTORS,
|
|
13
|
+
GOES_SATELLITE_CHANNELS,
|
|
14
|
+
GOES_SATELLITE_CHANNEL_LABELS,
|
|
15
|
+
SATELLITE_DURATION_CONFIG,
|
|
16
|
+
TIMELINE_DURATION_MAX_HOURS,
|
|
17
|
+
TIMELINE_DURATION_HOUR_VALUES,
|
|
18
|
+
formatTimelineDurationValue,
|
|
19
|
+
normalizeTimelineDurationValue,
|
|
20
|
+
parseTimelineDurationHours,
|
|
21
|
+
resolveSatelliteDurationOption,
|
|
22
|
+
getDefaultSatelliteDurationOption,
|
|
23
|
+
buildSatelliteTimelineForSelection,
|
|
24
|
+
getAllGoesEastSatelliteSelections,
|
|
25
|
+
calculateUnixTimeFromSatelliteKey,
|
|
26
|
+
resolveSatelliteS3FileName,
|
|
27
|
+
resolveSatelliteSectorLabel,
|
|
28
|
+
} from './satellite_support.js';
|
|
29
|
+
|
|
30
|
+
// Now, export them all so other packages can import them.
|
|
31
|
+
export {
|
|
32
|
+
AguaceroCore,
|
|
33
|
+
EventEmitter,
|
|
34
|
+
THEME_CONFIGS,
|
|
35
|
+
DICTIONARIES,
|
|
36
|
+
DEFAULT_COLORMAPS,
|
|
37
|
+
getUnitConversionFunction
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** NEXRAD tilt + listing helpers (also importable via subpaths; root re-export fixes Vite/esbuild subpath resolution). */
|
|
41
|
+
export * from './nexradTilts.js';
|
|
42
|
+
export * from './nexradTiltCoalesce.js';
|
|
43
|
+
export * from './nexrad_support.js';
|
|
44
|
+
|
|
45
|
+
/** NWS watches/warnings (NWWS HTTP + SSE, Mapbox-style paint helpers) — shared by mapsgl and React Native. */
|
|
46
|
+
export { NwsWatchesWarningsOverlay, NWS_DEFAULT_LINE_BEFORE_LAYER_ID } from './nws/NwsWatchesWarningsOverlay.js';
|
|
47
|
+
export * from './nws/nwsSdkConstants.js';
|
|
48
|
+
export * from './nws/nwsAlertsSupport.js';
|
|
49
49
|
export * from './nws/nwsAlertsFetchSpec.js';
|
package/src/map-styles.js
CHANGED
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
export const defaultLightMapStyles = {
|
|
2
|
-
landOcean: {
|
|
3
|
-
landColor: '#f0f0f0',
|
|
4
|
-
oceanColor: '#a8d8ea',
|
|
5
|
-
waterDepth: {
|
|
6
|
-
visible: true,
|
|
7
|
-
color: '#97c7d9'
|
|
8
|
-
},
|
|
9
|
-
nationalPark: {
|
|
10
|
-
visible: true,
|
|
11
|
-
color: '#d4e6d4',
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
transportation: {
|
|
15
|
-
roads: { visible: true, color: '#d3d3d3', width: 0.7 },
|
|
16
|
-
airports: { visible: true, color: '#d3d3d3', width: 0.7 }
|
|
17
|
-
},
|
|
18
|
-
boundaries: {
|
|
19
|
-
countries: { visible: true, color: '#000000', width: 1.5, lineType: 'solid' },
|
|
20
|
-
states: { visible: true, color: '#000000', width: 1.5, lineType: 'solid' },
|
|
21
|
-
counties: { visible: true, color: '#515151', width: 1.2, lineType: 'solid' }
|
|
22
|
-
},
|
|
23
|
-
waterFeatures: {
|
|
24
|
-
waterways: { visible: true, color: '#a8d8ea', width: 0.7 }
|
|
25
|
-
},
|
|
26
|
-
labels: {
|
|
27
|
-
countries: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 14, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
28
|
-
states: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
29
|
-
cities: {
|
|
30
|
-
major: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
31
|
-
minor: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 }
|
|
32
|
-
},
|
|
33
|
-
airports: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
34
|
-
poi: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
35
|
-
continents: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 16, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1.5 },
|
|
36
|
-
waterLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#0077be', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
37
|
-
naturalLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#2E8B57', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
38
|
-
subdivisionLabels: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 }
|
|
39
|
-
},
|
|
40
|
-
terrain: {
|
|
41
|
-
visible: true,
|
|
42
|
-
intensity: 0.15,
|
|
43
|
-
shadowColor: '#b0b0b0',
|
|
44
|
-
highlightColor: '#ffffff',
|
|
45
|
-
accentColor: '#b0b0b0'
|
|
46
|
-
},
|
|
47
|
-
oceanOnTop: false,
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const defaultDarkMapStyles = {
|
|
51
|
-
landOcean: {
|
|
52
|
-
landColor: '#242424',
|
|
53
|
-
oceanColor: '#252525',
|
|
54
|
-
waterDepth: {
|
|
55
|
-
visible: true,
|
|
56
|
-
color: '#000000'
|
|
57
|
-
},
|
|
58
|
-
nationalPark: {
|
|
59
|
-
visible: true,
|
|
60
|
-
color: '#202020',
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
transportation: {
|
|
64
|
-
roads: { visible: true, color: '#4f4f4f', width: 0.5 },
|
|
65
|
-
airports: { visible: true, color: '#4f4f4f', width: 0.6 }
|
|
66
|
-
},
|
|
67
|
-
boundaries: {
|
|
68
|
-
countries: { visible: true, color: '#ffffff', width: 1.5, lineType: 'solid' },
|
|
69
|
-
states: { visible: true, color: '#ffffff', width: 1.5, lineType: 'solid' },
|
|
70
|
-
counties: { visible: true, color: '#a2a2a2', width: 1.2, lineType: 'solid' }
|
|
71
|
-
},
|
|
72
|
-
waterFeatures: {
|
|
73
|
-
waterways: { visible: true, color: '#333333', width: 0.5 }
|
|
74
|
-
},
|
|
75
|
-
labels: {
|
|
76
|
-
countries: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 14, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
77
|
-
states: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
78
|
-
cities: {
|
|
79
|
-
major: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
80
|
-
minor: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 }
|
|
81
|
-
},
|
|
82
|
-
airports: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
83
|
-
poi: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
84
|
-
continents: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 16, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1.5 },
|
|
85
|
-
waterLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#a8d8ea', outlineColor: '#000000', outlineWidth: 1 },
|
|
86
|
-
naturalLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#90ee90', outlineColor: '#000000', outlineWidth: 1 },
|
|
87
|
-
subdivisionLabels: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 }
|
|
88
|
-
},
|
|
89
|
-
terrain: {
|
|
90
|
-
visible: true,
|
|
91
|
-
intensity: 0.2,
|
|
92
|
-
shadowColor: '#000000',
|
|
93
|
-
highlightColor: '#FFFFFF',
|
|
94
|
-
accentColor: '#000000'
|
|
95
|
-
},
|
|
96
|
-
oceanOnTop: false,
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
export const THEME_CONFIGS = {
|
|
100
|
-
light: defaultLightMapStyles,
|
|
101
|
-
dark: defaultDarkMapStyles,
|
|
1
|
+
export const defaultLightMapStyles = {
|
|
2
|
+
landOcean: {
|
|
3
|
+
landColor: '#f0f0f0',
|
|
4
|
+
oceanColor: '#a8d8ea',
|
|
5
|
+
waterDepth: {
|
|
6
|
+
visible: true,
|
|
7
|
+
color: '#97c7d9'
|
|
8
|
+
},
|
|
9
|
+
nationalPark: {
|
|
10
|
+
visible: true,
|
|
11
|
+
color: '#d4e6d4',
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
transportation: {
|
|
15
|
+
roads: { visible: true, color: '#d3d3d3', width: 0.7 },
|
|
16
|
+
airports: { visible: true, color: '#d3d3d3', width: 0.7 }
|
|
17
|
+
},
|
|
18
|
+
boundaries: {
|
|
19
|
+
countries: { visible: true, color: '#000000', width: 1.5, lineType: 'solid' },
|
|
20
|
+
states: { visible: true, color: '#000000', width: 1.5, lineType: 'solid' },
|
|
21
|
+
counties: { visible: true, color: '#515151', width: 1.2, lineType: 'solid' }
|
|
22
|
+
},
|
|
23
|
+
waterFeatures: {
|
|
24
|
+
waterways: { visible: true, color: '#a8d8ea', width: 0.7 }
|
|
25
|
+
},
|
|
26
|
+
labels: {
|
|
27
|
+
countries: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 14, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
28
|
+
states: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
29
|
+
cities: {
|
|
30
|
+
major: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
31
|
+
minor: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 }
|
|
32
|
+
},
|
|
33
|
+
airports: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
34
|
+
poi: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
35
|
+
continents: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 16, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1.5 },
|
|
36
|
+
waterLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#0077be', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
37
|
+
naturalLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#2E8B57', outlineColor: '#ffffff', outlineWidth: 1 },
|
|
38
|
+
subdivisionLabels: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#000000', outlineColor: '#ffffff', outlineWidth: 1 }
|
|
39
|
+
},
|
|
40
|
+
terrain: {
|
|
41
|
+
visible: true,
|
|
42
|
+
intensity: 0.15,
|
|
43
|
+
shadowColor: '#b0b0b0',
|
|
44
|
+
highlightColor: '#ffffff',
|
|
45
|
+
accentColor: '#b0b0b0'
|
|
46
|
+
},
|
|
47
|
+
oceanOnTop: false,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const defaultDarkMapStyles = {
|
|
51
|
+
landOcean: {
|
|
52
|
+
landColor: '#242424',
|
|
53
|
+
oceanColor: '#252525',
|
|
54
|
+
waterDepth: {
|
|
55
|
+
visible: true,
|
|
56
|
+
color: '#000000'
|
|
57
|
+
},
|
|
58
|
+
nationalPark: {
|
|
59
|
+
visible: true,
|
|
60
|
+
color: '#202020',
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
transportation: {
|
|
64
|
+
roads: { visible: true, color: '#4f4f4f', width: 0.5 },
|
|
65
|
+
airports: { visible: true, color: '#4f4f4f', width: 0.6 }
|
|
66
|
+
},
|
|
67
|
+
boundaries: {
|
|
68
|
+
countries: { visible: true, color: '#ffffff', width: 1.5, lineType: 'solid' },
|
|
69
|
+
states: { visible: true, color: '#ffffff', width: 1.5, lineType: 'solid' },
|
|
70
|
+
counties: { visible: true, color: '#a2a2a2', width: 1.2, lineType: 'solid' }
|
|
71
|
+
},
|
|
72
|
+
waterFeatures: {
|
|
73
|
+
waterways: { visible: true, color: '#333333', width: 0.5 }
|
|
74
|
+
},
|
|
75
|
+
labels: {
|
|
76
|
+
countries: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 14, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
77
|
+
states: { visible: false, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
78
|
+
cities: {
|
|
79
|
+
major: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 12, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
80
|
+
minor: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 }
|
|
81
|
+
},
|
|
82
|
+
airports: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
83
|
+
poi: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 10, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 },
|
|
84
|
+
continents: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 16, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1.5 },
|
|
85
|
+
waterLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#a8d8ea', outlineColor: '#000000', outlineWidth: 1 },
|
|
86
|
+
naturalLabels: { visible: true, fontFamily: 'Open Sans Italic', fontSize: 10, color: '#90ee90', outlineColor: '#000000', outlineWidth: 1 },
|
|
87
|
+
subdivisionLabels: { visible: true, fontFamily: 'Open Sans Regular', fontSize: 11, color: '#ffffff', outlineColor: '#000000', outlineWidth: 1 }
|
|
88
|
+
},
|
|
89
|
+
terrain: {
|
|
90
|
+
visible: true,
|
|
91
|
+
intensity: 0.2,
|
|
92
|
+
shadowColor: '#000000',
|
|
93
|
+
highlightColor: '#FFFFFF',
|
|
94
|
+
accentColor: '#000000'
|
|
95
|
+
},
|
|
96
|
+
oceanOnTop: false,
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const THEME_CONFIGS = {
|
|
100
|
+
light: defaultLightMapStyles,
|
|
101
|
+
dark: defaultDarkMapStyles,
|
|
102
102
|
};
|