From 72645e3f4c496bbd3fe7039c90d0d7e2c480c0ca Mon Sep 17 00:00:00 2001
From: duminil <duminil@2c044af0-2e85-064f-a0c3-7471430cffcd>
Date: Mon, 15 Dec 2014 11:32:41 +0000
Subject: [PATCH] Refresh after each point for RegionChooser.

---
 website/polygon.js | 87 ++++++++++++++++++++++++----------------------
 1 file changed, 46 insertions(+), 41 deletions(-)

diff --git a/website/polygon.js b/website/polygon.js
index fe4a98e..7ccd78f 100644
--- a/website/polygon.js
+++ b/website/polygon.js
@@ -7,9 +7,11 @@ function PolygonCreator(map) {
 	this.map = map;
 	this.pen = new Pen(this.map);
 	var thisOjb = this;
-	proj4.defs("EPSG:31467", "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0"
-			+ " +ellps=bessel +datum=potsdam +units=m +no_defs"); // http://spatialreference.org/ref/epsg/31467/proj4js/
-	this.event = google.maps.event.addListener(thisOjb.map, 'click', function(event) {
+	proj4.defs("EPSG:31467",
+			"+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0"
+					+ " +ellps=bessel +datum=potsdam +units=m +no_defs"); // http://spatialreference.org/ref/epsg/31467/proj4js/
+	this.event = google.maps.event.addListener(thisOjb.map, 'click', function(
+			event) {
 		thisOjb.pen.draw(event.latLng);
 	});
 	this.destroy = function() {
@@ -32,19 +34,17 @@ function Pen(map) {
 		if (null != this.polygon) {
 			alert('Click Reset to draw another');
 		} else {
-			if (this.currentDot != null && this.listOfDots.length > 1 && this.currentDot == this.listOfDots[0]) {
+			if (this.currentDot != null && this.listOfDots.length > 1
+					&& this.currentDot == this.listOfDots[0]) {
 				this.drawPolygon(this.listOfDots);
-				$('#dataPanel').empty();
-				$('#dataPanel').append("WGS84 Coordinates<br/>");
-				$('#dataPanel').append(this.getWGS84Data() + "<br/>\n");
-				$('#dataPanel').append("GSK3 Coordinates<br/>");
-				$('#dataPanel').append(this.getGSK3DataAndArea());
+				this.refreshInfo();
 			} else {
 				if (null != this.polyline) {
 					this.polyline.remove();
 				}
 				var dot = new Dot(latLng, this.map, this);
 				this.listOfDots.push(dot);
+				this.refreshInfo();
 				if (this.listOfDots.length > 1) {
 					this.polyline = new Line(this.listOfDots, this.map);
 				}
@@ -53,7 +53,7 @@ function Pen(map) {
 	}
 	this.drawPolygon = function(listOfDots, color, des, id) {
 		this.polygon = new Polygon(listOfDots, this.map, this, color, des, id);
-		this.deleteMis();
+		// this.deleteMis();
 	}
 	this.deleteMis = function() {
 		$.each(this.listOfDots, function(index, value) {
@@ -79,39 +79,43 @@ function Pen(map) {
 		return this.listOfDots;
 	}
 	this.getWGS84Data = function() {
-		if (this.polygon != null) {
-			var data = "";
-			var paths = this.polygon.getPlots();
-			var xs = [];
-			var ys = [];
-			paths.getAt(0).forEach(function(value, index) {
-				data += (value.toString() + "<br/>");
-			});
-			return data;
-		} else {
-			return null;
+		var data = "";
+		for (var i = 0; i < this.getListOfDots().length; i++) {
+			data += this.getListOfDots()[i].latLng + "<br/>";
 		}
+		return data;
+	}
+	this.refreshInfo = function() {
+		$('#dataPanel').empty();
+		$('#dataPanel').append("WGS84 Coordinates<br/>");
+		$('#dataPanel').append(this.getWGS84Data() + "<br/>\n");
+		$('#dataPanel').append("GSK3 Coordinates<br/>");
+		$('#dataPanel').append(this.getGSK3DataAndArea());
 	}
 
 	this.getGSK3DataAndArea = function(referenceSystem) {
-		if (this.polygon != null) {
-			var data = "";
-			var paths = this.polygon.getPlots();
-			var fromProjection = proj4('EPSG:4326');
-			var toProjection = proj4('EPSG:31467');
-			var xs = [];
-			var ys = [];
-			paths.getAt(0).forEach(function(value, index) {
-				var gk3_coords = proj4(fromProjection, toProjection, [ value.lng(), value.lat() ]);
-				xs.push(gk3_coords[0] - 3500000);
-				ys.push(gk3_coords[1] - 5000000);
-				data += "(" + (gk3_coords.toString() + ")<br/>");
-			});
-			data += "<br/>\nArea : " + (Math.round(polygonArea(xs, ys) / 1000) / 10).toString() + " ha<br/>";
-			return data;
-		} else {
-			return null;
+		var data = "";
+		var fromProjection = proj4('EPSG:4326');
+		var toProjection = proj4('EPSG:31467');
+		var xs = [];
+		var ys = [];
+		var listOfDots = this.getListOfDots();
+		var n = listOfDots.length;
+		for (var i = 0; i < n; i++) {
+			var latLng = listOfDots[i].latLng;
+			var gk3_coords = proj4(fromProjection, toProjection, [
+					latLng.lng(), latLng.lat() ]);
+			xs.push(gk3_coords[0] - 3500000);
+			ys.push(gk3_coords[1] - 5000000);
+			data += "(" + (gk3_coords.toString() + ")<br/>");
+		}
+		if (n > 2) {
+			data += "<br/>\nArea : "
+					+ (Math.round(polygonArea(xs, ys) / 1000) / 10).toString()
+					+ " ha<br/>";
 		}
+		return data;
+
 	}
 }
 
@@ -203,9 +207,10 @@ function Polygon(listOfDots, map, pen, color) {
 	}
 	this.addListener = function() {
 		var thisPolygon = this.polygonObj;
-		google.maps.event.addListener(thisPolygon, 'rightclick', function(event) {
-			return false;
-		});
+		google.maps.event.addListener(thisPolygon, 'rightclick',
+				function(event) {
+					return false;
+				});
 	}
 	this.addListener();
 }
-- 
GitLab