UNPKG

@igo2/geo

Version:
1 lines 3.32 MB
{"version":3,"file":"igo2-geo.mjs","sources":["../../../packages/geo/src/lib/map/shared/map.utils.ts","../../../packages/geo/src/lib/layer/utils/layer.utils.ts","../../../packages/geo/src/lib/layer/utils/outputLegend.ts","../../../packages/geo/src/lib/print/shared/geopdf.ts","../../../packages/geo/src/lib/print/shared/print.type.ts","../../../packages/geo/src/lib/print/shared/print.service.ts","../../../packages/geo/src/lib/directions/directions-sources/directions-source.ts","../../../packages/geo/src/lib/directions/shared/directions-source.service.ts","../../../packages/geo/src/lib/utils/id-generator.ts","../../../packages/geo/src/lib/datasource/shared/datasources/datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/feature-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/data.service.ts","../../../packages/geo/src/lib/datasource/shared/datasources/datasource.interface.ts","../../../packages/geo/src/lib/datasource/shared/datasources/osm-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/xyz-datasource.ts","../../../packages/geo/src/lib/filter/shared/filter.utils.ts","../../../packages/geo/src/lib/filter/shared/ogc-filter.enum.ts","../../../packages/geo/src/lib/filter/shared/ogc-filter.ts","../../../packages/geo/src/lib/filter/shared/ogc-filter.interface.ts","../../../packages/geo/src/lib/datasource/shared/datasources/wms-wfs.utils.ts","../../../packages/geo/src/lib/datasource/shared/datasources/wfs-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/wfs.service.ts","../../../packages/geo/src/lib/filter/shared/date.utils.ts","../../../packages/geo/src/lib/filter/shared/ogc-filter.service.ts","../../../packages/geo/src/lib/query/shared/query.enums.ts","../../../packages/geo/src/lib/datasource/shared/datasources/wms-datasource.ts","../../../packages/geo/src/lib/datasource/utils/tilegrid.ts","../../../packages/geo/src/lib/datasource/shared/datasources/wmts-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/carto-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/arcgisrest-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/imagearcgisrest-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/tilearcgisrest-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/tiledebug-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/websocket-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/mvt-datasource.ts","../../../packages/geo/src/lib/datasource/shared/datasources/cluster-datasource.ts","../../../packages/geo/src/lib/offline/shared/indexed-db.utils.ts","../../../packages/geo/src/lib/offline/geoDB/geoDB.ts","../../../packages/geo/src/lib/offline/geoDB/geoDB.enums.ts","../../../packages/geo/src/lib/offline/layerDB/layerDB.ts","../../../packages/geo/src/lib/style/shared/vector/conversion.utils.ts","../../../packages/geo/src/lib/layer/utils/vector-watcher.ts","../../../packages/geo/src/lib/layer/shared/layers/linked/linked-layer.utils.ts","../../../packages/geo/src/lib/layer/shared/layers/layer-base.ts","../../../packages/geo/src/lib/map/shared/linkedLayers.utils.ts","../../../packages/geo/src/lib/layer/shared/layers/linked/linked-layer.interface.ts","../../../packages/geo/src/lib/map/utils/layer-watcher.ts","../../../packages/geo/src/lib/layer/shared/layers/linked/linked-layer.ts","../../../packages/geo/src/lib/layer/shared/layers/layer.ts","../../../packages/geo/src/lib/layer/shared/layers/vector-layer.ts","../../../packages/geo/src/lib/feature/shared/feature-store.utils.ts","../../../packages/geo/src/lib/feature/shared/feature.enums.ts","../../../packages/geo/src/lib/feature/shared/strategies/loading.ts","../../../packages/geo/src/lib/feature/shared/feature.utils.ts","../../../packages/geo/src/lib/feature/shared/store.ts","../../../packages/geo/src/lib/feature/shared/strategies/selection.ts","../../../packages/geo/src/lib/feature/shared/strategies.utils.ts","../../../packages/geo/src/lib/style/shared/overlay/overlay-marker-style.utils.ts","../../../packages/geo/src/lib/directions/shared/directions.enum.ts","../../../packages/geo/src/lib/directions/shared/directions.utils.ts","../../../packages/geo/src/lib/directions/shared/directions.service.ts","../../../packages/geo/src/lib/directions/shared/store.ts","../../../packages/geo/src/lib/directions/directions-buttons/directions-buttons.component.ts","../../../packages/geo/src/lib/directions/directions-buttons/directions-buttons.component.html","../../../packages/geo/src/lib/directions/directions-inputs/directions-inputs.component.ts","../../../packages/geo/src/lib/directions/directions-inputs/directions-inputs.component.html","../../../packages/geo/src/lib/directions/directions-results/directions-results.component.ts","../../../packages/geo/src/lib/directions/directions-results/directions-results.component.html","../../../packages/geo/src/lib/layer/layer-visibility-button/layer-visibility-button.component.ts","../../../packages/geo/src/lib/layer/layer-visibility-button/layer-visibility-button.component.html","../../../packages/geo/src/lib/layer/layer-group/layer-group.component.ts","../../../packages/geo/src/lib/layer/layer-group/layer-group.component.html","../../../packages/geo/src/lib/query/shared/query.utils.ts","../../../packages/geo/src/lib/filter/shared/time-filter.enum.ts","../../../packages/geo/src/lib/map/shared/map.service.ts","../../../packages/geo/src/lib/style/shared/datasource/esri-style-generator.ts","../../../packages/geo/src/lib/datasource/shared/capabilities.interface.ts","../../../packages/geo/src/lib/datasource/shared/capabilities.service.ts","../../../packages/geo/src/lib/layer/shared/layers/layer.interface.ts","../../../packages/geo/src/lib/layer/utils/image-watcher.ts","../../../packages/geo/src/lib/layer/shared/layers/image-layer.ts","../../../packages/geo/src/lib/layer/utils/tile-watcher.ts","../../../packages/geo/src/lib/layer/shared/layers/tile-layer.ts","../../../packages/geo/src/lib/layer/shared/layers/vectortile-layer.ts","../../../packages/geo/src/lib/layer/shared/layers/layer-group.ts","../../../packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts","../../../packages/geo/src/lib/layer/layer-legend/layer-legend.component.html","../../../packages/geo/src/lib/layer/layer-item/layer-item.component.ts","../../../packages/geo/src/lib/layer/layer-item/layer-item.component.html","../../../packages/geo/src/lib/layer/layer-legend-item/layer-legend-item.component.ts","../../../packages/geo/src/lib/layer/layer-legend-item/layer-legend-item.component.html","../../../packages/geo/src/lib/datasource/shared/options/options.service.ts","../../../packages/geo/src/lib/datasource/shared/datasource.service.ts","../../../packages/geo/src/lib/offline/geoDB/configFileToGeoDB.service.ts","../../../packages/geo/src/lib/offline/shared/geo-network.service.ts","../../../packages/geo/src/lib/style/style-service/style.service.ts","../../../packages/geo/src/lib/layer/shared/layer.service.ts","../../../packages/geo/src/lib/layer/shared/layer.enums.ts","../../../packages/geo/src/lib/layer/shared/layer-selection.ts","../../../packages/geo/src/lib/layer/shared/layer-controller.ts","../../../packages/geo/src/lib/layer/utils/layer-options.utils.ts","../../../packages/geo/src/lib/layer/layer-legend-list/layer-legend-list.component.ts","../../../packages/geo/src/lib/layer/layer-legend-list/layer-legend-list.component.html","../../../packages/geo/src/lib/layer/layer-legend-list/layer-legend-list-binding.directive.ts","../../../packages/geo/src/lib/layer/layer-search/layer-search.component.ts","../../../packages/geo/src/lib/layer/layer-search/layer-search.component.html","../../../packages/geo/src/lib/layer/layer-list-tool/layer-list-tool.service.ts","../../../packages/geo/src/lib/layer/layer-list-tool/layer-list-tool.component.ts","../../../packages/geo/src/lib/layer/layer-list-tool/layer-list-tool.component.html","../../../packages/geo/src/lib/layer/layer-list-tool/layer-list-tool.interface.ts","../../../packages/geo/src/lib/layer/layer-list/layer-list.component.ts","../../../packages/geo/src/lib/layer/layer-list/layer-list.component.html","../../../packages/geo/src/lib/layer/layer-unavailable/layer-unavailable.component.ts","../../../packages/geo/src/lib/layer/layer-unavailable/layer-unavailable.component.html","../../../packages/geo/src/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.ts","../../../packages/geo/src/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.html","../../../packages/geo/src/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.ts","../../../packages/geo/src/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.html","../../../packages/geo/src/lib/layer/layer-viewer/layer-viewer.component.ts","../../../packages/geo/src/lib/layer/layer-viewer/layer-viewer.component.html","../../../packages/geo/src/lib/layer/track-feature-button/track-feature-button.component.ts","../../../packages/geo/src/lib/layer/track-feature-button/track-feature-button.component.html","../../../packages/geo/src/lib/style/shared/overlay/overlay-style.utils.ts","../../../packages/geo/src/lib/overlay/shared/overlay.utils.ts","../../../packages/geo/src/lib/overlay/shared/overlay.ts","../../../packages/geo/src/lib/map/shared/controllers/controller.ts","../../../packages/geo/src/lib/map/shared/controllers/geolocation.interface.ts","../../../packages/geo/src/lib/map/shared/controllers/geolocation.ts","../../../packages/geo/src/lib/map/shared/map.enums.ts","../../../packages/geo/src/lib/map/shared/controllers/view.ts","../../../packages/geo/src/lib/map/shared/map.ts","../../../packages/geo/src/lib/map/shared/map.abstract.ts","../../../packages/geo/src/lib/map/map-browser/map-browser.component.ts","../../../packages/geo/src/lib/map/map-browser/map-browser.component.html","../../../packages/geo/src/lib/map/shared/mapOffline.directive.ts","../../../packages/geo/src/lib/map/shared/map-pointer-position.directive.ts","../../../packages/geo/src/lib/style/shared/feature/feature-style.ts","../../../packages/geo/src/lib/map/shared/hover-feature.directive.ts","../../../packages/geo/src/lib/map/shared/projection.service.ts","../../../packages/geo/src/lib/map/shared/projection.utils.ts","../../../packages/geo/src/lib/map/zoom-button/zoom-button.component.ts","../../../packages/geo/src/lib/map/zoom-button/zoom-button.component.html","../../../packages/geo/src/lib/map/menu-button/menu-button.component.ts","../../../packages/geo/src/lib/map/menu-button/menu-button.component.html","../../../packages/geo/src/lib/map/geolocate-button/geolocate-button.component.ts","../../../packages/geo/src/lib/map/geolocate-button/geolocate-button.component.html","../../../packages/geo/src/lib/map/home-extent-button/home-extent-button.component.ts","../../../packages/geo/src/lib/map/home-extent-button/home-extent-button.component.html","../../../packages/geo/src/lib/map/offline-button/offline-button.component.ts","../../../packages/geo/src/lib/map/offline-button/offline-button.component.html","../../../packages/geo/src/lib/map/wake-lock-button/wake-lock-button.component.ts","../../../packages/geo/src/lib/map/wake-lock-button/wake-lock-button.component.html","../../../packages/geo/src/lib/map/baselayers-switcher/baselayers-switcher.animation.ts","../../../packages/geo/src/lib/map/baselayers-switcher/mini-basemap.component.ts","../../../packages/geo/src/lib/map/baselayers-switcher/mini-basemap.component.html","../../../packages/geo/src/lib/map/baselayers-switcher/baselayers-switcher.component.ts","../../../packages/geo/src/lib/map/baselayers-switcher/baselayers-switcher.component.html","../../../packages/geo/src/lib/map/rotation-button/rotation-button.component.ts","../../../packages/geo/src/lib/map/rotation-button/rotation-button.component.html","../../../packages/geo/src/lib/map/swipe-control/swipe-control.component.ts","../../../packages/geo/src/lib/map/swipe-control/swipe-control.component.html","../../../packages/geo/src/lib/map/map-center/map-center.component.ts","../../../packages/geo/src/lib/map/map-center/map-center.component.html","../../../packages/geo/src/lib/map/info-section/info-section.component.ts","../../../packages/geo/src/lib/map/info-section/info-section.component.html","../../../packages/geo/src/lib/query/shared/query.service.ts","../../../packages/geo/src/lib/search/shared/search-source.service.ts","../../../packages/geo/src/lib/search/shared/search.utils.ts","../../../packages/geo/src/lib/search/shared/search.service.ts","../../../packages/geo/src/lib/directions/directions.component.ts","../../../packages/geo/src/lib/directions/directions.component.html","../../../packages/geo/src/lib/directions/directions.module.ts","../../../packages/geo/src/lib/filter/shared/filterable-datasource.pipe.ts","../../../packages/geo/src/lib/filter/shared/time-filter.service.ts","../../../packages/geo/src/lib/filter/shared/spatial-filter.enum.ts","../../../packages/geo/src/lib/filter/shared/spatial-filter.service.ts","../../../packages/geo/src/lib/download/shared/download.service.ts","../../../packages/geo/src/lib/download/download-button/download-button.component.ts","../../../packages/geo/src/lib/download/download-button/download-button.component.html","../../../packages/geo/src/lib/download/download.module.ts","../../../packages/geo/src/lib/wkt/shared/wkt.service.ts","../../../packages/geo/src/lib/filter/shared/ogc-filter-time.service.ts","../../../packages/geo/src/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.ts","../../../packages/geo/src/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.html","../../../packages/geo/src/lib/filter/ogc-filter-time/ogc-filter-time.component.ts","../../../packages/geo/src/lib/filter/ogc-filter-time/ogc-filter-time.component.html","../../../packages/geo/src/lib/filter/ogc-filter-form/ogc-filter-form.component.ts","../../../packages/geo/src/lib/filter/ogc-filter-form/ogc-filter-form.component.html","../../../packages/geo/src/lib/filter/ogc-filter-selection/ogc-filter-selection.component.ts","../../../packages/geo/src/lib/filter/ogc-filter-selection/ogc-filter-selection.component.html","../../../packages/geo/src/lib/filter/ogc-filterable-form/ogc-filterable-form.component.ts","../../../packages/geo/src/lib/filter/ogc-filterable-form/ogc-filterable-form.component.html","../../../packages/geo/src/lib/filter/ogc-filterable-item/ogc-filterable-item.component.ts","../../../packages/geo/src/lib/filter/ogc-filterable-item/ogc-filterable-item.component.html","../../../packages/geo/src/lib/filter/ogc-filter-button/ogc-filter-button.component.ts","../../../packages/geo/src/lib/filter/ogc-filter-button/ogc-filter-button.component.html","../../../packages/geo/src/lib/filter/ogc-filterable-list/ogc-filterable-list.component.ts","../../../packages/geo/src/lib/filter/ogc-filterable-list/ogc-filterable-list.component.html","../../../packages/geo/src/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.ts","../../../packages/geo/src/lib/datasource/shared/options/options-api.service.ts","../../../packages/geo/src/lib/datasource/shared/options/options-api.providers.ts","../../../packages/geo/src/lib/draw/shared/draw.enum.ts","../../../packages/geo/src/lib/draw/shared/draw-icon.service.ts","../../../packages/geo/src/lib/measure/shared/measure.enum.ts","../../../packages/geo/src/lib/measure/shared/measure.utils.ts","../../../packages/geo/src/lib/draw/shared/draw.utils.ts","../../../packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts","../../../packages/geo/src/lib/feature/shared/strategies/in-map-resolution.ts","../../../packages/geo/src/lib/feature/shared/strategies/geo-properties.ts","../../../packages/geo/src/lib/feature/shared/strategies/loading-layer.ts","../../../packages/geo/src/lib/feature/shared/strategies/search.ts","../../../packages/geo/src/lib/search/shared/sources/source.ts","../../../packages/geo/src/lib/feature/feature-details/feature-details.component.ts","../../../packages/geo/src/lib/feature/feature-details/feature-details.component.html","../../../packages/geo/src/lib/feature/feature-details/feature-details.directive.ts","../../../packages/geo/src/lib/feature/feature-details/feature-details.module.ts","../../../packages/geo/src/lib/feature/feature-form/feature-form.component.ts","../../../packages/geo/src/lib/feature/feature-form/feature-form.component.html","../../../packages/geo/src/lib/feature/feature.module.ts","../../../packages/geo/src/lib/geometry/shared/geometry.errors.ts","../../../packages/geo/src/lib/geometry/shared/geometry.utils.ts","../../../packages/geo/src/lib/geometry/shared/controls/draw.ts","../../../packages/geo/src/lib/style/shared/font.enum.ts","../../../packages/geo/src/lib/style/style-service/draw-style.service.ts","../../../packages/geo/src/lib/style/style-modal/drawing/style-modal-drawing.component.ts","../../../packages/geo/src/lib/style/style-modal/drawing/style-modal-drawing.component.html","../../../packages/geo/src/lib/draw/draw/draw-layer-popup.component.ts","../../../packages/geo/src/lib/draw/draw/draw-layer-popup.component.html","../../../packages/geo/src/lib/draw/draw/draw-popup.component.ts","../../../packages/geo/src/lib/draw/draw/draw-popup.component.html","../../../packages/geo/src/lib/draw/draw/draw-shorcuts.component.ts","../../../packages/geo/src/lib/draw/draw/draw-shorcuts.component.html","../../../packages/geo/src/lib/draw/draw/draw.component.ts","../../../packages/geo/src/lib/draw/draw/draw.component.html","../../../packages/geo/src/lib/measure/measurer/measure-format.pipe.ts","../../../packages/geo/src/lib/geometry/shared/controls/modify.ts","../../../packages/geo/src/lib/geometry/shared/controls/slice.ts","../../../packages/geo/src/lib/measure/measurer/measurer-dialog.component.ts","../../../packages/geo/src/lib/measure/measurer/measurer-dialog.component.html","../../../packages/geo/src/lib/measure/measurer/measurer-item.component.ts","../../../packages/geo/src/lib/measure/measurer/measurer-item.component.html","../../../packages/geo/src/lib/measure/measurer/measurer.component.ts","../../../packages/geo/src/lib/measure/measurer/measurer.component.html","../../../packages/geo/src/lib/measure/measurer/index.ts","../../../packages/geo/src/lib/geometry/geometry-form-field/geometry-form-field-input.component.ts","../../../packages/geo/src/lib/geometry/geometry-form-field/geometry-form-field-input.component.html","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.ts","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.html","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.ts","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.html","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.ts","../../../packages/geo/src/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.html","../../../packages/geo/src/lib/filter/time-filter-form/time-filter-form.component.ts","../../../packages/geo/src/lib/filter/time-filter-form/time-filter-form.component.html","../../../packages/geo/src/lib/filter/time-filter-item/time-filter-item.component.ts","../../../packages/geo/src/lib/filter/time-filter-item/time-filter-item.component.html","../../../packages/geo/src/lib/filter/time-filter-button/time-filter-button.component.ts","../../../packages/geo/src/lib/filter/time-filter-button/time-filter-button.component.html","../../../packages/geo/src/lib/filter/time-filter-list/time-filter-list.component.ts","../../../packages/geo/src/lib/filter/time-filter-list/time-filter-list.component.html","../../../packages/geo/src/lib/filter/time-filter-list/time-filter-list-binding.directive.ts","../../../packages/geo/src/lib/filter/filter.module.ts","../../../packages/geo/src/lib/import-export/export-button/export-button.component.ts","../../../packages/geo/src/lib/import-export/export-button/export-button.component.html","../../../packages/geo/src/lib/style/style-list/style-list.service.ts","../../../packages/geo/src/lib/import-export/shared/export.errors.ts","../../../packages/geo/src/lib/import-export/shared/export.utils.ts","../../../packages/geo/src/lib/import-export/shared/export.service.ts","../../../packages/geo/src/lib/import-export/shared/export.type.ts","../../../packages/geo/src/lib/import-export/shared/import.errors.ts","../../../packages/geo/src/lib/import-export/shared/import.utils.ts","../../../packages/geo/src/lib/import-export/shared/import.service.ts","../../../packages/geo/src/lib/import-export/import-export/import-export.component.ts","../../../packages/geo/src/lib/import-export/import-export/import-export.component.html","../../../packages/geo/src/lib/import-export/shared/drop-geo-file.directive.ts","../../../packages/geo/src/lib/import-export/import-export.module.ts","../../../packages/geo/src/lib/layer/layer.module.ts","../../../packages/geo/src/lib/metadata/shared/metadata.service.ts","../../../packages/geo/src/lib/metadata/metadata-button/metadata-button.component.ts","../../../packages/geo/src/lib/metadata/metadata-button/metadata-button.component.html","../../../packages/geo/src/lib/metadata/metadata-button/metadata-abstract.component.html","../../../packages/geo/src/lib/metadata/metadata.module.ts","../../../packages/geo/src/lib/query/shared/query-search-source.ts","../../../packages/geo/src/lib/query/shared/query-search-source.providers.ts","../../../packages/geo/src/lib/query/shared/query.directive.ts","../../../packages/geo/src/lib/query/query.module.ts","../../../packages/geo/src/lib/search/shared/search.enums.ts","../../../packages/geo/src/lib/search/search-selector/search-selector.component.ts","../../../packages/geo/src/lib/search/search-selector/search-selector.component.html","../../../packages/geo/src/lib/search/search-settings/search-settings.component.ts","../../../packages/geo/src/lib/search/search-settings/search-settings.component.html","../../../packages/geo/src/lib/search/search-bar/search-bar.component.ts","../../../packages/geo/src/lib/search/search-bar/search-bar.component.html","../../../packages/geo/src/lib/search/search-bar/search-bar.module.ts","../../../packages/geo/src/lib/search/search-results/search-results-item.component.ts","../../../packages/geo/src/lib/search/search-results/search-results-item.component.html","../../../packages/geo/src/lib/search/search-results/save-feature-dialog.component.ts","../../../packages/geo/src/lib/search/search-results/save-feature-dialog.component.html","../../../packages/geo/src/lib/search/search-results/search-results-add-button.component.ts","../../../packages/geo/src/lib/search/search-results/search-results-add-button.component.html","../../../packages/geo/src/lib/search/search-results/search-results.component.ts","../../../packages/geo/src/lib/search/search-results/search-results.component.html","../../../packages/geo/src/lib/search/search-results/search-results.module.ts","../../../packages/geo/src/lib/search/search-results/search-results.directive.ts","../../../packages/geo/src/lib/search/search-selector/search-selector.module.ts","../../../packages/geo/src/lib/search/search-settings/search-settings.module.ts","../../../packages/geo/src/lib/search/shared/search-pointer-summary.directive.ts","../../../packages/geo/src/lib/search/shared/search-source-service.providers.ts","../../../packages/geo/src/lib/utils/googleLinks.ts","../../../packages/geo/src/lib/utils/osmLinks.ts","../../../packages/geo/src/lib/search/shared/sources/coordinates.ts","../../../packages/geo/src/lib/search/shared/sources/source.interfaces.ts","../../../packages/geo/src/lib/search/shared/sources/coordinates.providers.ts","../../../packages/geo/src/lib/search/shared/sources/icherche-icons.ts","../../../packages/geo/src/lib/search/shared/sources/icherche.ts","../../../packages/geo/src/lib/search/shared/sources/icherche.providers.ts","../../../packages/geo/src/lib/search/shared/sources/ilayer.ts","../../../packages/geo/src/lib/search/shared/sources/ilayer.providers.ts","../../../packages/geo/src/lib/search/search.module.ts","../../../packages/geo/src/lib/style/style-list/style-list.provider.ts","../../../packages/geo/src/lib/style/style-list/style-list.module.ts","../../../packages/geo/src/lib/style/style-modal/layer/style-modal-layer.component.ts","../../../packages/geo/src/lib/style/style-modal/layer/style-modal-layer.component.html","../../../packages/geo/src/lib/style/style-modal/layer-button/style-modal-layer-button.component.ts","../../../packages/geo/src/lib/style/style-modal/layer-button/style-modal-layer-button.component.html","../../../packages/geo/src/lib/style/style.module.ts","../../../packages/geo/src/lib/toast/toast.component.ts","../../../packages/geo/src/lib/toast/toast.component.html","../../../packages/geo/src/lib/toast/toast.module.ts","../../../packages/geo/src/lib/wkt/wkt.module.ts","../../../packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.ts","../../../packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.html","../../../packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.module.ts","../../../packages/geo/src/lib/workspace/widgets/interactive-selection/interactive-selection.component.ts","../../../packages/geo/src/lib/workspace/widgets/interactive-selection/interactive-selection.component.html","../../../packages/geo/src/lib/workspace/widgets/widgets.ts","../../../packages/geo/src/lib/workspace/confirmation-popup/confirmation-popup.component.ts","../../../packages/geo/src/lib/workspace/confirmation-popup/confirmation-popup.component.html","../../../packages/geo/src/lib/workspace/shared/edition-workspace.ts","../../../packages/geo/src/lib/workspace/shared/workspace.utils.ts","../../../packages/geo/src/lib/workspace/shared/edition-workspace.service.ts","../../../packages/geo/src/lib/style/shared/vector/commonVectorStyle.ts","../../../packages/geo/src/lib/utils/propertyTypeDetector/propertyTypeDetector.service.ts","../../../packages/geo/src/lib/workspace/shared/feature-workspace.ts","../../../packages/geo/src/lib/workspace/shared/feature-workspace.service.ts","../../../packages/geo/src/lib/workspace/shared/wfs-workspace.ts","../../../packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts","../../../packages/geo/src/lib/workspace/shared/wms-workspace.service.ts","../../../packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts","../../../packages/geo/src/lib/workspace/workspace-selector/workspace-selector.module.ts","../../../packages/geo/src/lib/workspace/workspace.module.ts","../../../packages/geo/src/lib/geo.module.ts","../../../packages/geo/src/lib/catalog/shared/catalog.enum.ts","../../../packages/geo/src/lib/catalog/shared/catalog.abstract.ts","../../../packages/geo/src/lib/catalog/shared/catalogs.ts","../../../packages/geo/src/lib/catalog/shared/catalog.service.ts","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.ts","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.html","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser-group.component.ts","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser-group.component.html","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser.component.ts","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser.component.html","../../../packages/geo/src/lib/catalog/catalog-browser/catalog-browser.module.ts","../../../packages/geo/src/lib/catalog/catalog-library/add-catalog-dialog.component.ts","../../../packages/geo/src/lib/catalog/catalog-library/add-catalog-dialog.component.html","../../../packages/geo/src/lib/catalog/catalog-library/catalog-library-item.component.ts","../../../packages/geo/src/lib/catalog/catalog-library/catalog-library-item.component.html","../../../packages/geo/src/lib/catalog/catalog-library/catalog-library.component.ts","../../../packages/geo/src/lib/catalog/catalog-library/catalog-library.component.html","../../../packages/geo/src/lib/catalog/catalog-library/catalog-library.module.ts","../../../packages/geo/src/lib/catalog/catalog.module.ts","../../../packages/geo/src/lib/draw/draw/draw.module.ts","../../../packages/geo/src/lib/draw/drawingTool.module.ts","../../../packages/geo/src/lib/feature/feature-form/feature-form.module.ts","../../../packages/geo/src/lib/geometry/geometry-form-field/geometry-form-field.component.ts","../../../packages/geo/src/lib/geometry/geometry-form-field/geometry-form-field.component.html","../../../packages/geo/src/lib/geometry/geometry-form-field/geometry-form-field.module.ts","../../../packages/geo/src/lib/geometry/geometry.module.ts","../../../packages/geo/src/lib/map/map.module.ts","../../../packages/geo/src/lib/measure/measurer/measurer.module.ts","../../../packages/geo/src/lib/measure/measure.module.ts","../../../packages/geo/src/lib/print/print-form/print-form.component.ts","../../../packages/geo/src/lib/print/print-form/print-form.component.html","../../../packages/geo/src/lib/print/print/print.component.ts","../../../packages/geo/src/lib/print/print/print.component.html","../../../packages/geo/src/lib/print/print.module.ts","../../../packages/geo/src/lib/directions/directions.provider.ts","../../../packages/geo/src/lib/directions/directions-sources/directions-source.interface.ts","../../../packages/geo/src/lib/directions/directions-sources/osrm-directions-source.ts","../../../packages/geo/src/lib/directions/directions-sources/directions-source.provider.ts","../../../packages/geo/src/lib/offline/offline.provider.ts","../../../packages/geo/src/lib/overlay/shared/overlay.enum.ts","../../../packages/geo/src/lib/search/shared/search.provider.ts","../../../packages/geo/src/lib/search/shared/sources/cadastre.ts","../../../packages/geo/src/lib/search/shared/sources/cadastre.providers.ts","../../../packages/geo/src/lib/search/shared/sources/nominatim.ts","../../../packages/geo/src/lib/search/shared/sources/nominatim.providers.ts","../../../packages/geo/src/lib/search/shared/sources/storedqueries.ts","../../../packages/geo/src/lib/search/shared/sources/storedqueries.providers.ts","../../../packages/geo/src/lib/search/shared/sources/workspace.ts","../../../packages/geo/src/lib/search/shared/sources/workspace.providers.ts","../../../packages/geo/src/lib/workspace/confirmation-popup/confirmation-popup.module.ts","../../../packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts","../../../packages/geo/src/lib/workspace/workspace-updator/workspace-updator.module.ts","../../../packages/geo/src/public_api.ts","../../../packages/geo/src/igo2-geo.ts"],"sourcesContent":["import { NumberUtils } from '@igo2/utils';\n\nimport MapBrowserPointerEvent from 'ol/MapBrowserEvent';\nimport { Coordinate } from 'ol/coordinate';\nimport { MAC } from 'ol/has';\nimport * as olproj from 'ol/proj';\n\nimport { Position } from 'geojson';\n\nimport { MapViewState } from './map.interface';\nimport { Projection } from './projection.interfaces';\n\n/**\n * This method extracts a coordinate tuple from a string.\n * @param str Any string\n * @param mapProjection string Map Projection\n * @param opts.forceNA boolean Force North America Zone\n * @returns object:\n * lonLat: Coordinate,\n * message: Message of error,\n * radius: radius of the confience of coordinate,\n * conf: confidence of the coordinate}\n */\nexport function stringToLonLat(\n str: string,\n mapProjection: string,\n opts: { forceNA?: boolean } = {}\n): {\n lonLat: [number, number] | undefined;\n message: string;\n radius: number | undefined;\n conf: number | undefined;\n} {\n let lonLat: [number, number];\n let coordStr: string;\n let negativeLon: string;\n let degreesLon: string;\n let minutesLon: string;\n let secondsLon: string;\n let directionLon: string;\n let decimalLon: string;\n let negativeLat: string;\n let degreesLat: string;\n let minutesLat: string;\n let secondsLat: string;\n let directionLat: string;\n let decimalLat: string;\n let zone: string;\n let radius: string;\n let conf: string;\n let lon: any;\n let lat: any;\n\n const projectionPattern = '(\\\\s*;\\\\s*[\\\\d]{4,6})';\n const toProjection = '4326';\n let projectionStr: string;\n const projectionRegex = new RegExp(projectionPattern, 'g');\n\n const lonlatCoord = '([-+])?([\\\\d]{1,3})([,.](\\\\d+))?°?';\n const lonLatPattern = `${lonlatCoord}[\\\\s,]+${lonlatCoord}`;\n const lonLatRegex = new RegExp(`^${lonLatPattern}$`, 'g');\n\n const dmsCoord =\n '([0-9]{1,2})[:|°]?\\\\s*([0-9]{1,2})?[:|\\'|′|’]?\\\\s*([0-9]{1,2}(?:.[0-9]+){0,1})?\\\\s*[\"|″|”]?\\\\s*';\n const dmsCoordPattern = `${dmsCoord}([N|S|E|W|O]),?\\\\s*${dmsCoord}([N|S|E|W|O])`;\n const dmsRegex = new RegExp(`^${dmsCoordPattern}$`, 'gi');\n\n const patternUtm =\n '(UTM)-?(\\\\d{1,2})[\\\\s,]*(\\\\d+[.,]?\\\\d+)[\\\\s,]+(\\\\d+[.,]?\\\\d+)';\n const utmRegex = new RegExp(`^${patternUtm}`, 'gi');\n\n const patternMtm =\n '(MTM)-?(\\\\d{1,2})[\\\\s,]*(\\\\d+[.,]?\\\\d+)[\\\\s,]+(\\\\d+[.,]?\\\\d+)';\n const mtmRegex = new RegExp(`^${patternMtm}`, 'gi');\n\n const ddCoord = '([-+])?(\\\\d{1,3})[,.](\\\\d+)';\n const patternDd = `${ddCoord}\\\\s*[,]?\\\\s*${ddCoord}`;\n const ddRegex = new RegExp(`^${patternDd}`, 'g');\n\n const dmdCoord =\n '([-+])?(\\\\d{1,3})[\\\\s,.]{1}(\\\\d{1,2})[\\\\s,.]{1}(\\\\d{1,2})[.,]?(\\\\d{1,5})?';\n const patternDmd = `${dmdCoord}\\\\s*[,.]?\\\\s*${dmdCoord}`;\n const dmdRegex = new RegExp(`^${patternDmd}`, 'g');\n\n const patternBELL =\n 'LAT\\\\s*[\\\\s:]*\\\\s*([-+])?(\\\\d{1,2})[\\\\s.,]?(\\\\d+)?[\\\\s.,]?\\\\s*(\\\\d{1,2}([.,]\\\\d+)?)?\\\\s*(N|S|E|W)?\\\\s*LONG\\\\s*[\\\\s:]*\\\\s*([-+])?(\\\\d{1,3})[\\\\s.,]?(\\\\d+)?[\\\\s.,]?\\\\s*(\\\\d{1,2}([.,]\\\\d+)?)?\\\\s*(N|S|E|W)?\\\\s*UNC\\\\s*[\\\\s:]?\\\\s*(\\\\d+)\\\\s*CONF\\\\s*[\\\\s:]?\\\\s*(\\\\d{1,3})';\n const bellRegex = new RegExp(`^${patternBELL}?`, 'gi');\n\n const mmCoord = '([-+]?\\\\d+)[,.]?(\\\\d+)?';\n const mmPattern = `${mmCoord}[\\\\s,]+${mmCoord}`;\n const mmRegex = new RegExp(`^${mmPattern}$`, 'g');\n\n let isXYCoords = false;\n\n str = str.toLocaleUpperCase().trim();\n\n // Extract projection\n if (projectionRegex.test(str)) {\n [coordStr, projectionStr] = str.split(';').map((s) => s.trim());\n } else {\n coordStr = str;\n }\n if (lonLatRegex.test(coordStr)) {\n [, negativeLon, lon, , decimalLon, negativeLat, lat, , decimalLat] =\n coordStr.match(lonLatPattern);\n\n lon = parseFloat((negativeLon ? negativeLon : '') + lon + '.' + decimalLon);\n lat = parseFloat((negativeLat ? negativeLat : '') + lat + '.' + decimalLat);\n } else if (dmsRegex.test(coordStr)) {\n [\n ,\n degreesLon,\n minutesLon,\n secondsLon,\n directionLon,\n degreesLat,\n minutesLat,\n secondsLat,\n directionLat\n ] = coordStr.match(dmsCoordPattern);\n\n if (directionLon === 'S' || directionLon === 'N') {\n degreesLon = [degreesLat, (degreesLat = degreesLon)][0];\n minutesLon = [minutesLat, (minutesLat = minutesLon)][0];\n secondsLon = [secondsLat, (secondsLat = secondsLon)][0];\n directionLon = [directionLat, (directionLat = directionLon)][0];\n }\n\n lon = convertDMSToDD(\n parseFloat(degreesLon),\n parseFloat(minutesLon),\n parseFloat(secondsLon),\n directionLon\n );\n lat = convertDMSToDD(\n parseFloat(degreesLat),\n parseFloat(minutesLat),\n parseFloat(secondsLat),\n directionLat\n );\n } else if (utmRegex.test(coordStr)) {\n isXYCoords = true;\n [, , zone, lon, lat] = coordStr.match(patternUtm);\n const epsgUtm = Number(zone) < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\n [lon, lat] = olproj.transform(\n [parseFloat(lon), parseFloat(lat)],\n epsgUtm,\n 'EPSG:4326'\n );\n } else if (mtmRegex.test(coordStr)) {\n isXYCoords = true;\n [, , zone, lon, lat] = coordStr.match(patternMtm);\n const epsgMtm =\n Number(zone) < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + Number(zone)}`;\n [lon, lat] = olproj.transform(\n [parseFloat(lon), parseFloat(lat)],\n epsgMtm,\n 'EPSG:4326'\n );\n } else if (dmdRegex.test(coordStr)) {\n [\n ,\n negativeLon,\n degreesLon,\n minutesLon,\n secondsLon,\n decimalLon,\n negativeLat,\n degreesLat,\n minutesLat,\n secondsLat,\n decimalLat\n ] = coordStr.match(patternDmd);\n\n lon = convertDMSToDD(\n parseFloat((negativeLon ? negativeLon : '') + degreesLon),\n parseFloat(minutesLon),\n parseFloat(secondsLon),\n directionLon\n );\n lat = convertDMSToDD(\n parseFloat((negativeLat ? negativeLat : '') + degreesLat),\n parseFloat(minutesLat),\n parseFloat(secondsLat),\n directionLat\n );\n } else if (ddRegex.test(coordStr)) {\n [\n ,\n negativeLon,\n degreesLon,\n decimalLon,\n negativeLat,\n degreesLat,\n decimalLat\n ] = coordStr.match(patternDd);\n\n lon = convertDMSToDD(\n parseFloat((negativeLon ? negativeLon : '') + degreesLon),\n parseFloat(minutesLon),\n parseFloat(secondsLon),\n directionLon\n );\n lat = convertDMSToDD(\n parseFloat((negativeLat ? negativeLat : '') + degreesLat),\n parseFloat(minutesLat),\n parseFloat(secondsLat),\n directionLat\n );\n } else if (bellRegex.test(coordStr)) {\n [\n ,\n negativeLat,\n degreesLat,\n minutesLat,\n secondsLat,\n ,\n directionLat,\n negativeLon,\n degreesLon,\n minutesLon,\n secondsLon,\n ,\n directionLon,\n radius,\n conf\n ] = coordStr.match(patternBELL);\n\n // Set default value for North America\n if (!directionLon) {\n directionLon = 'W';\n }\n\n // Check if real minutes or decimals\n if (minutesLon && minutesLon.length > 2) {\n lon = parseFloat(\n (negativeLon ? negativeLon : '') + degreesLon + '.' + minutesLon\n );\n } else {\n lon = convertDMSToDD(\n parseFloat(degreesLon),\n parseFloat(minutesLon),\n parseFloat(secondsLon),\n directionLon\n );\n }\n\n if (minutesLat && minutesLat.length > 2) {\n lat = parseFloat(\n (negativeLat ? negativeLat : '') + degreesLat + '.' + minutesLat\n );\n } else {\n lat = convertDMSToDD(\n parseFloat(degreesLat),\n parseFloat(minutesLat),\n parseFloat(secondsLat),\n directionLat\n );\n }\n } else if (mmRegex.test(coordStr)) {\n isXYCoords = true;\n [, lon, decimalLon, lat, decimalLat] = coordStr.match(mmPattern);\n\n if (decimalLon) {\n lon = parseFloat(lon + '.' + decimalLon);\n }\n\n if (decimalLat) {\n lat = parseFloat(lat + '.' + decimalLat);\n }\n } else {\n return {\n lonLat: undefined,\n message: '',\n radius: undefined,\n conf: undefined\n };\n }\n\n if (opts.forceNA && !isXYCoords) {\n // Set a negative coordinate for North America zone\n if (lon > 0 && lat > 0) {\n if (lon > lat) {\n lon = -lon;\n } else {\n lat = -lat;\n }\n }\n\n // Reverse coordinate to respect lonLat convention\n if (lon > lat) {\n lon = [lat, (lat = lon)][0];\n }\n }\n\n lonLat = [Number(lon), Number(lat)] as [number, number];\n\n // Reproject the coordinate if projection parameter have been set and coord is not 4326\n if (\n (projectionStr !== undefined && projectionStr !== toProjection) ||\n lonLat[0] > 180 ||\n lonLat[0] < -180 ||\n lonLat[1] > 90 ||\n lonLat[1] < -90\n ) {\n const source = projectionStr ? 'EPSG:' + projectionStr : mapProjection;\n const dest = 'EPSG:' + toProjection;\n\n try {\n lonLat = olproj.transform(lonLat, source, dest) as [number, number];\n } catch {\n return {\n lonLat: undefined,\n message: 'Projection ' + source + ' not supported',\n radius: undefined,\n conf: undefined\n };\n }\n }\n if (Math.abs(lonLat[0]) <= 180 && Math.abs(lonLat[1]) <= 90) {\n return {\n lonLat,\n message: '',\n radius: radius ? parseInt(radius, 10) : undefined,\n conf: conf ? parseInt(conf, 10) : undefined\n };\n } else {\n return {\n lonLat: undefined,\n message: 'Coordinate out of Longitude/Latitude bounds',\n radius: undefined,\n conf: undefined\n };\n }\n}\n\n/**\n * Convert degrees minutes seconds to dd\n * @param degrees Degrees\n * @param minutes Minutes\n * @param seconds Seconds\n * @param direction Direction\n */\nfunction convertDMSToDD(\n degrees: number,\n minutes: number,\n seconds: number,\n direction: string\n) {\n minutes = minutes || 0;\n seconds = seconds || 0;\n\n const neg = degrees < 0;\n let dd = Math.abs(degrees) + minutes / 60 + seconds / 3600;\n\n if (neg || direction === 'S' || direction === 'W') {\n dd = -dd;\n } // Don't do anything for N or E\n return dd;\n}\n\n/**\n * Convert dd to degrees minutes seconds\n * @param lonLatDD longitude and latitude in dd\n * @param decimal number of decimals for seconds\n * @returns longitude and latitude in dms\n */\nexport function convertDDToDMS(lonLatDD: Coordinate, decimal = 3): string[] {\n const lonLatDMS = [];\n\n lonLatDD.forEach((dd) => {\n const degrees = dd < 0 ? Math.ceil(dd) : Math.floor(dd);\n const int = dd < 0 ? (degrees - dd) * 60 : (dd - degrees) * 60;\n const minutes = Math.floor(int);\n const seconds = ((int - minutes) * 60).toFixed(decimal);\n\n lonLatDMS.push(`${degrees}° ${minutes}' ${seconds}\"`);\n });\n return lonLatDMS;\n}\n\n/**\n * Return true of two view states are equal.\n * @param state1 View state\n * @param state2 View state\n * @returns True if the view states are equal\n */\nexport function viewStatesAreEqual(\n state1: MapViewState,\n state2: MapViewState\n): boolean {\n if (state1 === undefined || state2 === undefined) {\n return false;\n }\n\n const tolerance = 1 / 10000;\n return (\n state1.zoom === state2.zoom &&\n Math.trunc(state1.center[0] / tolerance) ===\n Math.trunc(state2.center[0] / tolerance) &&\n Math.trunc(state1.center[1] / tolerance) ===\n Math.trunc(state2.center[1] / tolerance)\n );\n}\n\n/**\n * Format the scale to a human readable text\n * @param Scale of the map\n * @returns Human readable scale text\n */\nexport function formatScale(scale) {\n scale = Math.round(scale);\n if (scale < 10000) {\n return scale + '';\n }\n\n scale = Math.round(scale / 1000);\n if (scale < 1000) {\n return scale + 'K';\n }\n\n scale = Math.round(scale / 1000);\n return scale + 'M';\n}\n\n/**\n * Return the resolution from a scale denom\n * @param scale Scale denom\n * @param dpi DPI\n * @returns Resolution\n */\nexport function getResolutionFromScale(scale: number, dpi = 96): number {\n const inchesPerMeter = 39.3701;\n return scale / (inchesPerMeter * dpi);\n}\n\n/**\n * Return the resolution from a scale denom\n * @param Scale denom\n * @returns Resolution\n */\nexport function getScaleFromResolution(\n resolution: number,\n unit = 'm',\n dpi = 96\n): number {\n const inchesPerMeter = 39.3701;\n return resolution * olproj.METERS_PER_UNIT[unit] * inchesPerMeter * dpi;\n}\n\n/**\n * Returns true if the CTRL key is pushed during an Ol MapBrowserPointerEvent\n * @param event OL MapBrowserPointerEvent\n * @returns Whether the CTRL key is pushed\n */\nexport function ctrlKeyDown(event: MapBrowserPointerEvent<any>): boolean {\n const originalEvent = event.originalEvent;\n return (\n !originalEvent.altKey &&\n (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&\n !originalEvent.shiftKey\n );\n}\n\nexport function roundCoordTo(\n coord: [number, number] | Position | Coordinate,\n decimal = 3\n): Coordinate {\n return [\n NumberUtils.roundToNDecimal(coord[0], decimal),\n NumberUtils.roundToNDecimal(coord[1], decimal)\n ];\n}\n\nexport function roundCoordToString(\n coord: [number, number] | Position | Coordinate,\n decimal = 3\n): [string, string] {\n return roundCoordTo(coord, decimal).map((r) => r.toString() + '°') as [\n string,\n string\n ];\n}\n\n/**\n * Returns an array of converted coordinates.\n * Conversion is done for every configured projections\n * and for the current UTM zone and MTM zone.\n * @param lonLat [number, number] array of the coordinate to transform.\n * @param projections Projection[] Array of destination projection.\n * @param reverseCoords To reverse coords from latLon to lonLat (search option)\n * @returns Returns an array of converted coordinates.\n */\nexport function lonLatConversion(\n lonLat: [number, number],\n projections: Projection[]\n): {\n code: string;\n alias: string;\n coord: [number, number];\n igo2CoordFormat: string;\n}[] {\n const rawCoord3857 = olproj.transform(lonLat, 'EPSG:4326', 'EPSG:3857') as [\n number,\n number\n ];\n const convertedLonLat = [\n {\n code: 'EPSG:3857',\n alias: 'Web Mercator',\n coord: rawCoord3857,\n igo2CoordFormat: `${roundCoordTo(rawCoord3857).join(', ')} ; 3857`\n }\n ];\n\n // detect the current utm zone.\n const utmZone = utmZoneFromLonLat(lonLat);\n const epsgUtm = utmZone < 10 ? `EPSG:3260${utmZone}` : `EPSG:326${utmZone}`;\n const utmName = `UTM-${utmZone}`;\n const rawCoordUtm = olproj.transform(lonLat, 'EPSG:4326', epsgUtm) as [\n number,\n number\n ];\n convertedLonLat.push({\n code: epsgUtm,\n alias: 'UTM',\n coord: rawCoordUtm,\n igo2CoordFormat: `${utmName} ${roundCoordTo(rawCoordUtm).join(', ')}`\n });\n\n // detect the current mtm zone.\n const mtmZone = mtmZoneFromLonLat(lonLat);\n if (mtmZone) {\n const epsgMtm =\n mtmZone < 10 ? `EPSG:3218${mtmZone}` : `EPSG:321${80 + mtmZone}`;\n const mtmName = `MTM-${mtmZone}`;\n const rawCoordMtm = olproj.transform(lonLat, 'EPSG:4326', epsgMtm) as [\n number,\n number\n ];\n convertedLonLat.push({\n code: epsgMtm,\n alias: 'MTM',\n coord: rawCoordMtm,\n igo2CoordFormat: `${mtmName} ${roundCoordTo(rawCoordMtm).join(', ')}`\n });\n }\n\n projections.forEach((projection) => {\n const rawCoord = olproj.transform(lonLat, 'EPSG:4326', projection.code) as [\n number,\n number\n ];\n const numericEpsgCode = projection.code.split(':')[1];\n convertedLonLat.push({\n code: projection.code,\n alias: projection.alias || projection.code,\n coord: rawCoord,\n igo2CoordFormat: `${roundCoordTo(rawCoord).join(\n ', '\n )} ; ${numericEpsgCode}`\n });\n });\n\n return convertedLonLat;\n}\n\n/**\n * Detect the current utm zone of the lon/lat coordinate.\n * @param lonLat [number, number] array of the coordinate to detect the UTM zone.\n * @returns number The UTM zone.\n */\nexport function utmZoneFromLonLat(lonLat: [number, number]) {\n return Math.ceil((lonLat[0] + 180) / 6);\n}\n\n/**\n * Detect the current mtm zone of the lon/lat coordinate.\n * @param lonLat [number, number] array of the coordinate to detect the MTM zone.\n * @returns number The MTM zone. Undefined if outside of the mtm application zone.\n */\nexport function mtmZoneFromLonLat(lonLat: [number, number]) {\n const long = lonLat[0];\n let mtmZone;\n if (long < -51 && long > -54) {\n mtmZone = 1;\n }\n if (long < -54 && long > -57) {\n mtmZone = 2;\n }\n if (long < -57 && long > -60) {\n mtmZone = 3;\n }\n if (long < -60 && long > -63) {\n mtmZone = 4;\n }\n if (long < -63 && long > -66) {\n mtmZone = 5;\n }\n if (long < -66 && long > -69) {\n mtmZone = 6;\n }\n if (long < -69 && long > -72) {\n mtmZone = 7;\n }\n if (long < -72 && long > -75) {\n mtmZone = 8;\n }\n if (long < -75 && long > -78) {\n mtmZone = 9;\n }\n if (long < -78 && long > -81) {\n mtmZone = 10;\n }\n return mtmZone;\n}\n","import type {\n AnyLayer,\n AnyLayerItemOptions,\n AnyLayerOptions,\n Layer,\n LayerGroup,\n LayerGroupOptions,\n VectorTileLayerOptions\n} from '../shared/layers';\n\ntype SortDirection = 'asc' | 'desc';\n\nexport function isLayerGroupOptions(\n option: AnyLayerOptions\n): option is LayerGroupOptions {\n return (option as LayerGroupOptions).type === 'group';\n}\n\nexport function isLayerItemOptions(\n options: AnyLayerOptions\n): options is AnyLayerItemOptions {\n return 'source' in options || 'sourceOptions' in options;\n}\n\nexport function isLayerGroup(layer: AnyLayer): layer is LayerGroup {\n return layer.type === 'group';\n}\n\nexport function isLayerItem(layer: AnyLayer): layer is Layer {\n return !isLayerGroup(layer);\n}\n\nexport function isBaseLayer(layer: AnyLayer): layer is Layer {\n return isLayerItem(layer) && layer.baseLayer;\n}\n\nfunction isInternalLayer(layer: AnyLayer): boolean {\n return layer.isIgoInternalLayer;\n}\n\nexport function computeMVTOptionsOnHover(layerOptions: AnyLayerItemOptions) {\n const vectorTileLayerOptions = layerOptions as VectorTileLayerOptions;\n if (\n vectorTileLayerOptions.sourceOptions?.type === 'mvt' &&\n (vectorTileLayerOptions.igoStyle?.styleByAttribute?.hoverStyle ||\n vectorTileLayerOptions.igoStyle?.hoverStyle)\n ) {\n const fc = vectorTileLayerOptions.sourceOptions.featureClass;\n vectorTileLayerOptions.sourceOptions.featureClass = fc ? fc : 'feature';\n }\n ret