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.
Cambian lo que el mapa hace o dice. Toca un botón en cada uno; se guarda en tu teléfono.
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?
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.
Ordenadas por demanda medida × esfuerzo. Elige las que quieras; el orden es mi recomendación.
«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.
No cambian ninguna decisión tuya. Los listo para que sepas qué va a cambiar.
«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/.
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.
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).
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.
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».
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.
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.
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.
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.
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.
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.
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.
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.
«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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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».
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.
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.
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).
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.
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.