Qué mejorar en el mapa

4 de septiembre de 2026 · whatsincabo.com/map/ · 10 lentes independientes, 3 refutadores por hallazgo · nada se ha tocado todavía

Lo más valioso salió de un diff: el mapa llevaba dos semanas sin los arreglos de julio. Hoy están de vuelta con cuarenta y ocho más: las 19 playas que estaban tierra adentro ya están en la arena, ninguna muestra la foto de otra, el aeropuerto existe, My Trip se abre como ruta, el terreno pesa la mitad, y en el teléfono el mapa respira: tres rondas con Iván y las tres en producción.

30defectos que arreglo sin preguntarte
2cambios que necesitan tu sí o no
1funciones nuevas para elegir
0hallazgos refutados y descartados

⚠ Lo que necesita tu decisión

Cambian lo que el mapa hace o dice. Toca un botón en cada uno; se guarda en tu teléfono.

H20b●●●○○esfuerzo S—

Cinco playas quedan sin foto: ¿mandas fotos propias o se quedan así?

Buenos Aires, Río Caracol, Cabo Real, La Laguna y La Concha. La alternativa (volver a la foto de la playa vecina) está a un paso porque la anterior sigue guardada.

Hoy salen sin imagen en ficha, mapa y hub.

¿Tienes o puedes conseguir una foto real de cada una? Si no, ¿las dejamos sin foto o prefieres la de la playa vecina con una nota que lo diga?

H03c●●○○○esfuerzo S—

Seis pines con confianza media o baja: ¿los confirma alguien que los conoce?

Buenos Aires, Río Caracol, Fig Tree y El Cajoncito se pusieron en la costa más cercana al pin original (sin fuente externa). Km 87 y Km 92 salen de medir la carretera 19 desde el poste km 65 de OpenStreetMap (±1 km).

Los 14 puntos nuevos vistos en satélite: todos caen en arena.

¿Tú o Jonathan pueden mirar esos seis en el mapa y decir «sí» o mover el pin? Con eso quedan al nivel de los otros.

Funciones nuevas, en el orden que yo las haría

Ordenadas por demanda medida × esfuerzo. Elige las que quieras; el orden es mi recomendación.

#1 · P3●●●●○esfuerzo S

El buscador no entiende intenciones ni las leyendas llevan a ninguna parte

«snorkel», «surf», «swim», «kids» dan 0 resultados; las 54 leyendas son callejón sin salida.

Medido por el lente de producto.

Buscar por categoría/etiqueta/sunset y enlazar cada leyenda a su página.

Defectos que arreglo sin preguntarte

No cambian ninguna decisión tuya. Los listo para que sepas qué va a cambiar.

H71●●●●○esfuerzo M—

El mapa más limpio en el teléfono (tres rondas con Iván, en producción)

«Se ve muy sucio… en móvil especialmente». Había 17 botones y pastillas flotando, 15 animales y 46 manchas de color en la vista general, y la cabecera con el buscador se comían hasta el 27 % de la pantalla.

Medido en iPhone SE, iPhone 14 y Android chico, antes y después: flotantes 17→15 (Install se queda, la brújula solo si el mapa gira), animales 15→6, manchas 46→0, mapa libre entre buscador y chips 56–65 % → 69–75 %. En computadora y en horizontal no cambia nada (verificado).

Jerarquía por transparencia (propuesta de Iván): sólido lo que se toca siempre (Tour, chips, My Trip); translúcido buscador, herramientas, hora dorada e Install, sólidos al tocar. Toda la banda inferior al borde y el ⓘ de créditos arriba a la izquierda. Fauna por capas y manchas solo al acercarse. Comparativa: /partners-deck/mapa-limpio-2026-09-04/.

H53●●●●○esfuerzo M—

Los 100 restaurantes: confirmados uno por uno y con ficha que dice quién es cada uno

Iván: «confirmar que todo sale su foto y hay botón a la página del restaurante en What’s in Cabo». La ficha decía «Restaurant · Los Cabos» para los 100 y el buscador solo encontraba por nombre.

100 de 100 con foto cargada y botón a su página, abiertos uno por uno en el mapa en producción. Ficha con cocina · precio, pueblo, frase propia; buscador por cocina/pueblo/frase («sushi», «rooftop», «Todos Santos»); 4 leyendas unidas a su restaurante; El Farallón 584 m a su sitio; 2 parejas de pines separadas; 4 fotos y 5 nombres corregidos. /partners-deck/mapa-restaurantes-2026-09-04/.

Datos nuevos en el geojson (c, pr, tw, tl) generados desde la base; nada a mano.

H02●●●●●esfuerzo M3/3

Se recuperaron los 19 arreglos de julio que producción había perdido desde el 19-ago

El mapa del 19-ago se construyó sobre la copia anterior a la auditoría de julio: 11 bugs corregidos volvieron sin que nadie lo notara.

Diff: 77 líneas contra la copia vieja, 528 contra la desplegada; marcadores applyChips 6→0, abortar tour 5→0. Confirmado por 3 refutadores.

Fusión a tres vías + guardia de linaje en el build (aborta si faltan los arreglos).

H01●●●○○esfuerzo S3/3

El sello decía «Reviewed» cuando nadie revisa: es la hora del cron

Una palabra que promete revisión humana sobre un proceso automático.

Sello en vivo: «REVIEWED SEP 1».

Dice «Updated», con «today» solo si es hoy en Cabo y aviso si tiene más de 36 h.

H05●●●●●esfuerzo S3/3

Un enlace compartido con un % roto dejaba el mapa sin playas, golf, restaurantes ni batimetría, en silencio

Típico de un link truncado por WhatsApp.

?wic_place=%E0 → 5 errores, capas ausentes, chips prometiendo 59 playas. Reproducido.

safeDecode + ruta crítica blindada + aviso «That shared link is broken».

H14●●●●○esfuerzo S2/3

Un «My Trip» corrupto tumbaba las capas o inyectaba HTML

Basta un valor viejo, una extensión u otra página del dominio.

localStorage wicTrip=null → mapa sin pines; nombre con <img onerror> → se ejecutó.

Forma validada, nombres escapados, fotos solo del dominio, render fuera de la ruta crítica.

H13●●●●○esfuerzo S3/3

Si el servidor de terreno no respondía, el mapa se quedaba sin lugares para siempre

Firewalls corporativos y países que bloquean ese host.

Con tiles.mapterhorn.com bloqueado: sin inicialización a los 150 s, 0 pines.

Vigilante a 8 s que arranca igual + aviso a 20 s. Verificado: 14 pines con el terreno bloqueado.

H04●●●●●esfuerzo M3/3

En horizontal la ficha salía cortada: solo se veía la foto, el ♥ y la ×

Nombre, guía, Directions y Share fuera de pantalla, sin poder desplazar.

844×390: ficha de 415 px anclada debajo del pin, cortada 320 px.

Alto máximo con scroll, anclaje fijo + desplazamiento del mapa, ficha compacta de 169 px en horizontal.

H10●●●●○esfuerzo S3/3

En pantallas de menos de 622 px de alto la fila de chips tapaba el ♥ y la × de la ficha

iPhone SE 1ª gen, Android 320×568.

elementFromPoint sobre el ♥ devolvía un chip.

Ficha traída a pantalla + chips apartados mientras hay ficha abierta.

H06●●●●○esfuerzo S3/3

Acostado, el chip de hora dorada tapaba 3 de los 4 botones de herramientas

3D, sol/luna y localizarme no se podían tocar.

844×390: solape de 146×44 px; elementFromPoint → #goldTxt.

Chip junto al botón Tour; barra de búsqueda de horizontal al final de la cascada.

H23●●●○○esfuerzo S3/3

A 320 px el título «Los Cabos» se metía debajo del botón My Trip

También en producción antes de este trabajo.

h1 102–218 contra botón 205–308.

Reserva de ancho en el HUD a ≤350 px.

H15●●●●●esfuerzo S3/3

El 80 % de la primera carga en PC eran mosaicos de terreno

4.8 de 6.0 MB antes de ver un solo lugar.

47 mosaicos Mapterhorn, hasta 421 KB cada uno.

Detalle del sombreado limitado a zoom 9: 21 mosaicos, 2.1 MB; 0.00 % de píxeles distintos en la vista inicial, 0.11 % en Médano z14.

H03/H11●●●●○esfuerzo M3/3

Cinco pines de playa que estaban tierra adentro ya están en la arena

La Laguna (4.3 km del mar), Cabo Real, El Faro Viejo, Monumentos y San Pedrito: el pin caía en desierto, colonias, huertas o campos de golf.

Cada punto nuevo pasó cuatro comprobaciones: lugar reconocido por Google, polígono de playa en OpenStreetMap, menos de 400 m de la costa y satélite mirado por mí.

Coordenadas nuevas con fuente registrada; el pin viejo queda guardado por si acaso.

H68●●●○○esfuerzo S—

Quince nombres recuperaron su ñ y sus acentos

«Bahia de los Suenos», «Playa Migrino», «Medano Beach», «Don Sanchez», «Sancho´s»…

Títulos en WordPress; los enlaces no cambiaron.

Bahía de los Sueños, Migriño, Médano, Anónima, Santa María, Río Caracol, Sánchez, Farallón, Ricazón y las cinco comillas.

H03b●●●●○esfuerzo S—

Los 14 pines de playa que quedaban tierra adentro ya están en la arena

Estuary, Westin, San Pedro (Las Palmas), La Pastora, La Poza, Migriño, El Pescadero, Km 87, Km 92, La Curva, Buenos Aires, Río Caracol, Fig Tree y El Cajoncito.

Fuente por pin guardada en la ficha (_wic_geo_src): OpenStreetMap para 7, lugar de Google para 3 (La Pastora, La Poza, Curva del Soldado = La Curva), kilómetro medido sobre la carretera 19 desde el poste km 65 de OSM para Km 87 y Km 92, y proyección del pin original a la costa para 4 sin fuente externa. Los 14 vistos en satélite.

Cada uno está a menos de 60 m de la línea de costa. Los cuatro sin fuente externa (Buenos Aires, Río Caracol, Fig Tree, El Cajoncito) y los dos por kilómetro (±1 km) son los que conviene que confirme alguien que los conoce.

H20●●●○○esfuerzo S—

Cinco playas ya no muestran la foto de OTRA playa

Buenos Aires tenía la foto de Pescadero, Río Caracol un lote en East Cape, La Concha una playa de La Paz, Cabo Real la del Westin y La Laguna una foto sin nombre. Habían entrado como «galería regional» en junio.

Ficha, mapa y hub /beaches/ verificados en vivo sin la foto ajena; la anterior queda guardada en la ficha (_wic_thumb_prev, _wic_gallery_prev, _wic_cover_prev) por si se quiere volver.

Sin foto: la ficha usa la cabecera azul del tema, la tarjeta del mapa y del hub salen sin imagen. Cuando haya foto propia, se sube y listo.

H17●●●●○esfuerzo M—

El aeropuerto SJD ya existe en el mapa y cada ficha dice a qué distancia está

La demanda #1 medida en r/cabo. No estaba.

Pin propio con icono, buscable («SJD»), ficha con Directions/Share/WhatsApp. En cada playa, campo, restaurante y pueblo: «✈ 18 km from SJD Airport (straight line)».

En línea recta y lo dice: no se imprimen minutos ni kilómetros de carretera porque no los medimos.

H18●●●●○esfuerzo S—

«My Trip» se abre como ruta del día en Google Maps

Guardaba lugares pero no servía para moverse.

Botón «Open as a route in Google Maps»: origen = primer lugar, destino = último, paradas intermedias en el orden guardado. Probado con 3 lugares. Con más de 11, avisa y usa los primeros 11 (límite de Google).

Un lugar solo abre la ruta desde donde estás.

H56●●○○○esfuerzo S—

Compartir por WhatsApp desde la ficha y desde My Trip

En PC no había forma de mandar una ficha por WhatsApp Web sin copiar y pegar.

Botón de icono de 44 px con etiqueta accesible en la fila Directions · Share, y en el pie de My Trip. Las etiquetas OG de /map/ ya estaban.

Cabe en 320 px y acostado; medido.

H46●●○○○esfuerzo S—

El botón «near me» avisa que está buscando

Entre el toque y el resultado (hasta 12 s) no pasaba nada visible.

Pulsa mientras busca (respeta reduced-motion), aria-busy, y si se agota el tiempo lo dice en vez de culpar al permiso.

Probado con permiso denegado y con éxito.

H70●●●○○esfuerzo S—

Acostado, la fila de chips y el chip dorado pisaban los botones de la ficha

En 667–812 px de ancho la regla que aparta la banda inferior no aplicaba. Ya pasaba en producción antes de hoy (fila de botones 323–359 px, chips desde 324).

Medido en 667×375, 740×414 y 812×375: con ficha abierta la banda se aparta y vuelve al cerrar.

Igual que en móvil vertical.

W01●●●○○esfuerzo S—

El veredicto del widget de clima ya escucha la probabilidad de lluvia

Una fila podía decir «Rain today 98%» y «Good» a la vez porque el veredicto solo miraba los milímetros de la hora en curso.

50 % = Caution, 80 % = Avoid, para cualquier plan, y la cifra aparece en la frase que explica el veredicto. Probado con 98, 60, 20, sin dato y 150 (dato imposible = se ignora).

Umbrales elegidos por mí; se cambian en una línea si Iván prefiere otros.

H27●●●○○esfuerzo S3/3

El botón 3D nacía encendido con el mapa plano, y se re-encendía solo

Si lo apagabas antes de que cargara, dos segundos después volvía a 3D.

Medido: botón «on» 5–12 s antes del relieve.

Nace apagado y respeta lo que el visitante decida.

H26●●●○○esfuerzo S3/3

La banda «Offline» tapaba el título y pisaba My Trip en móvil

Al perder señal.

Rectángulos medidos.

Va debajo del bloque de título en PC y abajo en móvil, en una sola línea.

H38●●●●○esfuerzo S—

Si fallaba un archivo de datos la capa desaparecía en silencio

Mapa sin leyendas o sin pueblos, buscador que decía «no hay».

Bloqueado un archivo: antes, nada; ahora dos reintentos y aviso.

Reintento con espera y aviso «Some map layers couldn’t load».

H41●●●○○esfuerzo S—

Dos pestañas se pisaban «My Trip» y borraban lugares sin aviso

La PWA instalada y el navegador, o dos pestañas.

Reproducido por el adversario.

Cada pestaña se entera de lo que guardó la otra.

H43●●●○○esfuerzo S—

Al acercarse, el título tapaba pines con nombre

Pines clicables pero invisibles bajo «Los Cabos · The Living Map».

Medido en el Corredor y San José.

El título se desvanece a partir del zoom de calle y deja pasar el toque.

H54●●●○○esfuerzo S—

En iPhone nadie veía nunca «Install map»

Safari no dispara el aviso de instalación.

Público mayoritario sin invitación.

En iPhone aparece el botón y explica los dos pasos (Compartir → Añadir a inicio).

H51●●●○○esfuerzo S—

El service worker volvía a bajar 0.77 MB en los segundos críticos

Competía con los mosaicos en la primera carga.

Medido por el lente de rendimiento.

La precarga se hace 10 s después; quitarla rompía el modo sin señal, así que solo se difiere.

varios●●●○○esfuerzo S—

Otros catorce arreglos chicos

Ficha que se corta acostado o en pantallas chicas, chip dorado sobre las herramientas, botón de guía que se salía, títulos bajo la ×, panel de hora dorada fuera de pantalla, leyenda y chip cortados a 320 px, zoom de Safari al tocar el buscador, chips de 40 px acostado, girar con ficha abierta, «My Trip» que no abría la ficha ni con toda la fila, viaje compartido importado a medias, estado de carga, ficha accesible.

Cada uno con su medición en el sitio en vivo.

Todos en producción.

Descartados: 0 refutados por los verificadores y 1 confirmados pero sin impacto