Como abrir as xanelas dos marcadores

Por Horacio González. mércores, 22-10-2008
Outros artigos da mesma sección Buscar outros artigos Dereitos de autor Citar este artigo

Referencia bibliográfica segundo a ISO 690-2:

Horacio González. Como abrir as xanelas dos marcadores [online]. Santiago de Compostela, España, Escoitar.org, outubro do 2008 [versión de febreiro do 2009] [citado o ].

Dispoñible en Internet:

http://www.escoitar.org/Como-abrir-as-xanelas-dos
Espera un momento ¡Buscando artigos!

A función abrirVentana();

Toda a información dos marcadores está almacenada en tres arrays que conteñen a URL dos sons, o HTML de cada xanela e o obxecto GMarker de cada un dos marcadores do mapa. Esta información é accesible a través de JavaScript, polo que as xanelas dos marcadores podense abrir dende calquera parte da páxina web. Para isto deseñouse a función abrirVentana(idmarker, idmap) que permite chamar ó método GMarker.openInfoWindowHtml() dende calquera ligazón.

function abrirVentana(idmarker, idmap) {
        var map = eval('map'+ idmap);
        map.closeInfoWindow();
        GEvent.addListener(marcadores["id_"+idmarker], "infowindowopen", function() {
                if(URLsons["id_"+idmarker]){
                var fo = new FlashObject( URLbaseGis+"/img_pack/musicplayer.swf?autoplay=true&song_url="+URLsons["id_"+idmarker], "player_x", "17", "17", "6", "#FFFFFF");
                        fo.write("player");
                }
        });
        marcadores["id_"+idmarker].openInfoWindowHtml(contidosHTML["id_"+idmarker]);
}

Para utilizar a función abrirVentana(idmarker, idmap), hai que introducir dous parámetros; o identificador do marcador e o identificador do mapa. O identificador do marcador será o mesmo que o identificador do artigo ó que faga referencia, e dicir id_article. E o identificador do mapa, será unha cadena de texto idéntica á utilizada no parámetro {id_carte_gis=''} cando se chamou ó modelo carte_gis.

Por exemplo, eu adoito utilizar o parámetro id_carte_gis deste xeito; {id_carte_gis='_sommaire'}, {id_carte_gis='_article'}, {id_carte_gis='_mot'}, para que os mapas se chamen ’map_sommaire’, ’map_article’ e ’map_mot’. Despois utilizo a función JavaScript desta maneira: abrirVentana(id_article, '_sommaire'), abrirVentana(id_article, '_article'), abrirVentana(id_article, '_mot').


$("a.window").click();

Hai duas formas de chamar a unha función JavaScript dende unha ligazón; utilizando o href ou utilizando jQuery. Destas dúas opcións, a primeira é menos recomendable xa que as veces produce erros cando o usuario intenta abrir a ligazón nunha xanela nova ou gardar a dirección da ligazón como favorito.

<a href="javascript:abrirVentana(idmarker, idmap) ;"></a>
A mellor solución para este problema consiste en eliminar o href, deste xeito, evitase que o usuario poida abrir a ligazón ou gardar a dirección, xa que non hai ningunha URL á que dirixirse nin que gardar. Sen href, o único uso que terá a ligazón será o de executar o código que lle asignemos mediante jQuery.

Para seleccionar todas as ligazóns que queiramos utilizar para abrir xanelas e averiguar a id do marcador ó que fan referencia con facilidade, imos asignarlles a clase ’window’ e poñer o identificador do artigo, id_article, como valor do seu atributo nome. Deste xeito, será moi doado recoller o valor do atibuto nome e indicarlle a JavaScript o que debe facer cando o usuario pulse na ligazón, utilizando a función $().click() de jQuery.

Este é un exemplo dun bucle para xerar unha listaxe de ligazóns para abrir xanelas no mapa.

<BOUCLE_ultimasPaisaxes(ARTICLES){par date}{inverse}{0,10}>
        <a class="window" name="#ID_ARTICLE">#TITRE</a>
</BOUCLE_ultimasPaisaxes>
E este é un exemplo da función jQuery que selecciona ditas ligazóns, recolle a id dos marcadores da propiedade nome e lles asigna a función abrirVentana().
$("a.window").click(function () {
        var id_marker = $(this).attr("name");
        abrirVentana(id_marker, 'id_map');
});