Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: $(function () { var myElement = document.getElementById('mw-mywiki-example'); myElement.innerHTM...") |
|||
Line 2: | Line 2: | ||
− | + | <!DOCTYPE html> | |
− | var | + | <html> |
− | + | <head> | |
− | }()); | + | <title>My Diagram</title> |
+ | <meta charset="utf-8" /> | ||
+ | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
+ | <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico"/> | ||
+ | <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/> | ||
+ | <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script> | ||
+ | |||
+ | <style> | ||
+ | html, body { | ||
+ | height: 100%; | ||
+ | margin: 0; | ||
+ | } | ||
+ | |||
+ | #map { | ||
+ | width: 80%; | ||
+ | height: 80%; | ||
+ | } | ||
+ | </style> | ||
+ | </head> | ||
+ | |||
+ | <body> | ||
+ | |||
+ | <p id="name1"></p> | ||
+ | <p> testtttttttt </p> | ||
+ | |||
+ | <div id='map'></div> | ||
+ | |||
+ | <script> | ||
+ | |||
+ | |||
+ | // Leaflet | ||
+ | |||
+ | var map = L.map('map', { | ||
+ | crs: L.CRS.Simple, //square coordinate reference system | ||
+ | minZoom: -5 | ||
+ | }); | ||
+ | |||
+ | var yx = L.latLng; | ||
+ | |||
+ | var xy = function(x, y) { | ||
+ | if (L.Util.isArray(x)) { // When doing xy([x, y]); | ||
+ | return yx(x[1], x[0]); | ||
+ | } | ||
+ | return yx(y, x); // When doing xy(x, y); | ||
+ | }; | ||
+ | |||
+ | var bounds = [xy(0, 0), xy(1000, 1000)]; | ||
+ | var image = L.imageOverlay('IMG_8709.jpg', bounds).addTo(map); //imageOverlay is the map image | ||
+ | map.fitBounds(bounds); | ||
+ | |||
+ | |||
+ | // Wiki Api | ||
+ | var apiEndpoint = "http://192.168.1.3/mediawiki/api.php"; | ||
+ | |||
+ | var params ="action=ask&format=json&query=[[Coordinates%3A%3A%2B]]|%3FCoordinates|%3FCategory"; | ||
+ | // my query: All pages with coordinates (= all categories and normal pages with coordinates) | ||
+ | |||
+ | //The function to wrap the result | ||
+ | var callback = function (response) { | ||
+ | var pages = response.query.results; | ||
+ | Object.keys(pages).forEach(function(key) { //getting json keys | ||
+ | var pagename = pages[key].fulltext; | ||
+ | var lat = pages[key].printouts.Coordinates[0].lat ; //getting inside keys printouts > coordinates > 0 > lat | ||
+ | var lan = pages[key].printouts.Coordinates[0].lon ; | ||
+ | console.log(pagename, lat, lan); //printing to console | ||
+ | |||
+ | // PLacing the Pins | ||
+ | var pointlocation = xy(lat, lan); | ||
+ | |||
+ | if (pagename.startsWith("Category")) { | ||
+ | L.circle(pointlocation, {color: 'white', radius: 20}).addTo(map).bindPopup(pagename); | ||
+ | //var travel = L.polyline([pointlocation, pointlocation]).addTo(map); | ||
+ | } | ||
+ | else { | ||
+ | L.circle(pointlocation, {color: 'blue', radius: 20}).addTo(map).bindPopup(pagename); | ||
+ | var category = pages[key].printouts.Category[0].fulltext ; | ||
+ | console.log(category, "my category"); //printing to console | ||
+ | var travel = L.polyline([pointlocation, xy(500, 500)]).addTo(map); | ||
+ | |||
+ | } | ||
+ | |||
+ | map.setView(xy(500, 500), -1); //1st and 2nd values: where the maps centers. 3rd value: zoom | ||
+ | |||
+ | }); | ||
+ | }; | ||
+ | |||
+ | var scriptTag = document.createElement("script"); // Dynamically create a "script" tag | ||
+ | scriptTag.src = apiEndpoint + "?" + params + "&callback=callback"; // Point to the query string | ||
+ | document.body.appendChild(scriptTag); // Add the script tag to the document | ||
+ | |||
+ | </script> | ||
+ | |||
+ | </body> | ||
+ | </html> |
Revision as of 17:41, 28 March 2020
/* Any JavaScript here will be loaded for all users on every page load. */ <!DOCTYPE html> <html> <head> <title>My Diagram</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico"/> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/> <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script> <style> html, body { height: 100%; margin: 0; } #map { width: 80%; height: 80%; } </style> </head> <body> <p id="name1"></p> <p> testtttttttt </p> <div id='map'></div> <script> // Leaflet var map = L.map('map', { crs: L.CRS.Simple, //square coordinate reference system minZoom: -5 }); var yx = L.latLng; var xy = function(x, y) { if (L.Util.isArray(x)) { // When doing xy([x, y]); return yx(x[1], x[0]); } return yx(y, x); // When doing xy(x, y); }; var bounds = [xy(0, 0), xy(1000, 1000)]; var image = L.imageOverlay('IMG_8709.jpg', bounds).addTo(map); //imageOverlay is the map image map.fitBounds(bounds); // Wiki Api var apiEndpoint = "http://192.168.1.3/mediawiki/api.php"; var params ="action=ask&format=json&query=[[Coordinates%3A%3A%2B]]|%3FCoordinates|%3FCategory"; // my query: All pages with coordinates (= all categories and normal pages with coordinates) //The function to wrap the result var callback = function (response) { var pages = response.query.results; Object.keys(pages).forEach(function(key) { //getting json keys var pagename = pages[key].fulltext; var lat = pages[key].printouts.Coordinates[0].lat ; //getting inside keys printouts > coordinates > 0 > lat var lan = pages[key].printouts.Coordinates[0].lon ; console.log(pagename, lat, lan); //printing to console // PLacing the Pins var pointlocation = xy(lat, lan); if (pagename.startsWith("Category")) { L.circle(pointlocation, {color: 'white', radius: 20}).addTo(map).bindPopup(pagename); //var travel = L.polyline([pointlocation, pointlocation]).addTo(map); } else { L.circle(pointlocation, {color: 'blue', radius: 20}).addTo(map).bindPopup(pagename); var category = pages[key].printouts.Category[0].fulltext ; console.log(category, "my category"); //printing to console var travel = L.polyline([pointlocation, xy(500, 500)]).addTo(map); } map.setView(xy(500, 500), -1); //1st and 2nd values: where the maps centers. 3rd value: zoom }); }; var scriptTag = document.createElement("script"); // Dynamically create a "script" tag scriptTag.src = apiEndpoint + "?" + params + "&callback=callback"; // Point to the query string document.body.appendChild(scriptTag); // Add the script tag to the document </script> </body> </html>