<noinclude>
Proto de développement de[[widget:CarteFablabs]]
|longitude=51(optionnel)
$.each(data.items, function(i,item){ $("<img/>").attr("src", item.media.m).appendTo("#images"); if ( i == 3 ) return false; });
|latitude=3.56(optionnel)
inspiration: http://www.mediawikiwidgets.org/w/index.php?title=Widget:Google_Maps&action=edit
item
nom artlab
adresse 11ème ParisParislabel
site http://www.digitalarti.com/fr/blog/artlab_blog
long 2.3
ne pas effacer ! ça sert !
{{#ask: [[Category:Fablabs]] [[long::!:]]
|?long # -
|?latt #label
|?site
|?adresse
|?intitulé
|?structures
|format=json
|limit=500
}} : tous les fablabs qui ont une longitude...
tous les fablabs en format CSV :
{{#ask: [[Category:Fablabs]]
|?long # -
|?intitulé
|?structures
|format=jsoncsv|limit=500
}}
cartographie tous les fablabs
{{#ask: [[Category:Fablabs]] [[intitulé::fablab]]
|?long # -
|?latt #
|?intitulé
|?structures
|limit=500
}}
<script src="http://cdn.leafletjs.com/leaflet-0.4/leaflet.js"></script>
<div id="<!--{$nom|escape:'quotes'|default:'carte'}-->" style="width: <!--{$largeur|escape:'quotes'|default:'720700'}-->px; height: <!--{$hauteur|escape:'quotes'|default:'420'}-->px"></div>csv<div id="nombreLabos">chargement...</div>
<script>
///fonction pour recuperer la liste des coords des labsfunction requete(url) {if (window.XMLHttpRequest) // Mozilla, Safari,... xhr = new XMLHttpRequest();else if (window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP");if (!xhr) { alert("Abandon : Impossible de créer une instance Ajax"); return false;}xhr.onreadystatechange = reponse;xhr.open("GET", url, true);xhr.send(null);}
function reponse() {if (xhr.readyState == 4) { if (xhr.status == 200) {///////////fin javaload
//alert(xhr.responseText);
//le fichier arrive en CSV (valeurs séparées par des virgules) var lignescartofab =new RegExpL.map("[\n]+", "g"'<!--{$nom|escape:'quotes'|default:'carte'}-->');//alert(responseText);var tableau=xhr.responseText.splitsetView(lignes);var colones=new RegExp("[<!--{$longitude|escape:'quotes'|default:'47'}-->,<!--{$latitude|escape:'quotes'|default:'1.7'}-->]+", "g");for(var i=1;i<tableau.length!--{$zoom|escape:'quotes'|default:'5'}--1>);i++) {
var donnees=tableau[i].split(colones);
var coords=new Array// add an OpenStreetMap tile layerL.tileLayer(donnees[2]'http://{s}.tile.osm.org/{z}/{x}/{y}.png',donnees[1]); var nom=donnees[0];{ var url=donnees[3] attribution: '© var intitule<a href=donnees[5];"http://osm.org/copyright">OpenStreetMap</type de lieua> contributors' var structure=donnees[6]}).addTo(cartofab);//structure juridique
// alert(coords[0]); L.marker([coords[0], coords[1]]).addTo(cartofab).bindPopup("<b><a href="+url+" target=\"_blank\">"+nom+"</a></b><br/>"+intitule+"<br/>"+structure);appel de la liste des labs } document.getElementById("nombreLabos").innerHTML = "Il ya actuellement "+tableauRecherche des labs...length+" laboratoires renseignés sur cette page";documentnumLabs=0; $.getElementByIdajax("nombreLabos").innerHTML =responseText;{ url: 'Sp%C3%A9cial:Ask/-5B-5BCategory:Fablabs-5D-5D-20-5B-5Blong::!:-5D-5D/-3FLong-23-2D/-3FLatt-23label/-3FSite/-3FAdresse/-3FIntitul%C3%A9/-3FStructures/limit%3D500/searchlabel%3D/format%3Djson', data: { format: 'json' } , else { dataType: 'json', alertsuccess: function("La requête AJAX a rencontré un problème jsondata) { console.log(jsondata."results); } }}
$.each(jsondata.results, function(i,item){ numLabs++;console.log(numLabs);
///////////fin javaload Intitulés=""; for(var j= 0; j < item.printouts.Intitulé.length; j++) { Intitulés=Intitulés+" "+item.printouts.Intitulé[j].fulltext; } structures=""; for(var k= 0; k < item.printouts.Structures.length; k++) { structures=structures+" "+item.printouts.Structures[k].fulltext; }
L.marker([item.printouts.Latt[0],item.printouts.Long[0]]).addTo(cartofab).bindPopup("<b><a href="+item.printouts.Site[0]+" target=\"_blank\">"+i+"</a></b><br/>"+Intitulés+"<br/>"+structures);
var cartofab = L.map('<!--{$nom|escape:'quotes'|default:'carte'}-->').setView([<!--{$longitude|escape:'quotes'|default:'47'}-->, <!--{$latitude|escape:'quotes'|default:'1.7'}-->], <!--{$zoom|escape:'quotes'|default:'5'}-->);
L.tileLayer('http://{s}.tile.cloudmade.com/7ad1b23bf3f347f8b0ab2416f66737fc/997/256/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>' }).addTo(cartofab);
}); document.getElementById("nombreLabos").innerHTML = "Il ya actuellement "+numLabs+" Labos renseignés sur cette page";
//appel de la liste des labsrequete("Sp%C3%A9cial:Ask/-5B-5BCategory:Fablabs-5D-5D/-3FLong-23-2D/-3FLatt-23-2D/-3FSite/-3FAdresse/-3FIntitul%C3%A9/-3FStructures/limit%3D50/format%3Djson/sep%3D,/headers%3Dshow"); }
});
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
{
tags: "mount rainier",
tagmode: "any",
format: "json"
},
function(data) {
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
</script>
<noinclude>
àvoir requete json semantik mieux
=====documentation=====
http://semantic-mediawiki.org/wiki/Serialization_%28JSON%29
https://www.mediawiki.org/wiki/Category:Snippets_with_JavaScript
</noinclude>