@datosgeo-atdt/geo-ui 1.11.13 → 1.12.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
@@ -2,6 +2,19 @@
2
2
 
3
3
  Librería de componentes reutilizables en React para aplicaciones geoespaciales. Incluye visualización de mapas con PMTiles, unión con datos tabulares CSV y estilos temáticos (booleano y Jenks).
4
4
 
5
+ ## Novedades en v1.12.1
6
+
7
+ **Colores personalizados para mapas**: Ahora puedes personalizar completamente los colores de tus mapas con las nuevas props `color` y `colorMunicipios`.
8
+
9
+ - **Modo Boolean**: Define colores para valores verdaderos y falsos
10
+ - **Modo Jenks**:
11
+ - Genera rampas automáticas entre dos colores
12
+ - O especifica colores exactos para cada clase
13
+ - **Municipios**: Colores independientes para drill-down municipal
14
+ - **Retrocompatible**: Si no especificas colores, usa los defaults actuales
15
+
16
+ [Ver ejemplos de colores personalizados](#ejemplo-con-colores-personalizados)
17
+
5
18
  ## Características
6
19
 
7
20
  - **MapaPMTiles**: Componente para renderizar mapas vectoriales usando MapLibre GL y PMTiles
@@ -174,6 +187,109 @@ cvegeo,nombre,valor
174
187
  09010,Álvaro Obregón,175
175
188
  ```
176
189
 
190
+ ### Ejemplo con Colores Personalizados
191
+
192
+ **Nuevo en v1.12.1**: Ahora puedes personalizar los colores de los mapas usando la prop `color`.
193
+
194
+ #### Colores para modo Boolean
195
+
196
+ Especifica dos colores: `[colorFalse, colorTrue]`
197
+
198
+ ```tsx
199
+ // Colores azules en lugar de los defaults
200
+ <MapaPMTiles
201
+ csvUrl="https://example.com/datos.csv"
202
+ mode="boolean"
203
+ color={['#e3f2fd', '#1976d2']} // azul claro para 0, azul oscuro para 1
204
+ />
205
+
206
+ // Colores rojos
207
+ <MapaPMTiles
208
+ csvUrl="https://example.com/datos.csv"
209
+ mode="boolean"
210
+ color={['#ffebee', '#c62828']} // rojo claro para 0, rojo oscuro para 1
211
+ />
212
+ ```
213
+
214
+ #### Colores para modo Jenks - Rampa automática
215
+
216
+ Especifica dos colores y se generará una rampa automáticamente:
217
+
218
+ ```tsx
219
+ // Rampa de naranjas
220
+ <MapaPMTiles
221
+ csvUrl="https://example.com/datos.csv"
222
+ mode="jenks"
223
+ jenksK={5}
224
+ color={['#fff3e0', '#e65100']} // naranja claro a naranja oscuro
225
+ />
226
+
227
+ // Rampa de verdes
228
+ <MapaPMTiles
229
+ csvUrl="https://example.com/datos.csv"
230
+ mode="jenks"
231
+ jenksK={7}
232
+ color={['#e8f5e9', '#1b5e20']} // verde claro a verde oscuro
233
+ />
234
+ ```
235
+
236
+ #### Colores para modo Jenks - Colores exactos por clase
237
+
238
+ Especifica exactamente tantos colores como clases tengas:
239
+
240
+ ```tsx
241
+ // 4 clases = 4 colores exactos
242
+ <MapaPMTiles
243
+ csvUrl="https://example.com/datos.csv"
244
+ mode="jenks"
245
+ jenksK={4}
246
+ color={['#fff9c4', '#ffeb3b', '#fbc02d', '#f57f17']} // amarillos
247
+ />
248
+
249
+ // 3 clases = 3 colores exactos
250
+ <MapaPMTiles
251
+ csvUrl="https://example.com/datos.csv"
252
+ mode="jenks"
253
+ jenksK={3}
254
+ color={['#bbdefb', '#42a5f5', '#0d47a1']} // azules
255
+ />
256
+ ```
257
+
258
+ #### Colores para municipios (drill-down)
259
+
260
+ Usa `colorMunicipios` para colores diferentes en el nivel municipal:
261
+
262
+ ```tsx
263
+ // Entidades con colores verdes, municipios con colores azules
264
+ <MapaPMTiles
265
+ csvUrl="https://example.com/datos_entidades.csv"
266
+ mode="jenks"
267
+ color={['#e8f5e9', '#2e7d32']} // verdes para entidades
268
+
269
+ fitToIds={["09", "15", "14"]}
270
+
271
+ csvUrlMunicipios="https://example.com/datos_municipios.csv"
272
+ modeMunicipios="jenks"
273
+ colorMunicipios={['#e3f2fd', '#1565c0']} // azules para municipios
274
+ />
275
+
276
+ // Boolean para entidades, Jenks con colores custom para municipios
277
+ <MapaPMTiles
278
+ csvUrl="https://example.com/datos_entidades.csv"
279
+ mode="boolean"
280
+ color={['#ffccbc', '#d84315']} // naranjas para boolean
281
+
282
+ fitToIds={["09", "15"]}
283
+
284
+ csvUrlMunicipios="https://example.com/datos_municipios.csv"
285
+ modeMunicipios="jenks"
286
+ jenksK={6}
287
+ colorMunicipios={['#f3e5f5', '#6a1b9a']} // púrpuras para jenks
288
+ />
289
+ ```
290
+
291
+ **Importante**: Si no especificas la prop `color` o `colorMunicipios`, se usan los colores predeterminados (`#f3f3f3` y `#66827f`).
292
+
177
293
  ### Ejemplo con Popup (información al pasar el mouse)
178
294
 
179
295
  Puedes habilitar un popup que se muestra al pasar el mouse sobre las features:
@@ -1035,6 +1151,7 @@ Puedes sobrescribir los estilos usando la clase `className`:
1035
1151
  | `fitToIds` | `string \| string[]` | `undefined` | ID o array de IDs de features para filtrar y hacer zoom automático (sin animación) |
1036
1152
  | `bboxField` | `string` | `"bbox"` | Campo con bbox precalculado en PMTiles |
1037
1153
  | `jenksK` | `number` | `5` | Número de clases para clasificación Jenks |
1154
+ | `color` | `[string, string] \| string[]` | `['#f3f3f3', '#66827f']` | **Nuevo en v1.12.1**: Colores personalizados. Para boolean: `[colorFalse, colorTrue]`. Para jenks: `[colorMin, colorMax]` (rampa) o array exacto de colores por clase |
1038
1155
  | `showMunicipios` | `boolean` | `false` | Activa modo municipal: muestra municipios con datos temáticos y entidad como contorno |
1039
1156
  | `enablePopup` | `boolean` | `false` | Habilita popup con hover para mostrar información |
1040
1157
  | `popupDataLabel` | `string` | `undefined` | Etiqueta para el dato adicional del popup (ej: "Población total") |
@@ -1044,6 +1161,7 @@ Puedes sobrescribir los estilos usando la clase `className`:
1044
1161
  | `joinCsvKeyMunicipios` | `string` | `"cvegeo"` | Campo del CSV municipal para hacer el join (por defecto usa cvegeo de 5 dígitos) |
1045
1162
  | `fieldMunicipios` | `string` | `field` | Campo del CSV municipal con los valores a visualizar (por defecto usa el mismo `field` de entidades) |
1046
1163
  | `modeMunicipios` | `"boolean" \| "jenks"` | `mode` | Modo de estilo para municipios (permite usar diferente clasificación que entidades) |
1164
+ | `colorMunicipios` | `[string, string] \| string[]` | `color` | **Nuevo en v1.12.1**: Colores personalizados para municipios. Mismo formato que `color` (por defecto usa los mismos colores que `color`) |
1047
1165
  | `onFeatureClick` | `(featureId: string, properties: any) => void` | `undefined` | Callback que se ejecuta al hacer click en una feature del mapa. Recibe el ID de la feature y sus propiedades. Solo funciona cuando hay 2 o más entidades en `fitToIds` |
1048
1166
 
1049
1167
  ## Modos de Estilo
@@ -1052,9 +1170,20 @@ Puedes sobrescribir los estilos usando la clase `className`:
1052
1170
 
1053
1171
  Pinta las geometrías en dos colores según el valor:
1054
1172
 
1173
+ **Colores por defecto:**
1055
1174
  - `value === 1` → **#66827f** (verde azulado)
1056
1175
  - `value === 0 / null / undefined` → **#f3f3f3** (gris claro)
1057
1176
 
1177
+ **Colores personalizados** (v1.12.1+):
1178
+ ```tsx
1179
+ <MapaPMTiles
1180
+ mode="boolean"
1181
+ color={['#e3f2fd', '#1976d2']} // [colorFalse, colorTrue]
1182
+ {...otherProps}
1183
+ />
1184
+ ```
1185
+
1186
+ **Sin colores personalizados:**
1058
1187
  ```tsx
1059
1188
  <MapaPMTiles
1060
1189
  mode="boolean"
@@ -1064,11 +1193,33 @@ Pinta las geometrías en dos colores según el valor:
1064
1193
 
1065
1194
  ### Modo Jenks
1066
1195
 
1067
- Clasifica los valores numéricos usando el algoritmo Jenks Natural Breaks y aplica una rampa de colores:
1196
+ Clasifica los valores numéricos usando el algoritmo Jenks Natural Breaks y aplica una rampa de colores.
1068
1197
 
1198
+ **Colores por defecto:**
1069
1199
  - De **#f3f3f3** (gris claro) a **#66827f** (verde azulado)
1070
1200
  - Número de clases controlado por `jenksK` (default: 5)
1071
1201
 
1202
+ **Colores personalizados - Rampa automática** (v1.12.1+):
1203
+ ```tsx
1204
+ <MapaPMTiles
1205
+ mode="jenks"
1206
+ jenksK={5}
1207
+ color={['#fff3e0', '#e65100']} // [colorMin, colorMax]
1208
+ {...otherProps}
1209
+ />
1210
+ ```
1211
+
1212
+ **Colores personalizados - Colores exactos** (v1.12.1+):
1213
+ ```tsx
1214
+ <MapaPMTiles
1215
+ mode="jenks"
1216
+ jenksK={4}
1217
+ color={['#fff9c4', '#ffeb3b', '#fbc02d', '#f57f17']} // 4 colores = 4 clases
1218
+ {...otherProps}
1219
+ />
1220
+ ```
1221
+
1222
+ **Sin colores personalizados:**
1072
1223
  ```tsx
1073
1224
  <MapaPMTiles
1074
1225
  mode="jenks"
@@ -17,6 +17,7 @@ export interface MapaPMTilesProps {
17
17
  fitToIds?: string | string[];
18
18
  bboxField?: string;
19
19
  jenksK?: number;
20
+ color?: [string, string] | string[];
20
21
  showMunicipios?: boolean;
21
22
  enablePopup?: boolean;
22
23
  popupDataLabel?: string;
@@ -26,6 +27,7 @@ export interface MapaPMTilesProps {
26
27
  joinCsvKeyMunicipios?: string;
27
28
  fieldMunicipios?: string;
28
29
  modeMunicipios?: 'boolean' | 'jenks';
30
+ colorMunicipios?: [string, string] | string[];
29
31
  onFeatureClick?: (featureId: string, properties: any) => void;
30
32
  }
31
33
  export declare const MapaPMTiles: React.FC<MapaPMTilesProps>;
@@ -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;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;IAErC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/D;AAmDD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0tBlD,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;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;CAC/D;AAuDD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqwBlD,CAAC"}