Un mapa interactivo de países visitados permite al viajero seleccionar países en un mapamundi, marcarlos como visitados o previstos, guardar ese estado y volver más adelante. A diferencia de un mapa de viajes con marcadores de ciudades, la geometría principal es la frontera nacional: cada país es un polígono o multipolígono vinculado a un identificador estable y a un estado del usuario. Una implementación sólida también define qué se considera país, documenta la fuente de las fronteras, mantiene seleccionables los países pequeños y separa los datos de viaje del estilo del mapa.
Las secciones siguientes abarcan arquitectura de datos, identificadores nacionales, política de fronteras, renderizado con MapLibre, persistencia, accesibilidad, privacidad, transición a Studio y errores comunes. Encontrarás el contexto del producto en Kaleidr Studio. Para mapas de lugares con marcadores, consulta Cómo crear un mapamundi de viajes con marcadores. Para representar muchos lugares, consulta Representar lugares en un mapa.
Aspectos esenciales de los países visitados
- Polígonos, no marcadores: el seguimiento de países usa fronteras; los recuerdos de ciudades usan puntos.
- Conjuntos de datos separados: la geometría compartida se une al estado personal mediante un ID estable.
- Contar es una política: el denominador de países elegibles es una regla de producto, no un recuento de entidades.
- El estado antes que el estilo: guarda
visited/want_to_visity después elige los colores.- Transición cuidadosa: un rastreador ligero puede conducir a mapas más completos en Studio sin exagerar sus funciones.

¿Qué es un mapa interactivo de países visitados?
Es un mapamundi cuyos países se comportan como objetos geográficos interactivos, no como un fondo estático. Normalmente, los usuarios seleccionan un país, lo marcan como visitado o lo añaden a su lista de deseos, buscan por nombre, ven un total o porcentaje actualizado, guardan el progreso y comparten un resumen general. El modelo básico combina geometría nacional, un ID de país estable y el estado de viaje del usuario. Las decisiones de producto importan: las fronteras son políticamente sensibles, los totales dependen de la política de recuento y el historial detallado de viajes futuros puede ser privado.
| Experiencia | Geometría principal | Ideal para |
|---|---|---|
| Mapa de países visitados | Polígonos nacionales | Seguimiento de países, progreso mundial, listas de deseos |
| Mapa de viajes con marcadores | Puntos | Ciudades, monumentos, hoteles, restaurantes, recuerdos |
| Mapa de rutas | Líneas + puntos | Viajes por carretera, itinerarios, recorridos |
| Mapa de diario de viaje | Puntos + contenido | Notas, fotos, fechas, historias |
Un rastreador de países responde qué países ha visitado una persona. Un mapa con marcadores responde qué lugares concretos ha visitado. Un buen producto de viajes puede admitir ambos sin forzarlos dentro de un único mapa sobrecargado.
¿Cómo deben almacenarse la geometría y el estado de viaje?
La arquitectura más limpia separa los datos geográficos de referencia del estado de viaje personal. Los datos de fronteras contienen identificadores estables, nombres de visualización, geometría Polygon o MultiPolygon, región o continente opcional, versión del conjunto y elegibilidad según la política de recuento. El estado del usuario contiene solo valores propios del viajero, como JP: visited o IS: want_to_visit. El diseño del mapa puede cambiar, pero el historial no debería hacerlo. No codifiques el estado de negocio solo como color: guarda primero el estado semántico y deja que el renderizador decida si se presenta en morado, turquesa, con patrón o contorno.
Los nombres de países son malas claves de base de datos porque varían el idioma, las abreviaturas, la puntuación, las convenciones, los cambios oficiales y la transliteración. ISO 3166 se usa ampliamente para códigos normalizados, y su Agencia de Mantenimiento administra el conjunto asignado (ISO 3166). Documenta qué identificador es la autoridad—ISO alfa-2, alfa-3 o un ID de entidad del proveedor de fronteras—y conserva la correspondencia entre entidades geográficas y estado del usuario.
GeoJSON admite geometrías Polygon y MultiPolygon; RFC 7946 define su estructura y usa posiciones con la longitud en primer lugar (RFC 7946). Muchos países necesitan MultiPolygon porque su territorio incluye islas u otras áreas separadas. Para conocer el orden de coordenadas, consulta Buscar una ubicación con latitud y longitud.

¿Cómo funcionan los conjuntos de fronteras y los recuentos?
Un rastreador necesita una fuente mantenida de geometría nacional. Natural Earth publica datos cartográficos de dominio público a escalas 1:10m, 1:50m y 1:110m, incluidos conjuntos Admin 0; su documentación distingue países, soberanía, unidades cartográficas, subunidades, zonas disputadas y variantes opcionales de perspectiva geográfica (Admin 0 — Countries). Un archivo de fronteras no es una definición universal de todos los países. La lista de Estados miembros de la ONU es una posible referencia, pero un producto de viajes puede tratar de forma distinta los Estados observadores, territorios, dependencias, países constituyentes o entidades disputadas (UN Member States). No trates silenciosamente el número de entidades GeoJSON como el número de países del mundo. Declara la elegibilidad en cada entidad y versiona la política para que los porcentajes sigan siendo explicables.
Las fronteras nacionales pueden representar disputas políticas y perspectivas geográficas diferentes. Un mapa de consumo no debe insinuar que su interfaz las resuelve. Documenta la fuente, la versión del conjunto, la versión de la política y el tratamiento de territorios; añade un aviso neutral, por ejemplo, que las fronteras y recuentos siguen el conjunto geográfico y la política usados por el mapa. No generes fronteras nacionales con un modelo de imágenes o lenguaje: usa datos geoespaciales mantenidos.

¿Cómo se renderiza y actualiza la selección?
Un rastreador sencillo carga GeoJSON en una fuente del mapa, dibuja una capa de relleno, gestiona la selección, actualiza el almacén del usuario, cambia el estilo y refresca el progreso y la lista. MapLibre GL JS puede renderizar polígonos GeoJSON con una capa fill (Añadir un polígono GeoJSON). Prioriza los cambios de estado de la aplicación: alterna el estado, persístelo, actualiza el estilo de la entidad afectada y recalcula las estadísticas. Evita reconstruir todo el conjunto tras cada clic. Admite más de un estado binario cuando haga falta: visitado, por visitar y no visitado cubren la mayoría de necesidades.
import maplibregl from "maplibre-gl";
const visited = new Set(["JPN", "FRA", "CAN"]);
const map = new maplibregl.Map({
container: "map",
style: "https://demotiles.maplibre.org/style.json",
center: [10, 20],
zoom: 1.2
});
map.on("load", async () => {
const countries = await (await fetch("/data/countries.geojson")).json();
countries.features = countries.features.map((feature) => ({
...feature,
properties: {
...feature.properties,
visit_status: visited.has(feature.properties.iso_a3)
? "visited"
: "not_visited"
}
}));
map.addSource("countries", { type: "geojson", data: countries });
map.addLayer({
id: "countries-fill",
type: "fill",
source: "countries",
paint: {
"fill-color": [
"match",
["get", "visit_status"],
"visited", "#6f5bd3",
"want_to_visit", "#72c4c9",
"#d8d8d8"
],
"fill-opacity": 0.65
}
});
});
Confirma el esquema real de propiedades del conjunto elegido antes de implementar. Usa colores accesibles de tu sistema de diseño, no los valores ilustrativos anteriores.
¿Cómo deben funcionar la persistencia, accesibilidad y privacidad?
Las experiencias anónimas pueden guardar selecciones en el estado local y el almacenamiento del navegador del mismo dispositivo. Las experiencias con sesión iniciada sincronizan un perfil autorizado en el backend entre dispositivos. El renderizador muestra el estado; no debe convertirse en el sistema de identidad o persistencia. Versiona los metadatos de política geográfica junto con los perfiles para que futuras actualizaciones no reescriban silenciosamente el progreso histórico.
Añade una lista de países con búsqueda sincronizada con el mapa para que los países pequeños sigan siendo seleccionables en móvil. Ofrece controles por teclado, foco visible y un estado que no dependa solo del color. Prefiere instantáneas generales—recuentos y conjuntos públicos de países—antes que exportar por defecto fechas exactas, hoteles, rutas, ubicación actual o planes futuros. Trata la lista de deseos y los viajes previstos como información sensible; no publiques destinos futuros salvo elección explícita.
La IA puede organizar categorías, sugerir capas urbanas más densas tras seleccionar un país o refinar el estilo, pero las selecciones del usuario siguen siendo el historial autorizado. No inventes países visitados a partir del conocimiento del modelo.
¿Qué papel tiene Kaleidr Studio?
Un rastreador ligero puede satisfacer primero la intención de búsqueda y después conducir a una creación más rica. Kaleidr Studio permite actualmente crear mapas interactivos personalizados a partir de indicaciones, con mapas basados en datos, regiones temáticas, marcadores, capas, estilo visual, publicación e inserción. La página pública no documenta hoy un rastreador específico con persistencia automática por usuario, contador integrado o modo concreto de alternancia visitado/lista de deseos; no describas esas capacidades como funciones actuales hasta que estén implementadas y documentadas. El recorrido recomendado es: rastreador interactivo → guardar o compartir → convertir en un mapa de viajes más rico → refinar y publicar en Studio. Usa geometría mundial generalizada para mejorar el rendimiento, mantén pequeñas las cargas del estado y carga detalle urbano solo cuando se solicite.
![]()
¿Qué errores deben evitar los equipos?
| Error | Qué sucede | Mejor enfoque |
|---|---|---|
| Usar nombres como clave principal | La localización rompe el estado | Usar identificadores estables |
| Tratar el color como dato de viaje | Los temas rompen la lógica | Guardar el estado semántico aparte |
| Contar entidades GeoJSON como países | Los territorios distorsionan totales | Definir una política de elegibilidad |
| Fijar un total universal | Las suposiciones quedan ocultas | Publicar la política de recuento |
| Ignorar la perspectiva fronteriza | El mapa parece políticamente autoritativo | Documentar fuente y política |
| Usar marcadores en vez de polígonos | No se satisface la intención nacional | Hacer interactivas las áreas |
| Impedir seleccionar países pequeños | Sufren móvil y accesibilidad | Añadir búsqueda y lista sincronizada |
| Exigir registro antes del primer clic | Aumenta la fricción | Permitir primero estado local cuando proceda |
| Compartir por defecto el historial exacto | Aumenta el riesgo de privacidad | Compartir solo el estado general previsto |
| Usar IA como verdad del historial | Puede inventarse el estado | Mantener autoritativas las selecciones |
Veredicto final
Un mapa interactivo de países visitados solo es técnicamente sencillo si el producto ignora las decisiones que lo hacen fiable. La implementación básica combina fronteras, ID estables, estado del usuario, una capa de relleno interactiva y progreso guardado. Las preguntas difíciles son de producto: qué cuenta como país, qué conjunto sigue el mapa, cómo trata territorios y áreas disputadas, si el estado persiste entre dispositivos, qué se comparte y si el mapa nacional puede evolucionar a uno más rico de lugares. La mejor experiencia comienza con la tarea buscada: hacer clic en países y ver la actualización inmediata. Después puede llegar la creación avanzada mediante Kaleidr Studio cuando se necesiten lugares, regiones, capas, estilo y publicación más allá del progreso nacional.
Crea un mapa de viajes más completo con Kaleidr Studio
Convierte países, ciudades, lugares e ideas de viaje en un mapa interactivo personalizable. Empieza a crear en Kaleidr Studio cuando quieras pasar de seleccionar países a elaborar mapas de viaje más ricos.
Preguntas frecuentes
¿Qué es un mapa interactivo de países visitados?
Es un mapamundi que permite seleccionar países y guardar su estado, normalmente como visitado, por visitar o no visitado.
¿En qué se diferencia de un mapa con marcadores?
El primero resalta fronteras nacionales. El segundo señala ciudades, monumentos, hoteles, restaurantes u otros lugares concretos.
¿Qué datos cartográficos necesito?
Geometría de fronteras—normalmente entidades Polygon o MultiPolygon—, identificadores estables y un registro separado del estado del usuario.
¿Puedo usar GeoJSON para las fronteras?
Sí. GeoJSON admite Polygon y MultiPolygon y se usa ampliamente en cartografía web.
¿Qué código de país debo guardar?
ISO 3166 alfa-2 o alfa-3 son opciones habituales. Usa identificadores estables de forma coherente y documenta cómo se vinculan al conjunto de fronteras.
¿Cuántos países debe contar el mapa?
No existe un único denominador obligatorio. Define si cuenta solo un conjunto de referencia, también Estados observadores, territorios u otra política documentada.
¿Por qué algunas aplicaciones muestran totales distintos?
Pueden usar definiciones, conjuntos de fronteras o tratamientos de territorios y áreas disputadas diferentes.
¿Cómo deben tratarse las fronteras disputadas?
Usa un conjunto geográfico mantenido, documenta su perspectiva o política y evita insinuar que la aplicación resuelve disputas políticas.
¿Puede funcionar sin una cuenta?
Sí. El almacenamiento local conserva selecciones en el mismo dispositivo. Una cuenta ayuda a sincronizar, respaldar o compartir de forma duradera.
¿Puede Kaleidr Studio crear mapas de viajes?
Sí. Actualmente admite creación a partir de indicaciones con regiones temáticas, marcadores, capas, estilo visual, publicación e inserción. La página pública no documenta un contador específico por usuario ni un rastreador de alternancia de países.
Referencias
- Organización Internacional de Normalización. ISO 3166 — Códigos de países. Consultado el 16 de agosto de 2026. https://www.iso.org/iso-3166-country-codes.html
- Internet Engineering Task Force. RFC 7946: El formato GeoJSON. 2016. https://datatracker.ietf.org/doc/html/rfc7946
- Kaleidr. Crea mapas personalizados con un creador de mapas con IA. Consultado el 16 de agosto de 2026. https://kaleidr.com/studio
- Kaleidr. Desarrolla con Kaleidr. Documentación para desarrolladores. Consultado el 16 de agosto de 2026. https://docs.kaleidr.com/
- MapLibre. Añadir un polígono GeoJSON. Documentación de MapLibre GL JS. Consultado el 16 de agosto de 2026. https://maplibre.org/maplibre-gl-js/docs/examples/add-a-geojson-polygon/
- Natural Earth. Admin 0 — Countries. Versión 5.1.1. Consultado el 16 de agosto de 2026. https://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-admin-0-countries/
- Naciones Unidas. Estados miembros. Consultado el 16 de agosto de 2026. https://www.un.org/en/about-us/member-states
@misc{iso_3166_country_codes,
title = {ISO 3166 -- Country Codes},
author = {{International Organization for Standardization}},
note = {Accessed 16 August 2026},
url = {https://www.iso.org/iso-3166-country-codes.html}
}
@misc{rfc7946,
title = {RFC 7946: The GeoJSON Format},
author = {Butler, Howard and Daly, Martin and Doyle, Allan and Gillies, Sean and Hagen, Stefan and Schaub, Tim},
year = {2016},
publisher = {Internet Engineering Task Force},
url = {https://datatracker.ietf.org/doc/html/rfc7946}
}
@misc{natural_earth_admin0,
title = {Admin 0 -- Countries},
author = {{Natural Earth}},
note = {Version 5.1.1; accessed 16 August 2026},
url = {https://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-admin-0-countries/}
}
@misc{un_member_states,
title = {Member States},
author = {{United Nations}},
note = {Accessed 16 August 2026},
url = {https://www.un.org/en/about-us/member-states}
}
@misc{maplibre_geojson_polygon,
title = {Add a GeoJSON Polygon},
author = {{MapLibre}},
note = {MapLibre GL JS documentation; accessed 16 August 2026},
url = {https://maplibre.org/maplibre-gl-js/docs/examples/add-a-geojson-polygon/}
}
@misc{kaleidr_studio_2026_08_16,
title = {Create Custom Maps with AI Map Maker},
author = {{Kaleidr}},
note = {Accessed 16 August 2026},
url = {https://kaleidr.com/studio}
}
@misc{kaleidr_docs_2026_08_16,
title = {Build with Kaleidr},
author = {{Kaleidr}},
note = {Developer documentation; accessed 16 August 2026},
url = {https://docs.kaleidr.com/}
}