¿De verdad importa cómo le pides un mapa a la IA? Hice la prueba: les di el mismo dato, las áreas protegidas de Venezuela (ABRAE), a tres prompts distintos y construí cada resultado en ArcGIS Pro. Esta guía te cuenta cómo escribir un prompt para mapas con ArcGIS Pro y MCP, cómo armé el mapa final paso a paso y qué cambia entre pedir «un mapa bonito» y pedir un mapa con criterio.
- Los 8 ingredientes de un prompt que produce un mapa listo para publicar.
- Cómo se traduce ese prompt en código y herramientas de ArcGIS Pro vía MCP.
- Por qué pedir proyección, jerarquía y cálculos cambia las cifras y no solo el estilo.
¿Qué es un prompt para mapas y por qué importa?
Un prompt para mapas es la instrucción con la que le pides a una IA que construya un mapa en tu software. Con el MCP de ArcGIS Pro, la IA no te da texto: abre tu proyecto, ejecuta herramientas y exporta. Por eso lo que no digas, lo decide ella. Si no hablas de proyección, usa la que trae el mapa; si no hablas de jerarquía, todo pesa igual; si no pides fuente, no hay fuente.
Un prompt completo responde 8 preguntas: qué muestras, con qué datos, qué categorías, qué va al frente, qué estilo y fondo, qué proyección, qué etiquetas y cifras, y cómo cierras el mapa (fuente, CRS, escala y formato).
Quién hizo qué
| Tarea | La IA (MCP de ArcGIS Pro) | Yo |
|---|---|---|
| Datos | Unió las 10 clases de entidad en una sola, reproyectó a Albers y calculó los km² | Elegí las categorías y qué es un «parque» |
| Mapas | Creó los tres mapas, las capas, el orden de dibujo y la simbología | Escribí los tres prompts y la paleta gris y dorado |
| Layout | Armó el layout 16:9, la leyenda, la escala y las etiquetas, y exportó PNG y PDF | Revisé la vista previa y pedí correcciones |
| Revisión | Corrigió proyección, título y posición de la leyenda | Verifiqué cifras, textos y la nota de honestidad |
Paso a paso
Paso 1. Prepara los datos antes de pedir el mapa
Las ABRAE vienen en 10 clases de entidad separadas. Las agrupé en 7 categorías, las reproyecté a ESRI:102033 (Albers Sudamérica, área equivalente) y calculé los km² de cada polígono ya en esa proyección. Repara la geometría antes de disolver: una geometría inválida rompe PairwiseDissolve.
import arcpy
# En la ventana de Python de ArcGIS Pro: aprx = arcpy.mp.ArcGISProject("CURRENT")
base = r"D:\PROY_RETO_MAPAS\DIA_10"
ABRAE = r"E:\ONCC\BD_ONCC\BD_GEO\MINEC_SIGOT\MINEC_SIGOT_File.gdb\ABRAE" + "\\"
ALB = arcpy.SpatialReference(102033) # Albers Sudamérica, área equivalente
fc = arcpy.management.CreateFeatureclass(base + r"\D10.gdb", "ABRAE_D10", "POLYGON", spatial_reference=ALB)[0]
arcpy.management.AddField(fc, "TIPO", "TEXT", field_length=60)
arcpy.management.AddField(fc, "NOMBRE", "TEXT", field_length=400)
arcpy.management.AddField(fc, "KM2", "DOUBLE")
# (categoría, clase de entidad, campo con el nombre)
SRC = [("Parque Nacional", "Parques_Nacionales", "Nb_abrae"),
("Monumento Natural", "Monumento_Naturales", "NB_ABRAE"),
("Zona Protectora", "Zona_Protectoras", "NOMBRE"),
("Reserva Forestal y lote boscoso", "Reserva_Forestal", "NOMBRE"),
("Reserva Forestal y lote boscoso", "Lotes_Boscosos", "NOMBRE"),
("Fauna silvestre", "Reserva_Fauna_Silvestre", "NOMBRE"),
("Fauna silvestre", "Refugio_Fauna_Silvestre", "NOMBRE"),
("Fauna silvestre", "Santuario_Fauna_Silvestre", "NOMBRE"),
("Reserva de Biosfera", "Reserva_Biosfera", "NOMBRE"),
("Reserva Nacional Hidráulica", "Reserva_Nacional_Hidraulica", "NOMBRE")]
with arcpy.da.InsertCursor(fc, ["SHAPE@", "TIPO", "NOMBRE", "KM2"]) as ic:
for tipo, clase, campo in SRC:
with arcpy.da.SearchCursor(ABRAE + clase, ["SHAPE@", campo]) as sc:
for g, nombre in sc:
if g is None:
continue
ga = g.projectAs(ALB) # km² se calculan ya en Albers
ic.insertRow([ga, tipo, (nombre or "").strip()[:390], ga.area / 1e6])
arcpy.management.RepairGeometry(fc, "DELETE_NULL") # antes de disolver
# área sin duplicar solapes (disolver todo y medir)
arcpy.analysis.PairwiseDissolve(fc, base + r"\D10.gdb\dis_all")
union_km2 = sum(r[0].area for r in arcpy.da.SearchCursor(base + r"\D10.gdb\dis_all", ["SHAPE@"])) / 1e6
print(round(union_km2))
Dos cifras salen de aquí: 192 polígonos y la diferencia entre la suma simple (582.803 km²) y el área sin duplicar solapes (431.826 km²). Esa diferencia es el motivo por el que el prompt experto pide «sin duplicar solapes».
Paso 2. Escribe los tres prompts
Usé el mismo dato y solo cambié la instrucción:
La puntuación es una lista de 6 criterios: título claro, leyenda por tipo, jerarquía visual, etiquetas, proyección adecuada y fuente con CRS.
Mapa de [qué muestra] de [zona].
Datos: [capas y campos que ya están en el proyecto].
Categorías: [lista exacta de clases].
Jerarquía: [qué va al frente y qué se atenúa].
Estilo: [paleta, fondo, con o sin imagen base].
Proyección: [CRS y por qué].
Etiquetas: [cuáles y cuántas].
Leyenda y cifras: [qué se calcula y cómo].
Cierre: [fuente, CRS, escala, formato de salida].
Paso 3. Traduce el prompt experto en capas
Cada frase del prompt se vuelve una decisión concreta en ArcGIS Pro: «parques al frente y el resto atenuado» es el orden de dibujo y la transparencia; «sin imagen base» es un mapa sin capa base; «Albers» es la propiedad spatialReference del mapa. Una capa por categoría con una consulta de definición te da control total del orden.
import arcpy
fc = r"D:\PROY_RETO_MAPAS\DIA_10\D10.gdb\ABRAE_D10"
est = r"D:\PROY_RETO_MAPAS\DIA_10\D10.gdb\Estados_D10"
m = aprx.createMap("D10_3", "MAP") # sin imagen base
m.spatialReference = arcpy.SpatialReference(102033) # Albers Sudamérica
def simple(lyr, fill, line, ancho):
s = lyr.symbology
s.updateRenderer("SimpleRenderer")
s.renderer.symbol.color = {"RGB": list(fill)}
s.renderer.symbol.outlineColor = {"RGB": list(line)}
s.renderer.symbol.outlineWidth = ancho
lyr.symbology = s
def capa(nombre, query=None, src=None):
l = m.addDataFromPath(src or fc)
l.name = nombre
if query:
l.definitionQuery = query # una capa por categoría
return l
simple(capa("Estados", None, est), (36, 39, 45, 100), (66, 70, 78, 100), 0.4)
# de abajo hacia arriba: lo atenuado primero, lo importante al final
orden = [("Reserva Nacional Hidráulica", (80, 105, 135, 55), (80, 105, 135, 70), 0.3),
("Zona Protectora", (105, 125, 150, 70), (130, 150, 175, 80), 0.3),
("Reserva Forestal y lote boscoso", (115, 128, 100, 75), (140, 155, 120, 80), 0.3),
("Fauna silvestre", (70, 150, 140, 85), (100, 190, 178, 90), 0.3),
("Monumento Natural", (190, 170, 140, 90), (215, 195, 165, 90), 0.3),
("Parque Nacional", (229, 192, 11, 92), (255, 235, 130, 100), 0.5),
("Reserva de Biosfera", (0, 0, 0, 0), (235, 235, 235, 100), 1.0)]
for tipo, relleno, linea, ancho in orden:
simple(capa(tipo, "TIPO = '%s'" % tipo), relleno, linea, ancho)
Paso 4. Arma el layout y exporta
El layout es 16:9 para LinkedIn. El marco del mapa 3 tiene relación 1,2 y su extensión se fija en metros de Albers, con la leyenda en la esquina vacía. Al final se exporta a PNG y a PDF.
lyt = aprx.createLayout(16, 9, "INCH", "D10_Duelo") # 16:9, listo para LinkedIn
poly = lambda x0, y0, x1, y1: arcpy.Polygon(arcpy.Array(
[arcpy.Point(x0, y0), arcpy.Point(x0, y1), arcpy.Point(x1, y1), arcpy.Point(x1, y0), arcpy.Point(x0, y0)]))
# marco del mapa 3: ancho 5,52", alto 4,6" (relación 1,2)
mf = lyt.createMapFrame(arcpy.Extent(10.08, 1.60, 15.60, 6.20), m, "D10_Mapa3")
mf.camera.setExtent(arcpy.Extent(-1950000, 3450000, 270000, 5300000)) # metros, en ESRI:102033
lyt.exportToPNG(r"D:\PROY_RETO_MAPAS\DIA_10\D10_Duelo.png", resolution=200)
lyt.exportToPDF(r"D:\PROY_RETO_MAPAS\DIA_10\D10_Duelo.pdf", resolution=300)
m.spatialReference a EPSG:3857 antes de crear el marco. Segundo, la leyenda tapaba el suroeste del mapa 3: ajusté la extensión para dejar una esquina libre.
Resultados
| Criterio | Prompt vago | Prompt medio | Prompt experto |
|---|---|---|---|
| Título claro | No | Sí | Sí |
| Leyenda por tipo | No | Sí | Sí, con km² |
| Jerarquía visual | No | No | Sí |
| Etiquetas | No | No | 8 mayores parques |
| Proyección adecuada | No (3857) | No (3857) | Sí (ESRI:102033) |
| Fuente y CRS | No | No | Sí |
| Total | 0/6 | 2/6 | 6/6 |
Lo más útil del experimento es la tercera cifra. Un prompt que no pide «sin duplicar solapes» entrega una leyenda con la suma simple, que sobrestima la superficie protegida en unos 151.000 km². Es un error de contenido, no de estilo.
Límites del experimento
- Es un solo dato y una sola persona escribiendo los prompts; no es un estudio comparativo de modelos.
- Los mapas 1 y 2 son reproducciones ilustrativas, como indiqué arriba.
- Se usaron 7 categorías de ABRAE; no se incluyen zonas de seguridad fronteriza, de interés turístico, de aprovechamiento agrícola ni áreas críticas.
- La capa de estados incluye la Guayana Esequiba y las islas, por eso no calculo el porcentaje del territorio nacional.
Dónde usarlo
El mismo método sirve para cualquier mapa que repitas: informes mensuales, atlas, mapas para clientes o series como esta. Guarda tu prompt experto como plantilla, cambia los datos y obtendrás el mismo diseño en minutos. Si te interesa otro caso con ArcGIS Pro y datos satelitales, mira el mapa de la expansión urbana de Caracas. Para consultar la herramienta usada, revisa la documentación oficial de arcpy.mp.
¿Quieres mapas así para tu proyecto?
Diseñamos mapas y análisis a medida con ArcGIS Pro y QGIS, con la proyección y la jerarquía correctas. La primera asesoría es gratis.
Reclama tu asesoría GRATIS Escríbenos por WhatsAppPreguntas frecuentes
¿Qué es el MCP de ArcGIS Pro y para qué sirve?
Es un puente que deja a una IA (como Claude) usar tu ArcGIS Pro abierto: ejecuta herramientas, crea mapas y layouts y los exporta. Tú decides qué se hace; la IA ejecuta los pasos repetitivos.
¿Cómo escribo un buen prompt para un mapa?
Dile siempre: qué datos, qué categorías, qué va al frente, qué estilo y fondo, qué proyección, qué etiquetas, qué cifras en la leyenda y qué pie lleva. Si dejas un punto sin decir, la IA elige por ti, y ese es el punto que suele fallar.
¿Por qué importa pedir una proyección?
Porque las áreas y las distancias dependen de ella. Para sumar superficies conviene una proyección de área equivalente, como Albers (ESRI:102033). En Web Mercator (EPSG:3857) las áreas se inflan hacia los polos.
¿Por qué la suma de áreas no coincide con el área real?
Porque las categorías se solapan. Las siete categorías suman 582.803 km², pero al disolver los polígonos y quitar los solapes quedan 431.826 km². Si no lo pides en el prompt, la leyenda suele traer la suma simple.
¿Pueden hacer un mapa así para mi proyecto?
Sí. En DALPGIS armamos mapas y análisis a medida con ArcGIS Pro y QGIS. Puedes reclamar una asesoría gratis para contarnos tu caso.
Sigue la serie completa en GeoHacks Insight y entra gratis a la Comunidad DALPGIS.



