diff --git a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
index d4eedc1dd147ec34bd04ca03476e5b019f90f934..9ec662a24dce4a12edd160fed897c7493c2322f5 100644
--- a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
+++ b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
@@ -162,7 +162,7 @@ var regionChooser = (function(){
 		var sketch_percentage = Math.round(intersectionArea / polygonArea * 100);
 		intersections.addFeature(intersection);
 		var link = '<li>'
-        // TODO: If possible, highlight the corresponding polygon when hovering above a name.
+		// TODO: If possible, highlight the corresponding polygon when hovering above a name.
 		link += '<input type="checkbox" id="citygml_' + feature.getId() + '" class="select_citygml" onclick="regionChooser.isDownloadPossible();"><label for="citygml_' + feature.getId() + '">' +  feature['name'] + '</label>';
 
 		link += " (" + citygml_percentage + "%";
@@ -194,13 +194,13 @@ var regionChooser = (function(){
 		features_by_project = groupBy(kml_source.getFeatures(), "project");
 		
 		Object.keys(features_by_project).forEach(function(project) {
-		    features = features_by_project[project];
-		    features_and_intersections = features.map(f=> [f, findIntersection(f,polygon)]).filter(l => l[1] !== undefined);
-		    if (features_and_intersections.length > 0){
-		    	intersection_found = true;
+			features = features_by_project[project];
+			features_and_intersections = features.map(f=> [f, findIntersection(f,polygon)]).filter(l => l[1] !== undefined);
+			if (features_and_intersections.length > 0){
+				intersection_found = true;
 				dataPanel.append("<h2 class='info'>" + project);
-		    	features_and_intersections.forEach(l => showLinkToDownload(l[0], l[1], polygonArea));
-		    }
+				features_and_intersections.forEach(l => showLinkToDownload(l[0], l[1], polygonArea));
+			}
 		});
 		
 		if (intersection_found) {
@@ -266,24 +266,12 @@ var regionChooser = (function(){
 
 	function displayInfo() {
 		dataPanel.empty();
-		var geom = /** @type {ol.geom.Polygon} */
-		(sketch.getGeometry().clone().transform(sourceProj, 'EPSG:4326'));
+		var geom = sketch.getGeometry().clone().transform(sourceProj, 'EPSG:4326');
 		var coordinates = geom.getLinearRing(0).getCoordinates();
 		var area = Math.abs(wgs84Sphere.geodesicArea(coordinates));
-		var coords = geom.getLinearRing(0).getCoordinates();
-		if (!fromJavaFX) {
-			var wgs84_coords = "";
-			var n = coords.length;
-			for (var i = 0; i < n; i++) {
-				var wgs84_coord = coords[i];
-				wgs84_coords += "(" + wgs84_coord[1] + "," + wgs84_coord[0] + ")<br/>";
-
-			}
-			dataPanel.append("WGS84 Coordinates<br/>");
-			dataPanel.append(wgs84_coords + "<br/>\n");
-		}
 		//NOTE: Could show m², ha or km² depending on magnitude
 		dataPanel.append("<h3 class='clean'>Area : " + (area / 10000).toFixed(1) + " ha\n");
+		dataPanel.append('<button type="button" onclick="regionChooser.copyCoordinatesToClipboard()" id="get_wgs84">Copy coordinates</button><br/>\n')
 		dataPanel.append('<div style="visibility:hidden" id="download_region">' + 
 			'<button type="button" onclick="regionChooser.downloadFromSelectedCityGMLs()" id="download_region_button" disabled>Download Region</button><br/>\n' +
 			'<a href="#" onclick="regionChooser.checkCityGMLS(true);">(Select All)</a>\n' +
@@ -390,6 +378,47 @@ var regionChooser = (function(){
 		fxapp.selectRepository();
 	}
 	
+	publicScope.copyCoordinatesToClipboard = function(){
+		var geom = sketch.getGeometry().clone().transform(sourceProj, 'EPSG:4326');
+		var wgs84Coords = geom.getLinearRing(0).getCoordinates();
+		var wktPolygon = "POLYGON((";
+		wktPolygon += wgs84Coords.map(lonLat => lonLat.join(" ")).join(", ");
+		publicScope.copyToClipboard(wktPolygon + "))");
+	}
+	
+	// Copies a string to the clipboard. Must be called from within an
+	// event handler such as click. May return false if it failed, but
+	// this is not always possible. Browser support for Chrome 43+,
+	// Firefox 42+, Safari 10+, Edge and Internet Explorer 10+.
+	// Internet Explorer: The clipboard feature may be disabled by
+	// an administrator. By default a prompt is shown the first
+	// time the clipboard is used (per session).
+	// https://stackoverflow.com/a/33928558/6419007
+	publicScope.copyToClipboard = function(text) {
+	if (window.clipboardData && window.clipboardData.setData) {
+		// Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.
+		return window.clipboardData.setData("Text", text);
+
+	}
+	else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
+		var textarea = document.createElement("textarea");
+		textarea.textContent = text;
+		textarea.style.position = "fixed";  // Prevent scrolling to bottom of page in Microsoft Edge.
+		document.body.appendChild(textarea);
+		textarea.select();
+		try {
+			return document.execCommand("copy");  // Security exception may be thrown by some browsers.
+		}
+		catch (ex) {
+			console.warning("Copy to clipboard failed.", ex);
+			return prompt("Copy to clipboard: Ctrl+C, Enter", text);
+		}
+		finally {
+			document.body.removeChild(textarea);
+		}
+	}
+}
+	
 	publicScope.showRepositoryName = function(path) {
 		document.getElementById("repo_path").textContent = path;
 	}