Editor de Planos de Planta

Editor visual de planos de planta para definir zonas y slots de almacén — dibujo de polígonos, asignación de zonas, configuración de restricciones y superposiciones de ocupación en tiempo real.

Última actualización: 2025-02-18

Editor de Planos de Planta

El editor de planos de planta proporciona una interfaz visual para definir diseños de almacén. Suba un plano, dibuje límites poligonales para slots, asigne zonas y vea superposiciones de ocupación en tiempo real.

certexi.com/app/whms/floorplan
Loading interactive demo...

Plano de planta con 24 slots poligonales en 3 zonas — haga clic en cualquier slot para inspeccionar ocupación y metadatos.

Cómo Funciona

Loading diagram…

Características del Editor

CaracterísticaDescripción
Carga de imagenSoporte para planos PNG, JPG, SVG hasta 20MB
Dibujo de polígonosClic para colocar vértices, cerrar para completar
Coloración por zonaCodificación automática de colores por asignación de zona
Editor de restriccionesPeso máximo, altura máxima, tipos de activos permitidos por slot
Superposición de ocupaciónVerde (vacío), rojo (ocupado), azul (verificado)
Ajuste a cuadrículaAlineación opcional a cuadrícula para colocación precisa
Deshacer/rehacerHistorial completo de acciones de edición
Multi-pisoSoporte para almacenes de múltiples pisos

Panel de Propiedades de Slot

<Card className="w-72">
  <CardHeader className="pb-2">
    <CardTitle className="text-sm">Propiedades del Slot</CardTitle>
    <CardDescription>A-01-03</CardDescription>
  </CardHeader>
  <CardContent className="space-y-3">
    <div className="space-y-2">
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Zona</span>
        <Badge className="bg-blue-500 text-white text-[10px]">Zona A — Almacenamiento</Badge>
      </div>
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Estado</span>
        <Badge variant="outline">Ocupado</Badge>
      </div>
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Activo</span>
        <span className="font-mono text-xs">PLT-2024-00042</span>
      </div>
    </div>
    <div className="border-t pt-2 space-y-1.5">
      <div className="text-xs font-medium">Restricciones</div>
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Peso máximo</span>
        <span>5,000 kg</span>
      </div>
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Altura máxima</span>
        <span>4.0 m</span>
      </div>
      <div className="flex justify-between text-xs">
        <span className="text-muted-foreground">Tipos permitidos</span>
        <span>Pallet, Caja</span>
      </div>
    </div>
    <div className="flex gap-1 pt-1">
      <Button size="sm" variant="outline" className="flex-1 text-xs h-7">Editar</Button>
      <Button size="sm" variant="outline" className="flex-1 text-xs h-7">Historial</Button>
    </div>
  </CardContent>
</Card>

Sistema de Coordenadas

El plano de planta utiliza coordenadas locales del almacén en lugar de GPS:

PropiedadDescripción
OrigenEsquina superior izquierda de la imagen cargada
UnidadesPíxeles relativos a la imagen
EscalaRelación configurable de metros por píxel
Rotación0 grados = norte (configurable)
ℹ️

¿Por qué no GPS?

Los entornos interiores tienen mala recepción GPS. Las coordenadas locales del almacén funcionan sin conexión, son precisas al píxel y sobreviven reemplazos de la imagen del plano ya que el slot_id estable es la referencia principal.

Formato de Datos de Polígono

El límite de cada slot se almacena como un arreglo JSON de vértices:

{
  "slot_id": "A-01-03",
  "zone": "A",
  "floor_plan_polygon": [
    { "x": 120, "y": 80 },
    { "x": 200, "y": 80 },
    { "x": 200, "y": 160 },
    { "x": 120, "y": 160 }
  ],
  "constraints": {
    "max_weight_kg": 5000,
    "max_height_m": 4.0,
    "allowed_types": ["pallet", "box"]
  }
}

Tipos de Zona

Tipo de ZonaColorUso Típico
AlmacenamientoAzulAlmacenamiento a largo plazo de pallets
EstadíaAmarilloEstadía temporal antes de envío
RecepciónVerdeProcesamiento de mercancía entrante
EnvíoPúrpuraÁrea de despacho de salida
RefrigeradoCianAlmacenamiento con temperatura controlada
Materiales PeligrososRojoMateriales peligrosos (acceso restringido)

Componentes

ComponenteRutaDescripción
FloorPlanCanvas@/components/whms/layout-editor/floor-plan-canvasCanvas del editor basado en Konva
GeoSlotEditor@/components/whms/layout-editor/geo-slot-editorEdición de polígonos de slot
SlotSidebar@/components/whms/layout-editor/slot-sidebarPanel de propiedades
BirdEyeView@/components/whms/BirdEyeViewVista general de solo lectura

Relacionado