Commit 72645e3f authored by duminil's avatar duminil
Browse files

Refresh after each point for RegionChooser.

parent 138dffec
...@@ -7,9 +7,11 @@ function PolygonCreator(map) { ...@@ -7,9 +7,11 @@ function PolygonCreator(map) {
this.map = map; this.map = map;
this.pen = new Pen(this.map); this.pen = new Pen(this.map);
var thisOjb = this; var thisOjb = this;
proj4.defs("EPSG:31467", "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0" proj4.defs("EPSG:31467",
+ " +ellps=bessel +datum=potsdam +units=m +no_defs"); // http://spatialreference.org/ref/epsg/31467/proj4js/ "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0"
this.event = google.maps.event.addListener(thisOjb.map, 'click', function(event) { + " +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); thisOjb.pen.draw(event.latLng);
}); });
this.destroy = function() { this.destroy = function() {
...@@ -32,19 +34,17 @@ function Pen(map) { ...@@ -32,19 +34,17 @@ function Pen(map) {
if (null != this.polygon) { if (null != this.polygon) {
alert('Click Reset to draw another'); alert('Click Reset to draw another');
} else { } 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); this.drawPolygon(this.listOfDots);
$('#dataPanel').empty(); this.refreshInfo();
$('#dataPanel').append("WGS84 Coordinates<br/>");
$('#dataPanel').append(this.getWGS84Data() + "<br/>\n");
$('#dataPanel').append("GSK3 Coordinates<br/>");
$('#dataPanel').append(this.getGSK3DataAndArea());
} else { } else {
if (null != this.polyline) { if (null != this.polyline) {
this.polyline.remove(); this.polyline.remove();
} }
var dot = new Dot(latLng, this.map, this); var dot = new Dot(latLng, this.map, this);
this.listOfDots.push(dot); this.listOfDots.push(dot);
this.refreshInfo();
if (this.listOfDots.length > 1) { if (this.listOfDots.length > 1) {
this.polyline = new Line(this.listOfDots, this.map); this.polyline = new Line(this.listOfDots, this.map);
} }
...@@ -53,7 +53,7 @@ function Pen(map) { ...@@ -53,7 +53,7 @@ function Pen(map) {
} }
this.drawPolygon = function(listOfDots, color, des, id) { this.drawPolygon = function(listOfDots, color, des, id) {
this.polygon = new Polygon(listOfDots, this.map, this, color, des, id); this.polygon = new Polygon(listOfDots, this.map, this, color, des, id);
this.deleteMis(); // this.deleteMis();
} }
this.deleteMis = function() { this.deleteMis = function() {
$.each(this.listOfDots, function(index, value) { $.each(this.listOfDots, function(index, value) {
...@@ -79,39 +79,43 @@ function Pen(map) { ...@@ -79,39 +79,43 @@ function Pen(map) {
return this.listOfDots; return this.listOfDots;
} }
this.getWGS84Data = function() { this.getWGS84Data = function() {
if (this.polygon != null) { var data = "";
var data = ""; for (var i = 0; i < this.getListOfDots().length; i++) {
var paths = this.polygon.getPlots(); data += this.getListOfDots()[i].latLng + "<br/>";
var xs = [];
var ys = [];
paths.getAt(0).forEach(function(value, index) {
data += (value.toString() + "<br/>");
});
return data;
} else {
return null;
} }
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) { this.getGSK3DataAndArea = function(referenceSystem) {
if (this.polygon != null) { var data = "";
var data = ""; var fromProjection = proj4('EPSG:4326');
var paths = this.polygon.getPlots(); var toProjection = proj4('EPSG:31467');
var fromProjection = proj4('EPSG:4326'); var xs = [];
var toProjection = proj4('EPSG:31467'); var ys = [];
var xs = []; var listOfDots = this.getListOfDots();
var ys = []; var n = listOfDots.length;
paths.getAt(0).forEach(function(value, index) { for (var i = 0; i < n; i++) {
var gk3_coords = proj4(fromProjection, toProjection, [ value.lng(), value.lat() ]); var latLng = listOfDots[i].latLng;
xs.push(gk3_coords[0] - 3500000); var gk3_coords = proj4(fromProjection, toProjection, [
ys.push(gk3_coords[1] - 5000000); latLng.lng(), latLng.lat() ]);
data += "(" + (gk3_coords.toString() + ")<br/>"); xs.push(gk3_coords[0] - 3500000);
}); ys.push(gk3_coords[1] - 5000000);
data += "<br/>\nArea : " + (Math.round(polygonArea(xs, ys) / 1000) / 10).toString() + " ha<br/>"; data += "(" + (gk3_coords.toString() + ")<br/>");
return data; }
} else { if (n > 2) {
return null; 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) { ...@@ -203,9 +207,10 @@ function Polygon(listOfDots, map, pen, color) {
} }
this.addListener = function() { this.addListener = function() {
var thisPolygon = this.polygonObj; var thisPolygon = this.polygonObj;
google.maps.event.addListener(thisPolygon, 'rightclick', function(event) { google.maps.event.addListener(thisPolygon, 'rightclick',
return false; function(event) {
}); return false;
});
} }
this.addListener(); this.addListener();
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment