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