@datosgeo-atdt/geo-ui 0.7.0 → 0.9.1

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
@@ -214,6 +214,120 @@ Puedes habilitar un popup que se muestra al pasar el mouse sobre las features:
214
214
  - **Datos adicionales**: Si especificas `popupDataLabel` y `popupDataField`, muestra el valor del CSV
215
215
  - Los números se formatean automáticamente con comas (ej: 1,234,567)
216
216
 
217
+ ### Ejemplo con Interactividad (click para drill-down)
218
+
219
+ Cuando especificas **2 o más entidades** en `fitToIds`, el mapa se vuelve interactivo automáticamente:
220
+
221
+ ```tsx
222
+ // Vista inicial: 3 entidades con visualización jenks
223
+ <MapaPMTiles
224
+ csvUrl="https://example.com/datos.csv"
225
+ fitToIds={["09", "15", "14"]}
226
+ mode="jenks"
227
+ />
228
+ ```
229
+
230
+ **Comportamiento interactivo:**
231
+ 1. **Vista inicial**: Muestra las 3 entidades con relleno (jenks/boolean)
232
+ 2. **Click en una entidad**:
233
+ - Hace zoom hacia esa entidad
234
+ - Cambia automáticamente a vista municipal
235
+ - Muestra municipios con relleno clasificado
236
+ - La entidad se muestra solo como contorno
237
+ 3. **Volver atrás**:
238
+ - Presiona `ESC`
239
+ - O haz doble click en el mapa
240
+
241
+ **Ejemplo completo con todas las features:**
242
+ ```tsx
243
+ <MapaPMTiles
244
+ csvUrl="https://example.com/datos.csv"
245
+ fitToIds={["09", "15", "14"]}
246
+ mode="jenks"
247
+ jenksK={5}
248
+ enablePopup={true}
249
+ popupDataLabel="Población"
250
+ popupDataField="poblacion"
251
+ />
252
+ ```
253
+
254
+ Esto crea una experiencia de exploración completa:
255
+ - Vista general de 3 entidades
256
+ - Click para explorar municipios
257
+ - Popup con información al pasar el mouse
258
+ - Clasificación jenks en ambos niveles
259
+
260
+ ### Ejemplo con CSV dual (entidades y municipios con datos diferentes)
261
+
262
+ Puedes usar **fuentes de datos separadas** para entidades y municipios. Cuando el usuario hace click en una entidad, los municipios se visualizarán con el CSV municipal:
263
+
264
+ ```tsx
265
+ // Vista inicial: entidades con datos de población total
266
+ // Después del click: municipios con datos de densidad poblacional
267
+ <MapaPMTiles
268
+ // CSV para entidades (vista inicial)
269
+ csvUrl="https://example.com/datos_entidades.csv"
270
+ field="poblacion_total"
271
+
272
+ // CSV para municipios (después del click)
273
+ csvUrlMunicipios="https://example.com/datos_municipios.csv"
274
+ fieldMunicipios="densidad"
275
+
276
+ fitToIds={["09", "15", "14"]}
277
+ mode="jenks"
278
+ jenksK={5}
279
+ />
280
+ ```
281
+
282
+ **Ejemplo con archivo local para municipios:**
283
+ ```tsx
284
+ <MapaPMTiles
285
+ csvUrl="https://example.com/datos_entidades.csv"
286
+ field="valor"
287
+
288
+ csvFileMunicipios={archivoMunicipios}
289
+ fieldMunicipios="otro_campo"
290
+
291
+ fitToIds={["09", "15"]}
292
+ mode="boolean"
293
+ />
294
+ ```
295
+
296
+ **¿Cómo funciona?**
297
+ 1. **Vista inicial**: Muestra las entidades coloreadas según el CSV de entidades
298
+ 2. **Click en una entidad**:
299
+ - Si especificaste `csvUrlMunicipios` o `csvFileMunicipios`, carga ese CSV
300
+ - Recalcula la clasificación Jenks con los datos municipales
301
+ - Aplica los nuevos colores a los municipios
302
+ - **Actualiza automáticamente el popup** para mostrar datos del CSV municipal
303
+ 3. **Ventajas**:
304
+ - Diferentes métricas para diferentes niveles (ej: totales en entidades, densidades en municipios)
305
+ - Archivos CSV más pequeños y específicos para cada nivel
306
+ - Mayor flexibilidad en la visualización de datos
307
+ - Los popups se actualizan automáticamente según el nivel visualizado
308
+
309
+ **Ejemplo completo con popup y CSV dual:**
310
+ ```tsx
311
+ <MapaPMTiles
312
+ // Vista inicial: entidades
313
+ csvUrl="https://example.com/datos_entidades.csv"
314
+ field="poblacion_total"
315
+
316
+ // Drill-down: municipios
317
+ csvUrlMunicipios="https://example.com/datos_municipios.csv"
318
+ fieldMunicipios="densidad"
319
+
320
+ fitToIds={["09", "15", "14"]}
321
+ mode="jenks"
322
+ jenksK={5}
323
+
324
+ // Popup se adapta automáticamente
325
+ enablePopup={true}
326
+ popupDataLabel="Valor"
327
+ popupDataField="poblacion_total" // En entidades muestra población_total, en municipios muestra densidad
328
+ />
329
+ ```
330
+
217
331
  ## Props
218
332
 
219
333
  ### Props Obligatorias
@@ -244,6 +358,10 @@ Puedes habilitar un popup que se muestra al pasar el mouse sobre las features:
244
358
  | `enablePopup` | `boolean` | `false` | Habilita popup con hover para mostrar información |
245
359
  | `popupDataLabel` | `string` | `undefined` | Etiqueta para el dato adicional del popup (ej: "Población total") |
246
360
  | `popupDataField` | `string` | `undefined` | Campo del CSV para mostrar en el popup (usa el valor de `field` si no se especifica) |
361
+ | `csvUrlMunicipios` | `string` | `undefined` | URL del CSV remoto para municipios (usado cuando hay drill-down interactivo) |
362
+ | `csvFileMunicipios` | `File` | `undefined` | Archivo File local para municipios (usado cuando hay drill-down interactivo) |
363
+ | `joinCsvKeyMunicipios` | `string` | `"cvegeo"` | Campo del CSV municipal para hacer el join (por defecto usa cvegeo de 5 dígitos) |
364
+ | `fieldMunicipios` | `string` | `field` | Campo del CSV municipal con los valores a visualizar (por defecto usa el mismo `field` de entidades) |
247
365
 
248
366
  ## Modos de Estilo
249
367
 
@@ -21,6 +21,10 @@ export interface MapaPMTilesProps {
21
21
  enablePopup?: boolean;
22
22
  popupDataLabel?: string;
23
23
  popupDataField?: string;
24
+ csvUrlMunicipios?: string;
25
+ csvFileMunicipios?: File;
26
+ joinCsvKeyMunicipios?: string;
27
+ fieldMunicipios?: string;
24
28
  }
25
29
  export declare const MapaPMTiles: React.FC<MapaPMTilesProps>;
26
30
  //# 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;AAM3D,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;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAmDD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6ZlD,CAAC"}
1
+ {"version":3,"file":"MapaPMTiles.d.ts","sourceRoot":"","sources":["../../src/components/MapaPMTiles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,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;IAChB,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;CAC1B;AAmDD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4pBlD,CAAC"}