work on privacy_office

This commit is contained in:
2025-11-04 09:06:04 +03:30
parent 7f11222330
commit 26924102f7
13 changed files with 550 additions and 128 deletions

View File

@@ -0,0 +1,35 @@
import * as turf from "@turf/turf";
export const calculatePolygonMetrics = (coordinates, isLatLngOrder = true) => {
if (!coordinates || coordinates.length < 3) {
return { area: 0, sides: [], coordinates: [] };
}
const geoCoords = isLatLngOrder
? coordinates.map(([lat, lng]) => [lng, lat])
: coordinates.map(([lng, lat]) => [lng, lat]);
if (
geoCoords[0][0] !== geoCoords[geoCoords.length - 1][0] ||
geoCoords[0][1] !== geoCoords[geoCoords.length - 1][1]
) {
geoCoords.push(geoCoords[0]);
}
const polygon = turf.polygon([geoCoords]);
const area = turf.area(polygon);
const sides = [];
for (let i = 0; i < geoCoords.length - 1; i++) {
const line = turf.lineString([geoCoords[i], geoCoords[i + 1]]);
const length = turf.length(line, { units: "meters" });
sides.push(length);
}
return {
area,
sides,
coordinates: geoCoords,
};
};

View File

@@ -238,4 +238,5 @@ export const CREATE_RAHDARAN_ITEM = api + "/api/v3/rahdaran";
// estelam harim
export const GET_CITY_ADMIN_LIST = api + "/api/v3/harim/province_office";
export const GET_INQUIRY_PRIVACY_STATE_LIST = api + "/api/v3/harim/detail/states";
export const CITY_ADMIN_FEEDBACK = api + "/api/v3/harim/province_office/feedback";
export const CITY_ADMIN_FEEDBACK = api + "/api/v3/harim/province_office/feedback";
export const GET_PRIVACY_ADMIN_LIST = api + "/api/v3/harim/harim_office"