Ignore:
Timestamp:
2013-01-11T19:31:28+01:00 (12 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/seamap/Renderer.java

    r29186 r29189  
    6666                        ArrayList<Long> way = map.ways.get(feature.refs);
    6767                        Coord coord = map.nodes.get(way.get(0));
    68             double llat = coord.lat;
    69             double llon = coord.lon;
    70             double area = 0.0;
     68            double llon = Math.toRadians(coord.lon);
     69            double llat = Math.toRadians(coord.lat);
     70            double sigma = 0.0;
    7171                        for (long node : way) {
    7272                                coord = map.nodes.get(node);
    73               area += ((llon * coord.lat) - (llat * coord.lon));
    74               llat = coord.lat;
    75               llon = coord.lon;
     73                                double lat = Math.toRadians(coord.lat);
     74                                double lon = Math.toRadians(coord.lon);
     75                                sigma += (lon * Math.sin(llat)) - (llon * Math.sin(lat));
     76                                llon = lon;
     77                                llat = lat;
    7678            }
    77             return Math.abs(area) / 2.0 * 60.0 * 60.0;
     79            return Math.abs(sigma) / 2.0 * 3444 * 3444;
    7880          }
    7981          return 0.0;
     
    8183
    8284        public static Coord findCentroid(Feature feature) {
     85                double tst = calcArea(feature);
    8386                Coord coord;
    8487                ArrayList<Long> way = map.ways.get(feature.refs);
     
    102105      double lon = coord.lon;
    103106      double lat = coord.lat;
    104       double arc = Math.sqrt(Math.pow((lon-llon), 2) + Math.pow((lat-llat), 2));
     107      double arc = (Math.acos(Math.cos(Math.toRadians(lon-llon)) * Math.cos(Math.toRadians(lat-llat))));
    105108      slat += (lat * arc);
    106109      slon += (lon * arc);
Note: See TracChangeset for help on using the changeset viewer.