diff --git a/backend/src/routes/properties.js b/backend/src/routes/properties.js index 0099609..ee8fada 100644 --- a/backend/src/routes/properties.js +++ b/backend/src/routes/properties.js @@ -16,21 +16,23 @@ const calculatePolygonArea = (coordinates) => { console.log('Calculating area for coordinates:', coordinates); // Shoelace formula for polygon area + // Coordinates are in [latitude, longitude] format (not GeoJSON standard) let area = 0; const n = coordinates.length; for (let i = 0; i < n; i++) { const j = (i + 1) % n; - area += coordinates[i][0] * coordinates[j][1]; - area -= coordinates[j][0] * coordinates[i][1]; + // coordinates[i][0] = latitude, coordinates[i][1] = longitude + area += coordinates[i][1] * coordinates[j][0]; // lng * lat + area -= coordinates[j][1] * coordinates[i][0]; // lng * lat } area = Math.abs(area) / 2; console.log('Raw shoelace area (in deg²):', area); // Convert from decimal degrees to square feet - // Assuming coordinates are [longitude, latitude] (GeoJSON standard) - const avgLat = coordinates.reduce((sum, coord) => sum + coord[1], 0) / n; + // coordinates are [latitude, longitude] format + const avgLat = coordinates.reduce((sum, coord) => sum + coord[0], 0) / n; // coord[0] is latitude console.log('Average latitude:', avgLat); // More accurate conversion using Haversine-based approach