@datosgeo-atdt/geo-ui 1.13.2 → 1.13.3

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/README.md CHANGED
@@ -401,6 +401,102 @@ Si tus columnas tienen nombres diferentes, usa `pointsLatColumn` y `pointsLngCol
401
401
 
402
402
  El mapa se ajustará automáticamente para mostrar todos los puntos.
403
403
 
404
+ #### Clasificación de puntos por categorías
405
+
406
+ Clasifica puntos por una columna categórica y asigna colores:
407
+
408
+ ```tsx
409
+ // Estaciones de metro clasificadas por línea
410
+ <MapaPMTiles
411
+ pointsCSVUrl="https://example.com/estaciones_metro.csv"
412
+ pointsClassifyBy="LINEA"
413
+ pointsClassifyMode="categorical"
414
+ pointsColorMapping={{
415
+ "01": "#F54EA2", // Rosa
416
+ "02": "#2E3092", // Azul
417
+ "03": "#AF9800", // Verde
418
+ "04": "#72C6E3", // Cian
419
+ "05": "#FFDE00", // Amarillo
420
+ "06": "#E03C31", // Rojo
421
+ "07": "#F57F29", // Naranja
422
+ "08": "#50B748", // Verde claro
423
+ "09": "#743410", // Café
424
+ "12": "#B09961", // Dorado
425
+ "A": "#9B26AF", // Morado
426
+ "B": "#019E5C", // Verde oscuro
427
+ }}
428
+ pointsSize={4}
429
+ pointsPopupFields={['NOMBRE', 'LINEA']}
430
+ />
431
+ ```
432
+
433
+ **Formato CSV para clasificación:**
434
+ ```csv
435
+ NOMBRE,LINEA,x,y
436
+ Observatorio,01,-99.200616,19.398306
437
+ Tacubaya,01,-99.187117,19.402833
438
+ Juanacatlán,01,-99.183181,19.412222
439
+ ```
440
+
441
+ #### Clasificación de puntos con Jenks
442
+
443
+ Para valores numéricos, usa clasificación Jenks:
444
+
445
+ ```tsx
446
+ // Puntos clasificados por población
447
+ <MapaPMTiles
448
+ pointsCSVUrl="https://example.com/ciudades.csv"
449
+ pointsClassifyBy="poblacion"
450
+ pointsClassifyMode="jenks"
451
+ pointsJenksK={5}
452
+ pointsJenksColors={['#fff7bc', '#d95f0e']} // Rampa de amarillo a naranja
453
+ pointsSize={6}
454
+ pointsPopupFields={['nombre', 'poblacion']}
455
+ />
456
+
457
+ // Con colores exactos por clase
458
+ <MapaPMTiles
459
+ pointsCSVUrl="https://example.com/datos.csv"
460
+ pointsClassifyBy="valor"
461
+ pointsClassifyMode="jenks"
462
+ pointsJenksK={4}
463
+ pointsJenksColors={['#ffffcc', '#a1dab4', '#41b6c4', '#225ea8']}
464
+ pointsSize={5}
465
+ />
466
+ ```
467
+
468
+ #### Filtrado de puntos
469
+
470
+ Muestra solo puntos que cumplan ciertos criterios:
471
+
472
+ ```tsx
473
+ // Mostrar solo estaciones de la Línea 1
474
+ <MapaPMTiles
475
+ csvUrl="https://example.com/datos_entidades.csv"
476
+ field="poblacion"
477
+ mode="boolean"
478
+ pointsCSVUrl="https://example.com/estaciones_metro.csv"
479
+ pointsFilterColumn="LINEA"
480
+ pointsFilterValue="01"
481
+ pointsColor="#F54EA2"
482
+ pointsSize={6}
483
+ />
484
+
485
+ // Mostrar múltiples líneas
486
+ <MapaPMTiles
487
+ pointsCSVUrl="https://example.com/estaciones_metro.csv"
488
+ pointsFilterColumn="LINEA"
489
+ pointsFilterValues={["01", "02", "03"]}
490
+ pointsClassifyBy="LINEA"
491
+ pointsColorMapping={{
492
+ "01": "#F54EA2",
493
+ "02": "#2E3092",
494
+ "03": "#AF9800",
495
+ }}
496
+ pointsSize={5}
497
+ />
498
+ ```
499
+
404
500
  ---
405
501
 
406
502
  ### Popup Interactivo
@@ -673,10 +769,28 @@ Clasifica los valores numéricos usando el algoritmo Jenks Natural Breaks.
673
769
  | `pointsCSVFile` | `File` | `undefined` | Archivo File con coordenadas de puntos |
674
770
  | `pointsLatColumn` | `string` | Auto-detectado | Nombre de la columna de latitud |
675
771
  | `pointsLngColumn` | `string` | Auto-detectado | Nombre de la columna de longitud |
676
- | `pointsColor` | `string` | `#2c3e50` | Color de los puntos |
772
+ | `pointsColor` | `string` | `#2c3e50` | Color de los puntos (ignorado si se usa clasificación) |
677
773
  | `pointsSize` | `number` | `6` | Tamaño de los puntos en píxeles |
678
774
  | `pointsPopupFields` | `string[]` | `undefined` | Campos a mostrar en el popup de puntos |
679
775
 
776
+ ### Props de Clasificación de Puntos
777
+
778
+ | Prop | Tipo | Default | Descripción |
779
+ |------|------|---------|-------------|
780
+ | `pointsClassifyBy` | `string` | `undefined` | Columna por la cual clasificar los puntos |
781
+ | `pointsClassifyMode` | `"categorical" \| "jenks"` | `"categorical"` | Modo de clasificación |
782
+ | `pointsColorMapping` | `Record<string, string>` | `undefined` | Mapeo de valores a colores (modo categorical) |
783
+ | `pointsJenksK` | `number` | `5` | Número de clases para Jenks |
784
+ | `pointsJenksColors` | `string[]` | `undefined` | Colores para Jenks: `[min, max]` o array exacto |
785
+
786
+ ### Props de Filtrado de Puntos
787
+
788
+ | Prop | Tipo | Default | Descripción |
789
+ |------|------|---------|-------------|
790
+ | `pointsFilterColumn` | `string` | `undefined` | Columna por la cual filtrar |
791
+ | `pointsFilterValue` | `string \| number` | `undefined` | Valor específico a filtrar |
792
+ | `pointsFilterValues` | `(string \| number)[]` | `undefined` | Múltiples valores a filtrar |
793
+
680
794
  ---
681
795
 
682
796
  ## Formato CSV
@@ -36,6 +36,14 @@ export interface MapaPMTilesProps {
36
36
  pointsColor?: string;
37
37
  pointsSize?: number;
38
38
  pointsPopupFields?: string[];
39
+ pointsClassifyBy?: string;
40
+ pointsClassifyMode?: 'categorical' | 'jenks';
41
+ pointsColorMapping?: Record<string, string>;
42
+ pointsJenksK?: number;
43
+ pointsJenksColors?: string[];
44
+ pointsFilterColumn?: string;
45
+ pointsFilterValue?: string | number;
46
+ pointsFilterValues?: (string | number)[];
39
47
  }
40
48
  export declare const MapaPMTiles: React.FC<MapaPMTilesProps>;
41
49
  //# sourceMappingURL=MapaPMTiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapaPMTiles.d.ts","sourceRoot":"","sources":["../../src/components/MapaPMTiles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IAE9C,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAE9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA2DD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA25BlD,CAAC"}
1
+ {"version":3,"file":"MapaPMTiles.d.ts","sourceRoot":"","sources":["../../src/components/MapaPMTiles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IAE9C,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAE9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC1C;AA2DD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0+BlD,CAAC"}