work on privacy_office
This commit is contained in:
35
src/core/utils/geoCalculations.js
Normal file
35
src/core/utils/geoCalculations.js
Normal 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,
|
||||
};
|
||||
};
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user