User:Proteins/genericgeotagscript.js

// // Generic script for doing something fun with an article's geotag // Planned example: generate a star chart for that location, with two sliders for day and time // // To use this script, add "importScript('User:Proteins/genericgeotagscript.js');" to your monobook.js subpage // under your user page, as you can see at User:Proteins/monobook.js

function reportGeotagCoordinates { var latitude; var longitude;

var top_node; var parent_node; var parent_class_name;

var spans; var temp_span; var num_spans = 0; var span_index = 0; var span_class_name = 0;

var latitude = 0.0; var longitude = 0.0;

// Get the bodyContent node top_node = document.getElementById('bodyContent'); if (!top_node) { window.alert("There is no bodyContent node in this article."); return; } // Get a list of the spans spans = top_node.getElementsByTagName("SPAN"); if (!spans) { window.alert("There are no SPAN tags in this article."); return; }	num_spans = spans.length; if (num_spans < 1) { window.alert("There are no spans in this article."); return; } // Loop over the spans latitude = 0.0; longitude = 0.0;

latitude_is_defined = false; longitude_is_defined = false;

for (span_index=0; span_index<num_spans; span_index++) { temp_span = spans[span_index]; if (!temp_span) { continue; }

span_class_name = temp_span.className; if (!span_class_name) { continue; }

// Get the latitude if (span_class_name == "latitude") { parent_node = temp_span.parentNode; parent_class_name = parent_node.className; if (parent_class_name != "geo-dec geo") { continue; } latitude = temp_span.innerHTML; latitude_is_defined = true; }

// Get the longitude if (span_class_name == "longitude") { parent_node = temp_span.parentNode; parent_class_name = parent_node.className; if (parent_class_name != "geo-dec geo") { continue; } longitude = temp_span.innerHTML; longitude_is_defined = true; }	} // closes loop over spans

if ((longitude_is_defined) && (latitude_is_defined)) { window.alert("Latitude = " + latitude + " \t Longitude = " + longitude + "\n"); } else { window.alert("The geotag latitude and longitude coordinates were not found on this page.\n"); } } // closes function reportGeotagCoordinates

$(function { mw.util.addPortletLink('p-cactions', 'javascript:reportGeotagCoordinates', 'geo', 'ca-geotag', 'Report the article geotag coordinates', 'g', ''); }); //