build and format
This commit is contained in:
@@ -1,35 +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,
|
||||
};
|
||||
};
|
||||
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,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
export default function groupByEdareAxisStep(data) {
|
||||
return data.reduce((acc, item) => {
|
||||
const { edare_id, axis_type_id } = item;
|
||||
|
||||
if (!acc[edare_id]) acc[edare_id] = {};
|
||||
if (!acc[edare_id][axis_type_id]) acc[edare_id][axis_type_id] = {};
|
||||
|
||||
acc[edare_id][axis_type_id] = { ...item };
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
export default function groupByEdareAxisStep(data) {
|
||||
return data.reduce((acc, item) => {
|
||||
const { edare_id, axis_type_id } = item;
|
||||
|
||||
if (!acc[edare_id]) acc[edare_id] = {};
|
||||
if (!acc[edare_id][axis_type_id]) acc[edare_id][axis_type_id] = {};
|
||||
|
||||
acc[edare_id][axis_type_id] = { ...item };
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
export default function groupByProvinceAxisStep(data) {
|
||||
return data.reduce((acc, item) => {
|
||||
const { province_id, axis_type_id } = item;
|
||||
|
||||
if (!acc[province_id]) acc[province_id] = {};
|
||||
if (!acc[province_id][axis_type_id]) acc[province_id][axis_type_id] = {};
|
||||
|
||||
acc[province_id][axis_type_id] = { ...item };
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
export default function groupByProvinceAxisStep(data) {
|
||||
return data.reduce((acc, item) => {
|
||||
const { province_id, axis_type_id } = item;
|
||||
|
||||
if (!acc[province_id]) acc[province_id] = {};
|
||||
if (!acc[province_id][axis_type_id]) acc[province_id][axis_type_id] = {};
|
||||
|
||||
acc[province_id][axis_type_id] = { ...item };
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
export const makeDateTime = (date, time) => {
|
||||
if (!date) return null;
|
||||
const d = new Date(date);
|
||||
if (time) {
|
||||
const t = new Date(time);
|
||||
d.setHours(t.getHours(), t.getMinutes(), 0, 0);
|
||||
}
|
||||
return d;
|
||||
};
|
||||
export const makeDateTime = (date, time) => {
|
||||
if (!date) return null;
|
||||
const d = new Date(date);
|
||||
if (time) {
|
||||
const t = new Date(time);
|
||||
d.setHours(t.getHours(), t.getMinutes(), 0, 0);
|
||||
}
|
||||
return d;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export const missionCategoryTypes = [
|
||||
{ id: 1, name_fa: "فعالیت روزانه" },
|
||||
{ id: 2, name_fa: "گشت راهداری" },
|
||||
// { id: 3, name_fa: "واکنش سریع" },
|
||||
];
|
||||
export const missionCategoryTypes = [
|
||||
{ id: 1, name_fa: "فعالیت روزانه" },
|
||||
{ id: 2, name_fa: "گشت راهداری" },
|
||||
// { id: 3, name_fa: "واکنش سریع" },
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export const missionRegions = [
|
||||
{ id: 1, name_fa: "داخل شهر" },
|
||||
{ id: 2, name_fa: "بیرون شهر - داخل محدوده" },
|
||||
{ id: 3, name_fa: "بیرون شهر - خارج محدوده" },
|
||||
];
|
||||
export const missionRegions = [
|
||||
{ id: 1, name_fa: "داخل شهر" },
|
||||
{ id: 2, name_fa: "بیرون شهر - داخل محدوده" },
|
||||
{ id: 3, name_fa: "بیرون شهر - خارج محدوده" },
|
||||
];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export const missionTypes = [
|
||||
{ id: 1, name_fa: "ساعتی" },
|
||||
{ id: 2, name_fa: "روزانه" },
|
||||
];
|
||||
export const missionTypes = [
|
||||
{ id: 1, name_fa: "ساعتی" },
|
||||
{ id: 2, name_fa: "روزانه" },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user