Vamos a mostrar como se puede hacer un mapa de España interactivo tan solo con los recursos de la web. Ya habíamos adelantado en el apunte javascript: rollover en mapas que sería conveniente usar una imagen con colores planos para poder capturar las áreas con otro recurso (en este caso de mi autoría: Capturar áreas en imágenes).
IV Asamblea de la AEC: IV Asamblea General de la Asociación Española de Caricaturistas
Los males previstos resultan menores
Séneca, Lucius Annaeus, filósofo latino (c.5 a. C.-65 d. C.).
En esta zona están las páginas personales del autor.
Mis clientes ahora también son mis amigos (aunque les cobre).
En Mis amigos Informáticos hay una pequeña colección de páginas de colegas webmasters..
En Mis amigos artistas podemos encontrar artistas de cualquier índole (dibujantes, pintores, escritores...)
Las recomendaciones que proponemos son de índole variada.
Aquí un cajón de sastre de enlaces.
Nos referencian desde sitios de toda índole.
Puede contribuir a mantener esta página con su donativo.
Vamos a mostrar como se puede hacer un mapa de España interactivo tan solo con los recursos de la web. Ya habíamos adelantado en el apunte javascript: rollover en mapas que sería conveniente usar una imagen con colores planos para poder capturar las áreas con otro recurso (en este caso de mi autoría: Capturar áreas en imágenes).
Buscando librerías de clip-art, hemos encontrado una página valiosísima: Open Clip Art, y revisando las librerías, concretamente en la Colección 0.18 full hemos dado con una imagen que nos viene muy bien, cuyo nombre es "spain_provinces_sherrera_01.svg", que hemos pasado al formato png para mantener la calidad, y poderla usar en nuestro recurso.
A continuación mostramos el mapa con todas sus áreas presentadas con un efecto para destacarlas con el ratón; luego explicaremos paso a paso como ha sido hecho.
Esta es la lista de áreas (provincias/islas):
Albacete, Alicante, Almería, Asturias, Álava, Ávila, Badajoz, Barcelona, Burgos, Cantabria, Castellón, Cáceres, Cádiz, Ceuta, Ciudad Real, Córdoba, Cuenca, El Hierro, Formentera, Fuerteventura, Gerona, Gran Canaria, Granada, Guadalajara, Guipúzcoa, Huelva, Huesca, Ibiza, Jaén, La Coruña, La Gomera, La Palma, La Rioja, Lanzarote, León, Lérida, Lugo, Madrid, Mallorca, Málaga, Melilla, Menorca, Murcia, Navarra, Orense, Palencia, Pontevedra, Salamanca, Segovia, Sevilla, Soria, Tarragona, Tenerife, Teruel, Toledo, Valencia, Valladolid, Vizcaya, Zamora, Zaragoza
Y "de dulce", la lista de comunidades autónomas:
Vamos al recurso para detectar áreas, y luego de seleccionar nuestro mapa, pinchamos en cualquier área que sepamos su nombre (también podemos ayudarnos de la wikipedia). Cuando el script reconozca el área, y aparezca la ventana que solicita su nombre, escribimos el mismo y comprobamos que se haya capturado correctamente en la pestaña "edición", y de paso la coloreamos pulsando el botón "Rellenar zona". Repetimos el proceso para cada área hasta colorear todo el mapa.
Hemos coloreado también el área que representa a África, pero solo por razones estéticas, sin considerar luego ese área. Seguidamente pasamos a la pestaña "visión" y generamos el mapa coloreado (en este caso seleccionando la opción "fundida"), que guardamos para usarlo en la página donde lo necesitemos, hemos de comentar que en algunos navegadores podría no generarse correctamente, nosotros hemos usado firefox portable.
Desde la misma pestaña, ahora pulsamos el botón "Ver efecto en popup", que generará una ventana nueva con el efecto funcionando tal como queremos. Solo nos queda guardar esa página en nuestro ordenador, y nuestro navegador se encargará de generar todas las imágenes modificando en el código fuente los elementos que lo requieran (como los nombres de las imágenes de sustitución de cada área).
A partir del listado de areas que nos proporciona el código fuente de la última ventana generada podemos fácilmente generar el listado de áreas con el siguiente código de este mismo apunte:
function sortexto(a, b) { aaa = a.charAt(0).toLowerCase(); bbb = b.charAt(0).toLowerCase(); abc = "aábcdeéfghiíjklmnñoópqrstuúvwxyz"; if (abc.indexOf(aaa) == abc.indexOf(bbb)) return sortexto(a.substr(1), b.substr(1)) else return (abc.indexOf(aaa) - abc.indexOf(bbb)); } array_areas = []; for (a in areas) array_areas.push(a); array_areas.sort(sortexto);
Ya con el listado ordenado alfabéticamente, el listado lo generamos dentro de el párrafo con id="lista_areas" con el siguiente código:
array_enlaces = []; for (i = 0, total = array_areas.length; i < total; i++) { ancla = "<a name='" + array_areas[i]; ancla+= "' href='http://es.wikipedia.com/wiki/" + array_areas[i]; ancla+= "' onmouseover='mostrarArea(this.name)"; ancla+= "' onmouseout='ocultarArea(this.name)"; ancla+= "'>" + array_areas[i] + "</a>"; array_enlaces.push(ancla); } tag("lista_areas").innerHTML = array_enlaces.join(", ") + ".";
Ahora vemos que se utiliza funciones distintas a las originales que describimos a continuación:
function ocultarArea(cual) { document.images[cual].style.visibility = "hidden"; document.anchors[cual].style.backgroundColor = "transparent"; } function mostrarArea(cual) { document.images[cual].style.visibility = "visible"; document.anchors[cual].style.backgroundColor = "yellow"; }
Las imágenes y enlaces se referencian por su nombre (atributo name) y en ambos casos es el mismo
Si por el nombre de una provincia o isla podemos marcarla en una lista y a la vez destacarla en el mapa, podemos considerar la lista de provincias/islas de una comunidad y a todas individualmente aplicarle el efecto, simplemente recorriendo esa lista:
Andalucía = [ "Almería", "Cádiz", "Córdoba", "Granada", "Huelva", "Jaén", "Málaga", "Sevilla" ]; for (i = 0, total = Andalucia.length; i < total; i++) mostrarArea(Andalucia[i]);
Como último comentario debemos advertir que todos los enlaces son hacia la wikipedia, y que algunos términos pueden ser "ambiguos", por lo que es posible que en algunos casos no sea el enlace esperado.
Hemos encontrado 13 comentarios.
Hola!
Llevo meses trabajando en la construcción de una página web sobre patrimonio y paisaje. Aún no la he hecho pública. Quiero localizar obras en municipios dentro de una provincia, que a su vez está dividida en comarcas.
Cuando he visto el mapa de España, he alucinado!!!. Es exactamente lo que quería.
Tengo dibujados los mapas en autocad y pasados a formato png. Incluso creo que podría sacar las coordenadas de los polígonos de las áreas a mano.
Me gustaría hacer el mapa de mi comunidad autónoma con sus municipios, igual que el mapa de España del ejemplo, de manera que se enlacen comarcas, links y municipios.
Soy novata y algunos pasos de los que expone se me escapan por completo. Sería posible que me guiara. Se lo agradecería mucho.
Saludos cordiales!!
Hola:
Desde luego que me encantaría echar una mano a tu proyecto. Para empezar, en vez de buscar coordenadas a mano, puedes usar nuestro recurso sobre: Capturar áreas en imágenes.
Saludos
Muy interesante, vamos a intentar integrar este mapa en nuestra web, que está separado por provincias y se dedica al servicio técnico de plotters. Gracias!!
Hola :)
Estoy en un proyecto algo similar y era para saber si me podias echar una mano ya que no controlo mucho sobre java script, estoy usando gimp para seleccionar areas con sus respectivas coordenadas y me gustaria saber que codigo me haria falta para que se me iluminen las coordenadas que me proporciona el gimp. He visitado mas de 100 foros buscando alguna solución y la verdad que no he tenido suerte.
Un saludo Gracias =)
¿Las comunidades de Ceuta y Melilla?
como puedo poner enlaces en las provincias, y como inserto ese codigo javascript en la web. Gracias
Ya he solucionado como darle a cada provincia su enlace, en cada area al final puedes poner la propiedad onclick onClick="location.href='index.html'" asi poner lo que quieras.
Los mapas son un sistema de enlaces, así que la respuesta no es correcta; es más, el mapa que estamos mostrando tiene un enlace en cada provincia a su referencia en la wikipedia.
No se trata de hacerlo con funciones javascript sino con el propio atributo href de cada uno de los áreas.
Saludos
Hola Pepe,
Muy interesante el rollover sobre cambiar el color de las provincias de España.
Yo deseo poder cambiar el color de una provincia al momento de desplegar el gráfico, esto es, al momento de desplegar el gráfico.
¿alguna idea?
Gracias anticipadas.
Hola Bier:
Después de ver tu mensaje en los foros: Colorear una provincia de mapa he visto este comentario, y seguro que hay muchas opciones; tal vez te interese más una solución desde el servidor, y un ejemplo bueno lo puedes ver en esta página "Esquinas redondeadas más simples" de nuestro compañero y amigo panino5001...
Y sabiendo las coordenadas de la provincia, otra opción podría ser generar un fichero svg.
Saludos
Muy bueno, como siempre. Muy interesante la función sortTexto!
Hola:
Gracias Andrés, se agradecen siempre tus comentarios; y curiosamente releyendo el apunte y la función que comentas, he descubierto que en la lista de letras faltaba la "e" acentuada (é), y ya está corregido.
Saludos
Valoración de esta página: (apunte.21)
Esta página ha sido visitada en 30169 ocasiones
Y del Mapa del sitio, además del sitemap.xml.
Aquí podemos encontrar los apuntes más visitados.
"Top 10" reemplaza a la sección Últimos apuntes.
Una buena forma de buscar un apunte es a partir de su categoría.
También es posible buscar apuntes por medio de las etiquetas (tags).
Hemos decidido poner al alcance de todos algunos comodines.
Adjuntamos una versión reducida del "buscador interno" que vemos en la lista anterior:
También estamos recopilando antiguas páginas del sitio.
Desde este recuadro se puede hacer una búsqueda cronológica.
Se puede crear una postal nueva desde el enlace del sector "Otras páginas del dominio", o editar la que sale en el recuadro, pulsando sobre ella..