Naar inhoud springen

MediaWiki:Gadget-MapFrame.js

Uit Wikivoyage

Opmerking: na het publiceren moet je misschien je browsercache legen om de veranderingen te zien.

  • Firefox / Safari: houd Shift ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
  • Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
  • Edge: houd Ctrl ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5.
/* 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 = $('#mapdiv');
	if ( map.length ) {
		validateMap(map);

		var exsrc = exhtml+'lat='+encodeURIComponent(map.data("lat"))+'&lon='+encodeURIComponent(map.data("long"))
			+'&zoom='+encodeURIComponent(map.data("zoom"))+'&layer='+encodeURIComponent(map.data("layer"))+'&lang='+encodeURIComponent(mw.config.get('wgContentLanguage'))+'&name='+encodeURIComponent(mw.config.get('wgPageName'));
 
		var ifstr = $( '<iframe></iframe>' ).attr({
			src: exsrc,
			width: map.data("width"),
			height: map.data("height"),
			style: "border:0",
			allow: "geolocation 'self' *"
		});
		map.html(ifstr);
		if ( map.data("layer").indexOf('M') < 0 ) {
			$('.vcard a').attr('href', function () { return this.href.replace('layer=M','layer='+map.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);