Files
MapLibreParticleLab/packages/maplibre-particle-rn

@navsea/maplibre-particle-rn

当前版本:13.4.1-particle.3。Android Native 必须配套 cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.3。本包是 React Native 的薄控制面,不负责 Map 组件、provider、HTTP、manifest、下载、缓存或 NavSea 业务策略。

当前推荐主链:QBIN V4

宿主负责取得并缓存 QBIN 文件,然后只把本地绝对路径或 file:// URI 交给 RN/Native:

await FieldRuntime.attach(reactTag);
await FieldRuntime.submitEncodedField(reactTag, fieldKey, metadata, profileContract, qbinFileUri);
await FieldRuntime.setEncodedColorBinding(reactTag, colorBinding);
await FieldRuntime.setEncodedParticleBinding(reactTag, particleBinding);
await FieldRuntime.setEncodedForecastTime(reactTag, timestampMs);

Android 链路为:FieldRuntime.submitEncodedField → WeatherRuntimeBridgeModule → WeatherRuntime.submitEncodedField → JNI → RasterArraySource::submitEncodedField → QbinV2Decoder::decode。因此 QBIN 解码发生在 MapLibre Native,不在 JS/TS。

V4 主要公共方法:submitEncodedField、setEncodedColorBinding、setEncodedParticleBinding、setEncodedForecastTime、setEncodedForecastPlaybackState、setEncodedForecastPlaybackSpeed、clearEncodedField。ColorBinding 支持 SCALAR、VELOCITY_COMPONENT、DIRECTION_ANGLE;ParticleBinding 支持 U/V vector components 或 direction angle。

V3 canonical 兼容

submitField(metadataJson, FieldPayloadRefs)、clearFields、旧 renderer 参数接口仍保留,用于历史 Consumer/Test Host 对照。新 NavSea 接入不要以 V3 submitField 作为新主链。

Map / Camera

Map 与 Camera 直接从 @maplibre/maplibre-react-native@11.3.6 使用。本包把 MLRN 作为 peer dependency,不转导出 MapLibre React Native。

Android 发布

RN tgz:

https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.4.1-particle.3.tgz

Native Maven repository:

https://pbf.jpcn.ccwu.cc/maven

Native coordinate:

cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.3

Expo plugin 与 android/build.gradle 必须指向同一 .3。正常 Consumer 不复制 AAR、不依赖 MapLibreParticleLab 源码路径,也不以 Maven Local 作为公网验证主路径。完整 Linux 发布与 Win11 验证流程见 docs/50_Step记录/STEP-080_Android_AAR与RNTestHost标准构建流水线_v2.md。