MediaWiki:CadreCarte.js

De Wikivoyage

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/* Place importScript('MediaWiki:MapFrame.js'); into MediaWiki:Common.js */
/* Usage: inserts an iframe into a div with id "mapdiv", in conjunction with Template:MapFrame
          for embeddable dynamic maps. Relies on HTML5 data parameters.  */                    
 
function insertIFrame() {
    var exhtml = '//tools.wmflabs.org/wikivoyage/w/poimap2.php?';
    var map = $('div #mapdiv');
    map.each(function() {
    	var self = this,
    	$self = $(this);
        validateMap($self);
        var exsrc = exhtml+'lat='+$self.data("lat")+'&lon='+$self.data("long")
            +'&zoom='+$self.data("zoom")+'&layer='+$self.data("layer")+'&lang='+mw.config.get('wgContentLanguage')+'&name='+mw.config.get('wgPageName');
 
        var ifstr = '<iframe src="'+exsrc+'" width="'+$self.data("width")+'" height="'+$self.data("height")
            +'" style="border:0"></iframe>';
        $self.html(ifstr);
        if ( $self.data("layer").indexOf('M') < 0 ) {
            $('.vcard a').attr('href', function () { return this.href.replace('layer=M','layer='+$self.data("layer")[0]) });
        }
    });
}
 
function validateMap(map) {
    if (!$.isNumeric(map.data("lat"))) map.data("lat", 51.47766);
    if (!$.isNumeric(map.data("long"))) map.data("long", -0.00115);
    if (!$.isNumeric(map.data("zoom")) && map.data("zoom") != 'auto') map.data("zoom", 14);
    if (!$.isNumeric(map.data("height"))) map.data("height", 420);
    if (!$.isNumeric(map.data("width"))) map.data("width", 420);
    if (map.data("layer").length > 8) map.data("layer", 'M');
}
 
jQuery(document).ready(insertIFrame);