MediaWiki:Common.js: Difference between revisions

From ponti
Jump to navigation Jump to search
No edit summary
No edit summary
Line 52: Line 52:
var splitcoord = coordinates.split(",");
var splitcoord = coordinates.split(",");


document.getElementById("locator").innerHTML = splitcoord[0].trim().slice(0,-1);
document.getElementById("locator").innerHTML = coord2loc(splitcoord[0].trim().slice(0,-1),splitcoord[1].trim().slice(0,-1));




});
});

Revision as of 15:57, 3 December 2014

/* Any JavaScript here will be loaded for all users on every page load. */

function cb(json) {
    //do what you want with the json
    document.getElementById('output').innerHTML = json.address.road + ',' + json.address.city;
}
function nominatimsearch(lat,long) {
    var s = document.createElement('script');
    s.src = 'http://nominatim.openstreetmap.org/reverse?json_callback=cb&format=json&lat='+lat+'&lon='+long+'&addressdetails=1';
    document.getElementsByTagName('head')[0].appendChild(s);
};

function coord2loc(e, n)
// calculate IARU locator from lat, lon
// includes correction to hopefully avoid js fp maths error.
// input is in degrees.
{
	e = e + 180;
	ee = e;
	n = n + 90;
	nn = n;
	var locator = "";
	e = e / 20 + 0.0000001;
	n = n / 10 + 0.0000001;
	locator = locator + chr(65 + e) + chr(65 + n);
	e = e - floor(e);
	n = n - floor(n);
	e = e * 10;
	n = n * 10;
	locator = locator + chr(48 + e) + chr(48 + n);
	e = e - floor(e);
	n = n - floor(n);
	e = e * 24;
	n = n * 24;
	locator = locator + chr(65 + e) + chr(65 + n);
	e = e - floor(e);
	n = n - floor(n);
	e = e * 10;
	n = n * 10;
	locator = locator + chr(48 + e) + chr(48 + n);
	e = e - floor(e);
	n = n - floor(n);
	e = e * 24;
	n = n * 24;
	locator = locator + chr(65 + e) + chr(65 + n);
	return locator;
}

$(window).bind("load", function() {
   // code here
var coordinates = document.getElementById("locator").innerHTML;
var splitcoord = coordinates.split(",");

document.getElementById("locator").innerHTML = coord2loc(splitcoord[0].trim().slice(0,-1),splitcoord[1].trim().slice(0,-1));


});