From 3cdcf7ff05a79e70ba123246d05bd61f037d2e04 Mon Sep 17 00:00:00 2001 From: ElenaGallo <56537133+ElenaGallo@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:47:44 +0200 Subject: [PATCH] update_9482 (#9492) --- docs/user-guide/catalog.md | 30 ++++++++++++-------- docs/user-guide/img/catalog/cog_service.jpg | Bin 0 -> 19615 bytes 2 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 docs/user-guide/img/catalog/cog_service.jpg diff --git a/docs/user-guide/catalog.md b/docs/user-guide/catalog.md index c4eacc4835..5225edea15 100644 --- a/docs/user-guide/catalog.md +++ b/docs/user-guide/catalog.md @@ -274,15 +274,15 @@ When the user saves this custom catalog service and clicks on search, he will se

Browse custom TMS service. It contains only one result

-## Sample custom +##### Sample custom ```text url: https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png ``` -## Sample custom with advanced options +##### Sample custom with advanced options - ```text +```text url: https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg ``` @@ -299,7 +299,7 @@ url: https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg } ``` -### TMS 1.0.0 +#### TMS 1.0.0 Selecting the "TMS 1.0.0" provider the user can insert the URL of the Tile Map Service (see [TMS Specification](https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification)). For instance, in GeoServer, it is the URL of the "TMS" link in the home page. @@ -314,7 +314,7 @@ When saved this, the user will be allowed to browse and add to the map the TMS l

Browse TMS 1.0.0 layers

-#### sample TMS 1.0.0 services +##### Sample TMS 1.0.0 services ```text https://public.sig.rennesmetropole.fr/geowebcache/service/tms/1.0.0 @@ -322,7 +322,7 @@ https://osm.geobretagne.fr/gwc01/service/tms/1.0.0 https://gs-stable.geosolutionsgroup.com/geoserver/gwc/service/tms/1.0.0 ``` -#### TMS Known Services +##### TMS Known Services The other known services are listed as providers below "custom" and "TMS 1.0.0". They are a static list configured inside the application. Selecting one of the provider listed and saving the new catalog service allows to browse al the variants known for that service. For more information about the list of available providers, see the developer documentation about [Tile Providers](../../developer-guide/maps-configuration/#tileprovider) @@ -334,10 +334,11 @@ The other known services are listed as providers below "custom" and "TMS 1.0.0". ### 3D Tiles Catalog -3D Tiles is an [OGC specification](https://www.ogc.org/standards/3DTiles) designed for streaming and rendering massive 3D geospatial content such as Photogrammetry, 3D Buildings, BIM/CAD, and Point Clouds across desktop, web and mobile applications. -MapStore allows to publish 3D Tiles contents in its 3D mode on top of the [CesiumJS capabilities](https://github.com/CesiumGS/3d-tiles). Through the Catalog tool, a specific source type to load 3D Tiles in the Cesium Map can be configured as follows by specifying the URL of a reachable *tileset.json*. +**3D Tiles** is an [OGC specification](https://www.ogc.org/standards/3DTiles) designed for streaming and rendering massive 3D geospatial content such as Photogrammetry, 3D Buildings, BIM/CAD, and Point Clouds across desktop, web and mobile applications. + +MapStore allows to publish 3D Tiles contents in its 3D mode on top of the [CesiumJS capabilities](https://github.com/CesiumGS/3d-tiles). Through the *Catalog* tool, a specific source type to load 3D Tiles in the Cesium Map can be configured as follows by specifying the URL of a reachable `tileset.json`. -In **general settings of** 3D Tiles service, the user can specify the title to assign to this service and the URL of the service. +In **General Settings** of 3D Tiles service, the user can specify the title to assign to this service and the URL of the service. @@ -347,7 +348,12 @@ In **general settings of** 3D Tiles service, the user can specify the title to a (some [FAQs](https://cloud.google.com/blog/products/maps-platform/commonly-asked-questions-about-our-recently-launched-photorealistic-3d-tiles) are also available online for this purpose) before providing Google Photorealistic 3D Tile in your MapStore maps in order to enable only allowed tools (e.g. *Measurement* and *Identify* tools should be probably disabled). For this purpose it is possible to appropriately set the [configuration of MapStore plugins](../../developer-guide/maps-configuration/#map-options) to exclude tools that could conflict with Google policies. Alternatively, it is possible to use a dedicated [application context](application-context.md#configure-plugins) to show Photorealistic 3D Tiles by including only the permitted tools within it. -### Cloud Optimized GeoTIFF +### COG Catalog + +A **Cloud Optimized GeoTIFF** ([COG](https://www.cogeo.org)) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud environment. It does this by leveraging the ability of clients issuing ​HTTP GET range requests to ask for just the parts of a file they need. + +MapStore allows to add COG layers (also as a background) through its *Catalog* tool where a specific source type can be configured as follows by specifying the URL of a reachable COG `.tif` resource. + +In **General Settings** of a COG source type, it is possible to specify the service `Title` and its `URL`. -A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​HTTP GET range requests to ask for just the parts of a file they need. -MapStore allows to add COG as layers and backgrounds. Through the Catalog tool, a multiple url sources of COG are obtained and converted to layers as each url corresponds to a layer + diff --git a/docs/user-guide/img/catalog/cog_service.jpg b/docs/user-guide/img/catalog/cog_service.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05b7797b9c1a62ff197536b829974b6b0cc0a77f GIT binary patch literal 19615 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