@dartcom/ui-kit 10.6.0 → 10.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal/modal.esm.js +1 -1
- package/dist/components/modal/styles.d.ts +1 -2
- package/dist/components/modal/styles.d.ts.map +1 -1
- package/dist/components/modal/styles.esm.js +1 -1
- package/dist/components/modal/types.d.ts +2 -2
- package/dist/components/modal/types.d.ts.map +1 -1
- package/dist/index.cjs +76 -26
- package/dist/index.esm.js +1 -1
- package/dist/layouts/auth/auth.esm.js +1 -1
- package/dist/pages/auth/auth.esm.js +1 -1
- package/dist/services/map/map.service.d.ts +37 -0
- package/dist/services/map/map.service.d.ts.map +1 -1
- package/dist/services/map/map.service.esm.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;;AAkC3C,wBAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import*as o from"react";import"../../stores/alert/alert.esm.js";import{modalStore as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import*as o from"react";import"../../stores/alert/alert.esm.js";import{modalStore as r}from"../../stores/modal/modal.esm.js";import m from"@mui/material/Modal";import"../../node_modules/mobx-react-lite/es/index.esm.js";import{ModalContainer as s}from"./styles.esm.js";import{observer as t}from"../../node_modules/mobx-react-lite/es/observer.esm.js";var a=t(({name:t,children:a,onClose:l,onOpen:i})=>{const d=o.useId(),n=r.getIsOpen(t);return o.useEffect(()=>{n?i?.({name:t}):l?.({name:t})},[n]),e(m,{open:n,onClose:()=>{r.close(t)},"aria-labelledby":`modal-${d}-title`,"aria-describedby":`modal-${d}-description`,children:e(s,{children:a})})});export{a as default};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const modalStyle: SxProps;
|
|
1
|
+
export declare const ModalContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
3
2
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/components/modal/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/components/modal/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,mXA6BzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const o={position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",
|
|
1
|
+
import{styled as t,Box as o}from"@mui/material";const i=t(o)(({theme:t})=>{const{spacing:o,breakpoints:i,palette:a}=t;return{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:a.white.main,borderRadius:o(2),padding:o(2),maxHeight:"90vh",overflow:"auto",[i.up("sm")]:{minWidth:400},[i.down("sm")]:{minWidth:"80vw"}}});export{i as ModalContainer};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export interface CustomModalProps {
|
|
2
2
|
name: string;
|
|
3
3
|
onClose?: (props: {
|
|
4
|
-
name:
|
|
4
|
+
name: string;
|
|
5
5
|
}) => void;
|
|
6
6
|
onOpen?: (props: {
|
|
7
|
-
name:
|
|
7
|
+
name: string;
|
|
8
8
|
}) => void;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5C"}
|
package/dist/index.cjs
CHANGED
|
@@ -20,7 +20,6 @@ var Checkbox = require('@mui/material/Checkbox');
|
|
|
20
20
|
var FormControlLabel = require('@mui/material/FormControlLabel');
|
|
21
21
|
var styles$2 = require('@mui/material/styles');
|
|
22
22
|
var DateField$1 = require('@mui/x-date-pickers/DateField');
|
|
23
|
-
var Box = require('@mui/material/Box');
|
|
24
23
|
var Modal = require('@mui/material/Modal');
|
|
25
24
|
var lab = require('@mui/lab');
|
|
26
25
|
var xDatePickers = require('@mui/x-date-pickers');
|
|
@@ -9433,6 +9432,60 @@ class MapService {
|
|
|
9433
9432
|
}
|
|
9434
9433
|
}
|
|
9435
9434
|
}
|
|
9435
|
+
/**
|
|
9436
|
+
* Вычисляет два узла, расположенных перпендикулярно отрезку
|
|
9437
|
+
* в его конечной точке на заданном расстоянии.
|
|
9438
|
+
*
|
|
9439
|
+
* Алгоритм:
|
|
9440
|
+
* 1. Вычисляет обратный азимут (направление от конечной точки к начальной).
|
|
9441
|
+
* 2. Поворачивает его на ±90° — получает два перпендикулярных направления.
|
|
9442
|
+
* 3. Смещает конечную точку на `offset` метров в каждую сторону,
|
|
9443
|
+
* используя плоскую аппроксимацию (приемлемо при offset ≤ 2000 м).
|
|
9444
|
+
*
|
|
9445
|
+
* Принимает и возвращает координаты в формате {@link FrontendLatLng}
|
|
9446
|
+
* (`{ lat, lng }`) для прямой совместимости с Leaflet.
|
|
9447
|
+
*
|
|
9448
|
+
* Типичный сценарий использования: построение нормалей к маршруту,
|
|
9449
|
+
* поперечных контрольных точек, перпендикулярных смещений на линии.
|
|
9450
|
+
*
|
|
9451
|
+
* @param params - Параметры расчёта.
|
|
9452
|
+
* @param params.from - Начальная точка отрезка.
|
|
9453
|
+
* @param params.to - Конечная точка отрезка. Перпендикуляр строится именно здесь.
|
|
9454
|
+
* @param params.offset - Расстояние смещения в метрах (по умолчанию 100 м).
|
|
9455
|
+
* @returns Два узла в формате {@link FrontendLatLng}, сдвинутых перпендикулярно
|
|
9456
|
+
* отрезку влево и вправо от конечной точки.
|
|
9457
|
+
*
|
|
9458
|
+
* @example
|
|
9459
|
+
* const { left, right } = mapService.getPerpendicularPoints({
|
|
9460
|
+
* from: { lat: 55.75, lng: 37.61 },
|
|
9461
|
+
* to: { lat: 55.76, lng: 37.62 },
|
|
9462
|
+
* });
|
|
9463
|
+
*/
|
|
9464
|
+
getPerpendicularPoints({ from, to, offset = 100, }) {
|
|
9465
|
+
const φ1 = from.lat * this.DEG_TO_RAD;
|
|
9466
|
+
const λ1 = from.lng * this.DEG_TO_RAD;
|
|
9467
|
+
const φ2 = to.lat * this.DEG_TO_RAD;
|
|
9468
|
+
const λ2 = to.lng * this.DEG_TO_RAD;
|
|
9469
|
+
const Δλ = λ1 - λ2;
|
|
9470
|
+
const y = Math.sin(Δλ) * Math.cos(φ1);
|
|
9471
|
+
const x = Math.cos(φ2) * Math.sin(φ1) - Math.sin(φ2) * Math.cos(φ1) * Math.cos(Δλ);
|
|
9472
|
+
const reverseBearing = this.normalizeBearing(Math.atan2(y, x) * this.RAD_TO_DEG);
|
|
9473
|
+
const leftBearing = this.normalizeBearing(reverseBearing + 90);
|
|
9474
|
+
const rightBearing = this.normalizeBearing(reverseBearing + 270);
|
|
9475
|
+
const metersPerDegLat = (this.EARTH_RADIUS_M * Math.PI) / 180;
|
|
9476
|
+
const metersPerDegLon = metersPerDegLat * Math.cos(φ2);
|
|
9477
|
+
const shift = (bearing) => {
|
|
9478
|
+
const bearingRad = bearing * this.DEG_TO_RAD;
|
|
9479
|
+
return {
|
|
9480
|
+
lat: to.lat + (offset * Math.cos(bearingRad)) / metersPerDegLat,
|
|
9481
|
+
lng: to.lng + (offset * Math.sin(bearingRad)) / metersPerDegLon,
|
|
9482
|
+
};
|
|
9483
|
+
};
|
|
9484
|
+
return {
|
|
9485
|
+
left: shift(leftBearing),
|
|
9486
|
+
right: shift(rightBearing),
|
|
9487
|
+
};
|
|
9488
|
+
}
|
|
9436
9489
|
}
|
|
9437
9490
|
/**
|
|
9438
9491
|
* Сервис для работы с географическими координатами и базовыми
|
|
@@ -44781,19 +44834,26 @@ const Loader = (props) => {
|
|
|
44781
44834
|
return jsxRuntime.jsx(material.CircularProgress, { ...props });
|
|
44782
44835
|
};
|
|
44783
44836
|
|
|
44784
|
-
const
|
|
44785
|
-
|
|
44786
|
-
|
|
44787
|
-
|
|
44788
|
-
|
|
44789
|
-
|
|
44790
|
-
|
|
44791
|
-
|
|
44792
|
-
|
|
44793
|
-
|
|
44794
|
-
|
|
44795
|
-
|
|
44796
|
-
|
|
44837
|
+
const ModalContainer = material.styled(material.Box)(({ theme }) => {
|
|
44838
|
+
const { spacing, breakpoints, palette } = theme;
|
|
44839
|
+
return {
|
|
44840
|
+
position: 'absolute',
|
|
44841
|
+
top: '50%',
|
|
44842
|
+
left: '50%',
|
|
44843
|
+
transform: 'translate(-50%, -50%)',
|
|
44844
|
+
backgroundColor: palette.white.main,
|
|
44845
|
+
borderRadius: spacing(2),
|
|
44846
|
+
padding: spacing(2),
|
|
44847
|
+
maxHeight: '90vh',
|
|
44848
|
+
overflow: 'auto',
|
|
44849
|
+
[breakpoints.up('sm')]: {
|
|
44850
|
+
minWidth: 400,
|
|
44851
|
+
},
|
|
44852
|
+
[breakpoints.down('sm')]: {
|
|
44853
|
+
minWidth: '80vw',
|
|
44854
|
+
},
|
|
44855
|
+
};
|
|
44856
|
+
});
|
|
44797
44857
|
|
|
44798
44858
|
const CustomModal = ({ name, children, onClose, onOpen, }) => {
|
|
44799
44859
|
const modalId = React__namespace.useId();
|
|
@@ -44808,17 +44868,7 @@ const CustomModal = ({ name, children, onClose, onOpen, }) => {
|
|
|
44808
44868
|
}, [isOpen]);
|
|
44809
44869
|
return (jsxRuntime.jsx(Modal, { open: isOpen, onClose: () => {
|
|
44810
44870
|
modalStore.close(name);
|
|
44811
|
-
}, "aria-labelledby": `modal-${modalId}-title`, "aria-describedby": `modal-${modalId}-description`, children: jsxRuntime.jsx(
|
|
44812
|
-
return {
|
|
44813
|
-
...modalStyle,
|
|
44814
|
-
[breakpoints.up('sm')]: {
|
|
44815
|
-
minWidth: 400,
|
|
44816
|
-
},
|
|
44817
|
-
[breakpoints.down('sm')]: {
|
|
44818
|
-
minWidth: '80vw',
|
|
44819
|
-
},
|
|
44820
|
-
};
|
|
44821
|
-
}, children: children }) }));
|
|
44871
|
+
}, "aria-labelledby": `modal-${modalId}-title`, "aria-describedby": `modal-${modalId}-description`, children: jsxRuntime.jsx(ModalContainer, { children: children }) }));
|
|
44822
44872
|
};
|
|
44823
44873
|
var modal = observer(CustomModal);
|
|
44824
44874
|
|
|
@@ -48309,6 +48359,7 @@ exports.LeafletLayer = LeafletLayer;
|
|
|
48309
48359
|
exports.List = CustomList;
|
|
48310
48360
|
exports.Loader = Loader;
|
|
48311
48361
|
exports.Modal = modal;
|
|
48362
|
+
exports.ModalContainer = ModalContainer;
|
|
48312
48363
|
exports.NoData = NoData;
|
|
48313
48364
|
exports.Paragraph = Paragraph;
|
|
48314
48365
|
exports.Select = FormSelect;
|
|
@@ -48378,7 +48429,6 @@ exports.localizationService = localizationService;
|
|
|
48378
48429
|
exports.loggerService = loggerService;
|
|
48379
48430
|
exports.mapService = mapService;
|
|
48380
48431
|
exports.modalStore = modalStore;
|
|
48381
|
-
exports.modalStyle = modalStyle;
|
|
48382
48432
|
exports.numberRequiredSchema = numberRequiredSchema;
|
|
48383
48433
|
exports.numberSchema = numberSchema;
|
|
48384
48434
|
exports.parseTrafficSignCSVFile = parseTrafficSignCSVFile;
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{alertStore}from"./stores/alert/alert.esm.js";export{modalStore}from"./stores/modal/modal.esm.js";export{Operations}from"./lib/types.esm.js";export{useDeviceType}from"./lib/hooks/useDeviceType.esm.js";export{useGetUser,useLazyGetUser}from"./lib/hooks/useGetUser.esm.js";export{useShowErrorSnackbar}from"./lib/hooks/useShowErrorSnackbar.esm.js";export{useShowSnackbar}from"./lib/hooks/useShowSnackbar.esm.js";export{useSignIn}from"./lib/hooks/useSignIn.esm.js";export{useSignOut}from"./lib/hooks/useSignOut.esm.js";export{copyInformation,encodeString,getEntityNames,getImageSrc,getNewId,getUniqueKey,getUrlencodedBody,showSnackbar}from"./lib/utils.esm.js";export{_testApiKeys}from"./configs/global/constants.esm.js";export{GlobalConfig}from"./configs/global/global.esm.js";export{API_METHODS}from"./constants/api.esm.js";export{PanelsNames}from"./constants/map.esm.js";export{arraySchema,dateRequiredSchema,dateSchema,getStringRequiredSchema,getStringSchema,numberRequiredSchema,numberSchema}from"./constants/schema.esm.js";export{default as Accordion}from"./components/accordion/accordion.esm.js";export{default as AlertDialog}from"./components/alert-dialog/alert-dialog.esm.js";export{default as Button}from"./components/buttons/button/button.esm.js";export{default as DeleteButton}from"./components/buttons/delete/delete.esm.js";export{default as IconButton}from"./components/buttons/icon/icon.esm.js";export{default as UploadButton}from"./components/buttons/upload/upload.esm.js";export{default as Card}from"./components/card/card.esm.js";export{default as Checkbox}from"./components/checkbox/checkbox.esm.js";export{default as CopyText}from"./components/copy-text/copy-text.esm.js";export{default as DateField}from"./components/date-field/date-field.esm.js";export{default as DragList}from"./components/drag-list/drag-list.esm.js";export{default as DraggableContainer}from"./components/draggable-container/draggable-container.esm.js";export{default as ErrorBoundary}from"./components/error-boundary/error-boundary.esm.js";export{default as FormErrorMessage}from"./components/form/error-message/error-message.esm.js";export{default as Form}from"./components/form/form.esm.js";export{useFormContext}from"./components/form/hooks/useFormContext.esm.js";export{default as Input}from"./components/input/input.esm.js";export{SourceLayers,TangramSourceNames}from"./components/layers/leaflet/lib/types.esm.js";export{getAllLayers,getAllPointLayers,getAllPolygonLayers,getAllPolylineLayers,getBackendDate,getLayerModalsNames,getLayerName,getValidLayer}from"./components/layers/leaflet/lib/utils.esm.js";export{sourceUrl,tile_size}from"./components/layers/leaflet/config/constants.esm.js";export{getBuildingLayers}from"./components/layers/leaflet/layers/building/utils.esm.js";export{getBuiltupAreaLayers}from"./components/layers/leaflet/layers/builtup-area/utils.esm.js";export{getAdminAreaLayers}from"./components/layers/leaflet/layers/admin-area/utils.esm.js";export{getCameraLayers}from"./components/layers/leaflet/layers/camera/lib/utils.esm.js";export{cameraConfig}from"./components/layers/leaflet/layers/camera/config/constants.esm.js";export{getCityPOILayers}from"./components/layers/leaflet/layers/city-POI/utils.esm.js";export{getConditionLayers}from"./components/layers/leaflet/layers/condition/utils.esm.js";export{getFacilityAreaLayers}from"./components/layers/leaflet/layers/facility-area/utils.esm.js";export{landuseAreaFeatureTypes,landuseAreaLayerGeometryData,landuseAreaLayerLabelData}from"./components/layers/leaflet/layers/landuse-area/constants.esm.js";export{getLanduseAreaGeometryLayer,getLanduseAreaLabelLayer,getLanduseAreaLayers}from"./components/layers/leaflet/layers/landuse-area/utils.esm.js";export{getLaneMarkingArrowLayers}from"./components/layers/leaflet/layers/lane-marking-arrow/utils.esm.js";export{getLinkLayers}from"./components/layers/leaflet/layers/link/utils.esm.js";export{getNatureFieldLayers}from"./components/layers/leaflet/layers/nature-field/utils.esm.js";export{getNatureForestGeometryLayer,getNatureForestLayers}from"./components/layers/leaflet/layers/nature-forest/utils.esm.js";export{getOceanAreaLayers}from"./components/layers/leaflet/layers/ocean-area/utils.esm.js";export{getOneWayLayers}from"./components/layers/leaflet/layers/one-way/utils.esm.js";export{getPillarLayers}from"./components/layers/leaflet/layers/pillar/lib/utils.esm.js";export{pillarConfig}from"./components/layers/leaflet/layers/pillar/config/constants.esm.js";export{catIds,text_source}from"./components/layers/leaflet/layers/POI/constants.esm.js";export{getDefaultPOI,getPOILayers,getPOITypeLayer}from"./components/layers/leaflet/layers/POI/utils.esm.js";export{getPointAddressLayers}from"./components/layers/leaflet/layers/point-address/utils.esm.js";export{getRailroadLayers}from"./components/layers/leaflet/layers/railroad/utils.esm.js";export{getTrafficSignImgSrc,getTrafficSignLayers,parseTrafficSignCSVFile}from"./components/layers/leaflet/layers/traffic-sign/lib/utils.esm.js";export{allTrafficSigns,trafficSignConfig,trafficSigns,trafficSignsDop}from"./components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";export{getTrafficSignalLayers}from"./components/layers/leaflet/layers/traffic-signal/lib/utils.esm.js";export{trafficSignalConfig}from"./components/layers/leaflet/layers/traffic-signal/config/constants.esm.js";export{getWaterAreaLayers}from"./components/layers/leaflet/layers/water-area/utils.esm.js";export{getWaterLinkLayers}from"./components/layers/leaflet/layers/water-link/utils.esm.js";export{default as LeafletLayer}from"./components/layers/leaflet/leaflet.esm.js";export{TangramLayer}from"./components/layers/leaflet/services/tangram-layer.esm.js";export{default as List}from"./components/list/list.esm.js";export{default as Loader}from"./components/loader/loader.esm.js";export{default as Modal}from"./components/modal/modal.esm.js";export{
|
|
1
|
+
export{alertStore}from"./stores/alert/alert.esm.js";export{modalStore}from"./stores/modal/modal.esm.js";export{Operations}from"./lib/types.esm.js";export{useDeviceType}from"./lib/hooks/useDeviceType.esm.js";export{useGetUser,useLazyGetUser}from"./lib/hooks/useGetUser.esm.js";export{useShowErrorSnackbar}from"./lib/hooks/useShowErrorSnackbar.esm.js";export{useShowSnackbar}from"./lib/hooks/useShowSnackbar.esm.js";export{useSignIn}from"./lib/hooks/useSignIn.esm.js";export{useSignOut}from"./lib/hooks/useSignOut.esm.js";export{copyInformation,encodeString,getEntityNames,getImageSrc,getNewId,getUniqueKey,getUrlencodedBody,showSnackbar}from"./lib/utils.esm.js";export{_testApiKeys}from"./configs/global/constants.esm.js";export{GlobalConfig}from"./configs/global/global.esm.js";export{API_METHODS}from"./constants/api.esm.js";export{PanelsNames}from"./constants/map.esm.js";export{arraySchema,dateRequiredSchema,dateSchema,getStringRequiredSchema,getStringSchema,numberRequiredSchema,numberSchema}from"./constants/schema.esm.js";export{default as Accordion}from"./components/accordion/accordion.esm.js";export{default as AlertDialog}from"./components/alert-dialog/alert-dialog.esm.js";export{default as Button}from"./components/buttons/button/button.esm.js";export{default as DeleteButton}from"./components/buttons/delete/delete.esm.js";export{default as IconButton}from"./components/buttons/icon/icon.esm.js";export{default as UploadButton}from"./components/buttons/upload/upload.esm.js";export{default as Card}from"./components/card/card.esm.js";export{default as Checkbox}from"./components/checkbox/checkbox.esm.js";export{default as CopyText}from"./components/copy-text/copy-text.esm.js";export{default as DateField}from"./components/date-field/date-field.esm.js";export{default as DragList}from"./components/drag-list/drag-list.esm.js";export{default as DraggableContainer}from"./components/draggable-container/draggable-container.esm.js";export{default as ErrorBoundary}from"./components/error-boundary/error-boundary.esm.js";export{default as FormErrorMessage}from"./components/form/error-message/error-message.esm.js";export{default as Form}from"./components/form/form.esm.js";export{useFormContext}from"./components/form/hooks/useFormContext.esm.js";export{default as Input}from"./components/input/input.esm.js";export{SourceLayers,TangramSourceNames}from"./components/layers/leaflet/lib/types.esm.js";export{getAllLayers,getAllPointLayers,getAllPolygonLayers,getAllPolylineLayers,getBackendDate,getLayerModalsNames,getLayerName,getValidLayer}from"./components/layers/leaflet/lib/utils.esm.js";export{sourceUrl,tile_size}from"./components/layers/leaflet/config/constants.esm.js";export{getBuildingLayers}from"./components/layers/leaflet/layers/building/utils.esm.js";export{getBuiltupAreaLayers}from"./components/layers/leaflet/layers/builtup-area/utils.esm.js";export{getAdminAreaLayers}from"./components/layers/leaflet/layers/admin-area/utils.esm.js";export{getCameraLayers}from"./components/layers/leaflet/layers/camera/lib/utils.esm.js";export{cameraConfig}from"./components/layers/leaflet/layers/camera/config/constants.esm.js";export{getCityPOILayers}from"./components/layers/leaflet/layers/city-POI/utils.esm.js";export{getConditionLayers}from"./components/layers/leaflet/layers/condition/utils.esm.js";export{getFacilityAreaLayers}from"./components/layers/leaflet/layers/facility-area/utils.esm.js";export{landuseAreaFeatureTypes,landuseAreaLayerGeometryData,landuseAreaLayerLabelData}from"./components/layers/leaflet/layers/landuse-area/constants.esm.js";export{getLanduseAreaGeometryLayer,getLanduseAreaLabelLayer,getLanduseAreaLayers}from"./components/layers/leaflet/layers/landuse-area/utils.esm.js";export{getLaneMarkingArrowLayers}from"./components/layers/leaflet/layers/lane-marking-arrow/utils.esm.js";export{getLinkLayers}from"./components/layers/leaflet/layers/link/utils.esm.js";export{getNatureFieldLayers}from"./components/layers/leaflet/layers/nature-field/utils.esm.js";export{getNatureForestGeometryLayer,getNatureForestLayers}from"./components/layers/leaflet/layers/nature-forest/utils.esm.js";export{getOceanAreaLayers}from"./components/layers/leaflet/layers/ocean-area/utils.esm.js";export{getOneWayLayers}from"./components/layers/leaflet/layers/one-way/utils.esm.js";export{getPillarLayers}from"./components/layers/leaflet/layers/pillar/lib/utils.esm.js";export{pillarConfig}from"./components/layers/leaflet/layers/pillar/config/constants.esm.js";export{catIds,text_source}from"./components/layers/leaflet/layers/POI/constants.esm.js";export{getDefaultPOI,getPOILayers,getPOITypeLayer}from"./components/layers/leaflet/layers/POI/utils.esm.js";export{getPointAddressLayers}from"./components/layers/leaflet/layers/point-address/utils.esm.js";export{getRailroadLayers}from"./components/layers/leaflet/layers/railroad/utils.esm.js";export{getTrafficSignImgSrc,getTrafficSignLayers,parseTrafficSignCSVFile}from"./components/layers/leaflet/layers/traffic-sign/lib/utils.esm.js";export{allTrafficSigns,trafficSignConfig,trafficSigns,trafficSignsDop}from"./components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";export{getTrafficSignalLayers}from"./components/layers/leaflet/layers/traffic-signal/lib/utils.esm.js";export{trafficSignalConfig}from"./components/layers/leaflet/layers/traffic-signal/config/constants.esm.js";export{getWaterAreaLayers}from"./components/layers/leaflet/layers/water-area/utils.esm.js";export{getWaterLinkLayers}from"./components/layers/leaflet/layers/water-link/utils.esm.js";export{default as LeafletLayer}from"./components/layers/leaflet/leaflet.esm.js";export{TangramLayer}from"./components/layers/leaflet/services/tangram-layer.esm.js";export{default as List}from"./components/list/list.esm.js";export{default as Loader}from"./components/loader/loader.esm.js";export{default as Modal}from"./components/modal/modal.esm.js";export{ModalContainer}from"./components/modal/styles.esm.js";export{default as NoData}from"./components/no-data/no-data.esm.js";export{default as Paragraph}from"./components/paragraph/paragraph.esm.js";export{default as Select}from"./components/select/select.esm.js";export{default as Tabs}from"./components/tabs/tabs.esm.js";export{default as TextField}from"./components/text-field/text-field.esm.js";export{CSVUploader}from"./components/uploader/csv/csv.esm.js";export{default as ExcelUploader}from"./components/uploader/excel/excel.esm.js";export{default as AuthPage}from"./pages/auth/auth.esm.js";export{default as DartcomAuthProvider}from"./providers/auth/auth.esm.js";export{default as DartcomInitializeProvider}from"./providers/initialize/initialize.esm.js";export{default as DartcomLocalizationProvider}from"./providers/localization/localization.esm.js";export{default as DartcomProviders}from"./providers/providers.esm.js";export{ApiService}from"./services/api/api.service.esm.js";export{CollectionService}from"./services/collection/collection.service.esm.js";export{GeometryHistoryService}from"./services/geometry-history/geometry-history.service.esm.js";export{localStateService}from"./services/local-state/local-state.esm.js";export{localizationService}from"./services/localization/localization.esm.js";export{loggerService}from"./services/logger/logger.esm.js";export{mapService}from"./services/map/map.service.esm.js";export{queryService}from"./services/query/query.esm.js";export{SetService}from"./services/set/set.service.esm.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import"react";import"@mui/icons-material/ArrowDownward";import{Box as s}from"@mui/material";import"../../components/alert-dialog/alert-dialog.esm.js";import"@mui/material/IconButton";import"../../components/buttons/delete/delete.esm.js";import"../../components/buttons/icon/icon.esm.js";import"@mui/icons-material/CloudUpload";import"../../components/buttons/upload/styles.esm.js";import t from"../../components/card/card.esm.js";import"../../components/checkbox/checkbox.esm.js";import"../../node_modules/react-copy-to-clipboard-ts/dist/index.esm.js";import"../../lib/types.esm.js";import"axios";import"../../services/query/query.esm.js";import"../../node_modules/notistack/notistack.esm.esm.js";import"../../_virtual/uuid.esm.js";import"../../components/copy-text/styles.esm.js";import"@mui/x-date-pickers/DateField";import"../../components/paragraph/styles.esm.js";import"../../node_modules/@dnd-kit/core/dist/core.esm.esm.js";import"../../node_modules/@dnd-kit/sortable/dist/sortable.esm.esm.js";import"../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js";import"../../components/layers/leaflet/lib/types.esm.js";import"../../components/layers/leaflet/layers/condition/types.esm.js";import"../../components/layers/leaflet/layers/landuse-area/constants.esm.js";import"../../components/layers/leaflet/layers/nature-field/constants.esm.js";import"../../components/layers/leaflet/layers/nature-forest/constants.esm.js";import"../../components/layers/leaflet/layers/POI/utils.esm.js";import"../../components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";import"../../components/layers/leaflet/layers/road-poly/types.esm.js";import"../../components/layers/leaflet/layers/road-poly/constants.esm.js";import"../../components/layers/leaflet/config/constants.esm.js";import"../../components/layers/leaflet/scene.yaml.esm.js";import"../../_virtual/leaflet-src.esm.js";import"../../components/modal/modal.esm.js";import"@mui/lab";import"../../node_modules/react-papaparse/dist/react-papaparse.es.esm.js";const o=({children:o})=>e(s,{sx:{display:"flex",alignItems:"center",height:"100vh",width:"100vw",overflow:"hidden"},children:e(s,{sx:{margin:"auto",maxWidth:"400px",width:"100%"},children:e(t,{children:o})})});export{o as default};
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import"react";import"@mui/icons-material/ArrowDownward";import{Box as s}from"@mui/material";import"../../components/alert-dialog/alert-dialog.esm.js";import"@mui/material/IconButton";import"../../components/buttons/delete/delete.esm.js";import"../../components/buttons/icon/icon.esm.js";import"@mui/icons-material/CloudUpload";import"../../components/buttons/upload/styles.esm.js";import t from"../../components/card/card.esm.js";import"../../components/checkbox/checkbox.esm.js";import"../../node_modules/react-copy-to-clipboard-ts/dist/index.esm.js";import"../../lib/types.esm.js";import"axios";import"../../services/query/query.esm.js";import"../../node_modules/notistack/notistack.esm.esm.js";import"../../_virtual/uuid.esm.js";import"../../components/copy-text/styles.esm.js";import"@mui/x-date-pickers/DateField";import"../../components/paragraph/styles.esm.js";import"../../node_modules/@dnd-kit/core/dist/core.esm.esm.js";import"../../node_modules/@dnd-kit/sortable/dist/sortable.esm.esm.js";import"../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js";import"../../components/layers/leaflet/lib/types.esm.js";import"../../components/layers/leaflet/layers/condition/types.esm.js";import"../../components/layers/leaflet/layers/landuse-area/constants.esm.js";import"../../components/layers/leaflet/layers/nature-field/constants.esm.js";import"../../components/layers/leaflet/layers/nature-forest/constants.esm.js";import"../../components/layers/leaflet/layers/POI/utils.esm.js";import"../../components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";import"../../components/layers/leaflet/layers/road-poly/types.esm.js";import"../../components/layers/leaflet/layers/road-poly/constants.esm.js";import"../../components/layers/leaflet/config/constants.esm.js";import"../../components/layers/leaflet/scene.yaml.esm.js";import"../../_virtual/leaflet-src.esm.js";import"../../components/modal/modal.esm.js";import"../../components/modal/styles.esm.js";import"@mui/lab";import"../../node_modules/react-papaparse/dist/react-papaparse.es.esm.js";const o=({children:o})=>e(s,{sx:{display:"flex",alignItems:"center",height:"100vh",width:"100vw",overflow:"hidden"},children:e(s,{sx:{margin:"auto",maxWidth:"400px",width:"100%"},children:e(t,{children:o})})});export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as s}from"react/jsx-runtime";import*as o from"react";import{useForm as t}from"../../node_modules/react-hook-form/dist/index.esm.esm.js";import"@mui/icons-material/ArrowDownward";import{Typography as r}from"@mui/material";import"../../components/alert-dialog/alert-dialog.esm.js";import m from"../../components/buttons/button/button.esm.js";import"../../components/buttons/delete/delete.esm.js";import"../../components/buttons/icon/icon.esm.js";import"@mui/icons-material/CloudUpload";import"../../components/buttons/upload/styles.esm.js";import"../../components/checkbox/checkbox.esm.js";import"../../node_modules/react-copy-to-clipboard-ts/dist/index.esm.js";import"../../lib/types.esm.js";import"axios";import"../../services/query/query.esm.js";import{useShowSnackbar as a}from"../../lib/hooks/useShowSnackbar.esm.js";import{useSignIn as n}from"../../lib/hooks/useSignIn.esm.js";import"../../_virtual/uuid.esm.js";import"../../node_modules/notistack/notistack.esm.esm.js";import"../../components/copy-text/styles.esm.js";import"@mui/x-date-pickers/DateField";import"../../components/paragraph/styles.esm.js";import i from"../../components/form/form.esm.js";import"../../node_modules/@dnd-kit/core/dist/core.esm.esm.js";import"../../node_modules/@dnd-kit/sortable/dist/sortable.esm.esm.js";import"../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js";import l from"../../components/input/input.esm.js";import"../../components/layers/leaflet/lib/types.esm.js";import"../../components/layers/leaflet/layers/condition/types.esm.js";import"../../components/layers/leaflet/layers/landuse-area/constants.esm.js";import"../../components/layers/leaflet/layers/nature-field/constants.esm.js";import"../../components/layers/leaflet/layers/nature-forest/constants.esm.js";import"../../components/layers/leaflet/layers/POI/utils.esm.js";import"../../components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";import"../../components/layers/leaflet/layers/road-poly/types.esm.js";import"../../components/layers/leaflet/layers/road-poly/constants.esm.js";import"../../components/layers/leaflet/config/constants.esm.js";import"../../components/layers/leaflet/scene.yaml.esm.js";import"../../_virtual/leaflet-src.esm.js";import"../../components/modal/modal.esm.js";import"@mui/lab";import"../../node_modules/react-papaparse/dist/react-papaparse.es.esm.js";import p from"../../layouts/auth/auth.esm.js";import{defaultValues as c}from"./constants.esm.js";import{resolver as d}from"./schema.esm.js";const u=({onSuccess:u,onError:f})=>{const j=n(),y=a(),b=t({defaultValues:c,resolver:d}),{register:h,formState:{isValid:k}}=b,g=o.useCallback(e=>{j.mutate({body:e})},[j]);return o.useEffect(()=>{if(j.error){f(j.error);const{response:e}=j.error;if(e){const{data:{detail:s}}=e;y({message:s,variant:"error"})}}},[j.error]),o.useEffect(()=>{j.data&&u(j.data)},[j.data]),e(p,{children:s(i,{form:b,onSubmit:g,sx:()=>({justifyContent:"center",justifyItems:"center",alignContent:"center",alignItems:"center"}),children:[e(r,{variant:"h4",children:"Авторизация"}),e(l,{...h("username"),label:"Логин",placeholder:"Введите логин"}),e(l,{...h("password"),label:"Пароль",placeholder:"Введите пароль",type:"password"}),e(m,{type:"submit",disabled:!k,children:"Войти"})]})})};export{u as default};
|
|
1
|
+
import{jsx as e,jsxs as s}from"react/jsx-runtime";import*as o from"react";import{useForm as t}from"../../node_modules/react-hook-form/dist/index.esm.esm.js";import"@mui/icons-material/ArrowDownward";import{Typography as r}from"@mui/material";import"../../components/alert-dialog/alert-dialog.esm.js";import m from"../../components/buttons/button/button.esm.js";import"../../components/buttons/delete/delete.esm.js";import"../../components/buttons/icon/icon.esm.js";import"@mui/icons-material/CloudUpload";import"../../components/buttons/upload/styles.esm.js";import"../../components/checkbox/checkbox.esm.js";import"../../node_modules/react-copy-to-clipboard-ts/dist/index.esm.js";import"../../lib/types.esm.js";import"axios";import"../../services/query/query.esm.js";import{useShowSnackbar as a}from"../../lib/hooks/useShowSnackbar.esm.js";import{useSignIn as n}from"../../lib/hooks/useSignIn.esm.js";import"../../_virtual/uuid.esm.js";import"../../node_modules/notistack/notistack.esm.esm.js";import"../../components/copy-text/styles.esm.js";import"@mui/x-date-pickers/DateField";import"../../components/paragraph/styles.esm.js";import i from"../../components/form/form.esm.js";import"../../node_modules/@dnd-kit/core/dist/core.esm.esm.js";import"../../node_modules/@dnd-kit/sortable/dist/sortable.esm.esm.js";import"../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js";import l from"../../components/input/input.esm.js";import"../../components/layers/leaflet/lib/types.esm.js";import"../../components/layers/leaflet/layers/condition/types.esm.js";import"../../components/layers/leaflet/layers/landuse-area/constants.esm.js";import"../../components/layers/leaflet/layers/nature-field/constants.esm.js";import"../../components/layers/leaflet/layers/nature-forest/constants.esm.js";import"../../components/layers/leaflet/layers/POI/utils.esm.js";import"../../components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";import"../../components/layers/leaflet/layers/road-poly/types.esm.js";import"../../components/layers/leaflet/layers/road-poly/constants.esm.js";import"../../components/layers/leaflet/config/constants.esm.js";import"../../components/layers/leaflet/scene.yaml.esm.js";import"../../_virtual/leaflet-src.esm.js";import"../../components/modal/modal.esm.js";import"../../components/modal/styles.esm.js";import"@mui/lab";import"../../node_modules/react-papaparse/dist/react-papaparse.es.esm.js";import p from"../../layouts/auth/auth.esm.js";import{defaultValues as c}from"./constants.esm.js";import{resolver as d}from"./schema.esm.js";const u=({onSuccess:u,onError:f})=>{const j=n(),y=a(),b=t({defaultValues:c,resolver:d}),{register:h,formState:{isValid:k}}=b,g=o.useCallback(e=>{j.mutate({body:e})},[j]);return o.useEffect(()=>{if(j.error){f(j.error);const{response:e}=j.error;if(e){const{data:{detail:s}}=e;y({message:s,variant:"error"})}}},[j.error]),o.useEffect(()=>{j.data&&u(j.data)},[j.data]),e(p,{children:s(i,{form:b,onSubmit:g,sx:()=>({justifyContent:"center",justifyItems:"center",alignContent:"center",alignItems:"center"}),children:[e(r,{variant:"h4",children:"Авторизация"}),e(l,{...h("username"),label:"Логин",placeholder:"Введите логин"}),e(l,{...h("password"),label:"Пароль",placeholder:"Введите пароль",type:"password"}),e(m,{type:"submit",disabled:!k,children:"Войти"})]})})};export{u as default};
|
|
@@ -256,6 +256,43 @@ declare class MapService {
|
|
|
256
256
|
extractCoordinatesFromGeom(geom: GeoJsonMultiLineString): FrontendLatLng[][];
|
|
257
257
|
extractCoordinatesFromGeom(geom: GeoJsonPolygon): FrontendLatLng[][];
|
|
258
258
|
extractCoordinatesFromGeom(geom: GeoJsonMultiPolygon): FrontendLatLng[][][];
|
|
259
|
+
/**
|
|
260
|
+
* Вычисляет два узла, расположенных перпендикулярно отрезку
|
|
261
|
+
* в его конечной точке на заданном расстоянии.
|
|
262
|
+
*
|
|
263
|
+
* Алгоритм:
|
|
264
|
+
* 1. Вычисляет обратный азимут (направление от конечной точки к начальной).
|
|
265
|
+
* 2. Поворачивает его на ±90° — получает два перпендикулярных направления.
|
|
266
|
+
* 3. Смещает конечную точку на `offset` метров в каждую сторону,
|
|
267
|
+
* используя плоскую аппроксимацию (приемлемо при offset ≤ 2000 м).
|
|
268
|
+
*
|
|
269
|
+
* Принимает и возвращает координаты в формате {@link FrontendLatLng}
|
|
270
|
+
* (`{ lat, lng }`) для прямой совместимости с Leaflet.
|
|
271
|
+
*
|
|
272
|
+
* Типичный сценарий использования: построение нормалей к маршруту,
|
|
273
|
+
* поперечных контрольных точек, перпендикулярных смещений на линии.
|
|
274
|
+
*
|
|
275
|
+
* @param params - Параметры расчёта.
|
|
276
|
+
* @param params.from - Начальная точка отрезка.
|
|
277
|
+
* @param params.to - Конечная точка отрезка. Перпендикуляр строится именно здесь.
|
|
278
|
+
* @param params.offset - Расстояние смещения в метрах (по умолчанию 100 м).
|
|
279
|
+
* @returns Два узла в формате {@link FrontendLatLng}, сдвинутых перпендикулярно
|
|
280
|
+
* отрезку влево и вправо от конечной точки.
|
|
281
|
+
*
|
|
282
|
+
* @example
|
|
283
|
+
* const { left, right } = mapService.getPerpendicularPoints({
|
|
284
|
+
* from: { lat: 55.75, lng: 37.61 },
|
|
285
|
+
* to: { lat: 55.76, lng: 37.62 },
|
|
286
|
+
* });
|
|
287
|
+
*/
|
|
288
|
+
getPerpendicularPoints({ from, to, offset, }: {
|
|
289
|
+
from: FrontendLatLng;
|
|
290
|
+
to: FrontendLatLng;
|
|
291
|
+
offset?: number;
|
|
292
|
+
}): {
|
|
293
|
+
left: FrontendLatLng;
|
|
294
|
+
right: FrontendLatLng;
|
|
295
|
+
};
|
|
259
296
|
}
|
|
260
297
|
/**
|
|
261
298
|
* Сервис для работы с географическими координатами и базовыми
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.service.d.ts","sourceRoot":"","sources":["../../../src/services/map/map.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"map.service.d.ts","sourceRoot":"","sources":["../../../src/services/map/map.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DISTANCE_UNIT_FACTORS as t}from"./map.constants.esm.js";const
|
|
1
|
+
import{DISTANCE_UNIT_FACTORS as t}from"./map.constants.esm.js";const n=new class{EARTH_RADIUS_M=6371e3;FULL_CIRCLE_DEGREES=360;COORDINATE_EQUALITY_EPSILON_M=.002;constructor(){}get HALF_CIRCLE_DEGREES(){return this.FULL_CIRCLE_DEGREES/2}get DEG_TO_RAD(){return Math.PI/this.HALF_CIRCLE_DEGREES}get RAD_TO_DEG(){return this.HALF_CIRCLE_DEGREES/Math.PI}normalizeBearing(t){return(t%this.FULL_CIRCLE_DEGREES+this.FULL_CIRCLE_DEGREES)%this.FULL_CIRCLE_DEGREES}normalizeLongitude(t){return(t+this.FULL_CIRCLE_DEGREES+this.HALF_CIRCLE_DEGREES)%this.FULL_CIRCLE_DEGREES-this.HALF_CIRCLE_DEGREES}calculateDestination=({coordinate:t,distance:n,azimuth:e,unit:i="meters"})=>{const s=t.lat*this.DEG_TO_RAD,a=t.lng*this.DEG_TO_RAD,r=this.normalizeBearing(e)*this.DEG_TO_RAD,o=this.distanceToMeters(n,i)/this.EARTH_RADIUS_M,h=Math.sin(s),l=Math.cos(s),c=Math.sin(o),E=Math.cos(o),_=Math.sin(r),D=Math.cos(r),g=Math.asin(h*E+l*c*D),R=a+Math.atan2(_*c*l,E-h*Math.sin(g));return{lat:g*this.RAD_TO_DEG,lng:this.normalizeLongitude(R*this.RAD_TO_DEG)}};haversineDistance(t,n,e="meters"){const i=t.lat*this.DEG_TO_RAD,s=n.lat*this.DEG_TO_RAD,a=(n.lat-t.lat)*this.DEG_TO_RAD,r=(n.lng-t.lng)*this.DEG_TO_RAD,o=Math.sin(a/2)**2+Math.cos(i)*Math.cos(s)*Math.sin(r/2)**2,h=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)),l=this.EARTH_RADIUS_M*h;return this.convertDistance(l,e)}initialBearing(t,n){const e=t.lat*this.DEG_TO_RAD,i=n.lat*this.DEG_TO_RAD,s=t.lng*this.DEG_TO_RAD,a=n.lng*this.DEG_TO_RAD,r=Math.sin(a-s)*Math.cos(i),o=Math.cos(e)*Math.sin(i)-Math.sin(e)*Math.cos(i)*Math.cos(a-s);return this.normalizeBearing(Math.atan2(r,o)*this.RAD_TO_DEG)}convertDistance(n,e="meters"){return n/t[e]}distanceToMeters(n,e="meters"){return n*t[e]}getPolylineLength(t,n="meters"){const e=t.reduce((t,n,e,i)=>{const s=i[e+1];if(!s)return t;return t+this.haversineDistance(n,s,"meters")},0);return this.convertDistance(e,n)}coordinatesEqual(t,n){return this.haversineDistance(t,n,"meters")<=this.COORDINATE_EQUALITY_EPSILON_M}replaceInFlatRing(t,n,e,i){return t.map(t=>i(t,n)?e:t)}replaceCoordinateInLine(t,n,e,i=this.coordinatesEqual.bind(this)){return this.replaceInFlatRing(t,n,e,i)}replaceCoordinateInPolygon(t,n,e,i=this.coordinatesEqual.bind(this)){return t.map(t=>this.replaceInFlatRing(t,n,e,i))}replaceCoordinateInMultiPolygon(t,n,e,i=this.coordinatesEqual.bind(this)){return t.map(t=>this.replaceCoordinateInPolygon(t,n,e,i))}sampleLineByDistance(t,n={}){const{interval:e=1e3,maxPoints:i,unit:s="meters",includeStart:a=!1}=n;if(t.length<2)return[];const r=this.distanceToMeters(e,s);if(!Number.isFinite(r)||r<=0)return[];const o=[];let h=0,l=t[0];a&&o.push(l);for(let n=1;n<t.length;n++){const e=t[n],s=this.haversineDistance(l,e,"meters");if(Number.isFinite(s)&&0!==s){for(h+=s;h>=r;){const t=(s-(h-r))/s,n=l.lat+t*(e.lat-l.lat),a=l.lng+t*(e.lng-l.lng);if(o.push({lat:n,lng:a}),null!=i&&o.length>=i)return o;h-=r}l=e}else l=e}return null!=i?o.slice(0,i):o}getPolylineCenter(t){if(0===t.length)return null;if(1===t.length)return t[0];const n=this.getPolylineLength(t,"meters");if(0===n)return t[0];const e=n/2;let i=0,s=t[0];for(let n=1;n<t.length;n++){const a=t[n],r=this.haversineDistance(s,a,"meters");if(0!==r){if(i+r>=e){const t=(e-i)/r;return{lat:s.lat+t*(a.lat-s.lat),lng:s.lng+t*(a.lng-s.lng)}}i+=r,s=a}else s=a}return t[t.length-1]}coordinateToLatLng([t,n]){return{lat:n,lng:t}}extractCoordinatesFromGeom(t){switch(t.type){case"Point":return this.coordinateToLatLng(t.coordinates);case"LineString":return t.coordinates.map(t=>this.coordinateToLatLng(t));case"MultiLineString":case"Polygon":return t.coordinates.map(t=>t.map(t=>this.coordinateToLatLng(t)));case"MultiPolygon":return t.coordinates.map(t=>t.map(t=>t.map(t=>this.coordinateToLatLng(t))))}}getPerpendicularPoints({from:t,to:n,offset:e=100}){const i=t.lat*this.DEG_TO_RAD,s=t.lng*this.DEG_TO_RAD,a=n.lat*this.DEG_TO_RAD,r=s-n.lng*this.DEG_TO_RAD,o=Math.sin(r)*Math.cos(i),h=Math.cos(a)*Math.sin(i)-Math.sin(a)*Math.cos(i)*Math.cos(r),l=this.normalizeBearing(Math.atan2(o,h)*this.RAD_TO_DEG),c=this.normalizeBearing(l+90),E=this.normalizeBearing(l+270),_=this.EARTH_RADIUS_M*Math.PI/180,D=_*Math.cos(a),g=t=>{const i=t*this.DEG_TO_RAD;return{lat:n.lat+e*Math.cos(i)/_,lng:n.lng+e*Math.sin(i)/D}};return{left:g(c),right:g(E)}}};export{n as mapService};
|