New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

geekplus-map3d

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geekplus-map3d

Library for 3D map

latest
npmnpm
Version
2.3.0-beta.5
Version published
Maintainers
1
Created
Source

Geekplus-Map3d 极智嘉 3d 模拟器

基于 THREEJS 的物流公司 3D 模拟仓库

在线演示

 cd demos && npm i
 npm run dev

使用说明

npm i three@0.160.0 -S npm i geekplus-map3d -S

import { GeekMap3d, RENDER_MODEL_TYPE } from "geekplus-map3d";

const GeekSim = new GeekMap3d({ dom: HTMLElement });

// model path: http://gitlab.geekplus.cc/geekplus-fed-components/geekplus-web-model.git
....
await GeekSimMap.registerModel(config: LoaderConfigs)
....
// init Map and frame
GeekSimMap.renderInitMap(floors: FloorsData );
GeekSimMap.renderInitFrame(frame: renderDisplayConfig );

// update frame
GeekSimMap.renderUpdateFram(frame: renderDisplayConfig)
/* 包裹Map-canvas的节点 */
.map-box{
  ....
  position: relative;
  overflow: hidden;
  width: 100%;
  ....
}

示例代码

示例代码

数据源来源: 直接修改 wsPath,或者使用 mock_serve@王政;

常用 API

方法名说明类型可选值默认值
registerModel注册模型(config: LoaderConfigs):Promise<void>
renderInitMap渲染 Map 地图(floorsData: FloorsData):Promise<any>
renderInitFrame渲染初始化帧(data: renderDisplayConfig):Promise<any>
renderUpdateFrame渲染更新帧(data: renderDisplayConfig):void
renderUpdateInterpolateFrame插帧更新(即使 data 为 null,也按照 duration 时间返回)(data: renderDisplayConfig,duration?: number):Promise<void>1000ms
clearMap清除地图(floorId?: string):void
clearFrame清楚渲染帧(floorId?: string, layer?: string):void
resetView重置初始化视角():void
setViewFromFloor设置视角(floorId?: string, direction: ("lb" | "lt" | "rt" | "rb" | "ct" | "cb"), theta: number):void(1, 'lb', 30)
destory销毁对象():void
resizedom resize 以后重置视窗():void
pause暂停渲染():void
start开始渲染():void
openHotMap打开热力图():void
closeHotMap关闭热力图():void
openRSPTaskBox打开 RSP 场景中的任务货箱(floorId?: string, status:("TASK" | "STATIONTASK")[] | null):void["TASK", "STATIONTASK"]
resetRSPBox恢复 RSP 场景中的货箱正常状态(floorId?:string):void["TASK", "STATIONTASK"]
openPPTaskBox打开 PP 场景中的任务货箱(floorId?: string, status:("TASK")[] | null):void["TASK"]
resetPPBox恢复 PP 场景中的货箱正常状态(floorId?:string):void
openRSPBoxLayer指定显示 RSP 场景中货箱楼层(floorId?: string, layer: string | string[]):void
resetRSPBoxLayer恢复 RSP 场景中所有货箱楼层(floorId?:string):void
birdsEyeView打开地图俯视角():void
closeCell关闭单元格 Layer(依赖有 Cell 渲染数据)(floorId: string):void
showCell打开单元格 Layer(依赖有 Cell 渲染数据)(floorId: string):void
openRSPLayer打开 RSP 场景货位(floorId: string):void
closeRSPLayer关闭 RSP 场景货位(floorId: string):void
openPPStationAnimal打开 PP 工作站取还箱动画(floorId: string):void
closePPStationAnimal打开 PP 工作站取还箱动画(floorId: string):void
closePPStationAnimal打开 PP 工作站取还箱动画(floorId: string):void
queryNode查询 Node 节点(floorId: string, layer: string, id:string):Node

常用插件

MaskPlugin

方法名说明类型可选值默认值
constructor实例化对象(map3d: Map3d, config?: MaskPluginsConfig):void
setTargetByNode设置显示标签的 Node(node: Node, config?: SetMaskTargetConfig):MaskPlugin
setTargetByLayer根据层设置显示标签的 Node(floorId: string, layerName: string, config?: SetMaskTargetConfig):MaskPlugin
show显示 Node 对应的标签(node: Node):void
hide隐藏 Node 对应的标签(hide: Node):void
showAll显示设置所有 Node 对应的标签():void
getMaskNode获取 MaskNode 节点(node: Node):MaskNode
hideAll隐藏所有 Node 对应的标签():void
render渲染设置的 Node 对应的标签(node: Node):void
renderAll隐藏设置的所有 Node 对应的标签():void
clear删除 Node 对应的标签(node: Node):void
clearAll删除所有 Node 对应的标签():void
destroy销毁 MaskPlugin 对象():void
resize视口变化需要调用():void

SelectPlugin

方法名说明类型可选值默认值
constructor实例化对象(map3d: Map3d):void
getSelectNodes获取当前选择的节点():void
start开启 Click 监听():void
stop停止 Select 监听():void
select选择元素(node:Node):void
multiSelect选择多个 Node(node:Node[]):void
clear清除选择状态(keepHalf:boolean):voidfalse
destroy销毁 SelectPlugin 对象():void

TaskPlugin

方法名说明类型可选值默认值
constructor实例化对象(map3d: Map3d):void
start开启 RSP|PP 场景任务货箱():void
stop关闭():void
destroy销毁 TaskPlugin 对象():void

RobotPathPlugin

方法名说明类型可选值默认值
constructor实例化对象(map3d: Map3d):void
drawPath绘制线路(path: number[][], floorId?: string):void
show显示路线():void
hide隐藏路线():void
destroy销毁 RobotPathPlugin 对象():void

ExceptionPlugin

方法名说明类型可选值默认值
constructor实例化对象(map3d: Map3d):void
setTarget设置异常数据(data: ExceptionData):this
getNodes获取异常 NODE():BaseNode
clear清除展示模型():void
destroy销毁 ExceptionPlugin():void

ts 类型

更详细 ts 见 geekplus-map3d 包

type LoaderConfigs = LoaderConfig<THREE.BufferGeometry | THREE.Object3D | THREE.Mesh>[]

type LoaderConfig<T> = {
  model: string | (() => Promise<T>)
  name: string | (() => string)
  formatter?: <T>(mesh: T) => T
}

type FloorsData = {
  [floorId: floorId]: FloorData
}

type FloorData = {
  floorId: string | number
  background: FloorBackground
  cells: CellData[]
  leftDownPoint?: Coordinate3D
  leftUpPoint?: Coordinate3D
  rightDownPoint?: Coordinate3D
  rightUpPoint?: Coordinate3D
  [propName: string]: any
}

type FloorBackground = {
  width: number
  height: number
  resolution: number
  hasBg: boolean
  leftBottomPoint: { x: number; y: number; z: number }
  data: Array<any>
  // 扩展属性,仿真和RMS地板颜色可能不相同
  backgroundColor: string
}

type SetMaskTargetConfig = {
  uuid: string | ((data: any) => string)
  text: string | ((data: any) => string)
  render?: RenderTagContent
}

export type renderDisplayConfig = {
  shelves?: { [floorId: string]: { [shelfCode: string]: ShelfData } }
  robots?: { [floorId: string]: { [robotId: string]: RobotData } }
  stations?: { [floorId: string]: { [stationCode: string]: StationData } }
}

FAQs

Package last updated on 07 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts