Index: /applications/editors/josm/plugins/smed2/src/seamap/Renderer.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/seamap/Renderer.java	(revision 29188)
+++ /applications/editors/josm/plugins/smed2/src/seamap/Renderer.java	(revision 29189)
@@ -66,14 +66,16 @@
 			ArrayList<Long> way = map.ways.get(feature.refs);
 			Coord coord = map.nodes.get(way.get(0));
-	    double llat = coord.lat;
-	    double llon = coord.lon;
-	    double area = 0.0;
+	    double llon = Math.toRadians(coord.lon);
+	    double llat = Math.toRadians(coord.lat);
+	    double sigma = 0.0;
 			for (long node : way) {
 				coord = map.nodes.get(node);
-	      area += ((llon * coord.lat) - (llat * coord.lon));
-	      llat = coord.lat;
-	      llon = coord.lon;
+				double lat = Math.toRadians(coord.lat);
+				double lon = Math.toRadians(coord.lon);
+				sigma += (lon * Math.sin(llat)) - (llon * Math.sin(lat));
+				llon = lon;
+				llat = lat;
 	    }
-	    return Math.abs(area) / 2.0 * 60.0 * 60.0;
+	    return Math.abs(sigma) / 2.0 * 3444 * 3444;
 	  }
 	  return 0.0;
@@ -81,4 +83,5 @@
 
 	public static Coord findCentroid(Feature feature) {
+		double tst = calcArea(feature);
 		Coord coord;
 		ArrayList<Long> way = map.ways.get(feature.refs);
@@ -102,5 +105,5 @@
       double lon = coord.lon;
       double lat = coord.lat;
-      double arc = Math.sqrt(Math.pow((lon-llon), 2) + Math.pow((lat-llat), 2));
+      double arc = (Math.acos(Math.cos(Math.toRadians(lon-llon)) * Math.cos(Math.toRadians(lat-llat))));
       slat += (lat * arc);
       slon += (lon * arc);
Index: /applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 29188)
+++ /applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 29189)
@@ -113,5 +113,5 @@
 		editFrame.setResizable(true);
 		editFrame.setAlwaysOnTop(true);
-		editFrame.setVisible(true);
+		editFrame.setVisible(false);
 		panelMain = new PanelMain();
 		editFrame.add(panelMain);
@@ -169,4 +169,6 @@
 		Node nextNode = null;
 		Node node = null;
+		Way nextWay = null;
+		Way way = null;
 
 		if (selection.size() == 0) showFrame.setVisible(false);
@@ -179,4 +181,16 @@
 						showFrame.setVisible(true);
 						showFrame.showFeature(node, map);
+					}
+				} else {
+					showFrame.setVisible(false);
+				}
+			}
+			else if (osm instanceof Way) {
+				nextWay = (Way) osm;
+				if (selection.size() == 1) {
+					if (nextWay.compareTo(way) != 0) {
+						way = nextWay;
+						showFrame.setVisible(true);
+						showFrame.showFeature(way, map);
 					}
 				} else {
