Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getCentroid: function() {
- if (this.components) {
- var len = this.components.length;
- if (len > 0 && len <= 2) {
- return this.components[0].clone();
- } else if (len > 2) {
- var sumX = 0.0;
- var sumY = 0.0;
- var averX = this.components[0].x;
- var averY = this.components[0].y;
- for (var i = 0; i < len - 1; i++) {
- var b = this.components[i];
- var c = this.components[i+1];
- sumX += (b.x + c.x - 2 * averX) * ((b.x - averX) * (c.y - averY) - (c.x - averX) * (b.y - averY));
- sumY += (b.y + c.y - 2 * averY) * ((b.x - averX) * (c.y - averY) - (c.x - averX) * (b.y - averY));
- }
- var area = -1 * this.getArea();
- var x = averX + sumX / (6 * area);
- var y = averY + sumY / (6 * area);
- return new OpenLayers.Geometry.Point(x, y);
- } else {
- return null;
- }
- }
- },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement