+ {#if USER_TYPE == "anonymous"}
Feel free to mess around; you can't save changes unless you are logged in.
{/if}
+
+
+
+
+ Main Content setMapExtent()}>🔎
+
+
+ {#each layerLookupArr as layer}
+
+ {#if !layer.feature }
+
+ {:else}
+
+ {/if}
+
+ {#if currentLayer == layer.layerDef.name}
showExtent(layer)}>sheet {layer.layerDef.page_str}
+ {:else}
+
zoomToLayer(layer)} on:mouseover={() => showExtent(layer)}>sheet {layer.layerDef.page_str}
+ {/if}
+
+ {:else}
+
No layers
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/loc_insurancemaps/components/src/Volume.svelte b/loc_insurancemaps/components/src/Volume.svelte
index 312bf36b..8d09078e 100644
--- a/loc_insurancemaps/components/src/Volume.svelte
+++ b/loc_insurancemaps/components/src/Volume.svelte
@@ -19,10 +19,14 @@ import XYZ from 'ol/source/XYZ';
import TileWMS from 'ol/source/TileWMS';
import VectorSource from 'ol/source/Vector';
+import Crop from 'ol-ext/filter/Crop';
+
import Feature from 'ol/Feature';
import Polygon from 'ol/geom/Polygon';
import Point from 'ol/geom/Point';
+import GeoJSON from 'ol/format/GeoJSON';
+
import Style from 'ol/style/Style';
import Fill from 'ol/style/Fill';
import Stroke from 'ol/style/Stroke';
@@ -38,6 +42,7 @@ export let CSRFTOKEN;
export let USER_TYPE;
export let GEOSERVER_WMS;
export let MAPBOX_API_KEY;
+export let USE_TITILER;
$: sheetsLoading = VOLUME.status == "initializing...";
let loadTip = false;
@@ -228,6 +233,13 @@ function makeRotateCenterLayer() {
return layer
}
+function getTitilerXYZUrl(layername) {
+ const titilerUrl = "https://titiler.legiongis.com";
+ const cogUrl = "https%3A%2F%2Foldinsurancemaps.net%2Fuploaded%2Fcog%2F"+ layername + ".tif";
+ const xyzUrl = titilerUrl +"/cog/tiles/{z}/{x}/{y}.png?TileMatrixSetId=WebMercatorQuad&url=" + cogUrl;
+ return xyzUrl
+}
+
function showRotateCenter() {
if (map && centerPointLayer) {
const centerCoords = map.getView().getCenter();
@@ -300,20 +312,46 @@ function setLayersFromVolume(setExtent) {
})
// create the actual ol layers and add to group.
- const newLayer = new TileLayer({
- source: new TileWMS({
- url: GEOSERVER_WMS,
- params: {
- 'LAYERS': layerDef.geoserver_id,
- 'TILED': true,
- },
- tileGrid: tileGrid,
- }),
- extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
- });
+ let newLayer;
+ if (USE_TITILER) {
+ newLayer = new TileLayer({
+ source: new XYZ({
+ url: getTitilerXYZUrl(layerDef.name),
+ }),
+ extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
+ });
+ } else {
+ newLayer = new TileLayer({
+ source: new TileWMS({
+ url: GEOSERVER_WMS,
+ params: {
+ 'LAYERS': layerDef.geoserver_id,
+ 'TILED': true,
+ },
+ tileGrid: tileGrid,
+ }),
+ extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
+ });
+ }
layerRegistry[layerDef.geoserver_id] = newLayer;
mainGroup.getLayers().push(newLayer)
+
+
+ if (VOLUME.multimask) {
+ Object.entries(VOLUME.multimask).forEach(kV => {
+ if (kV[0] == layerDef.name) {
+ const feature = new GeoJSON().readFeature(kV[1])
+ feature.getGeometry().transform("EPSG:4326", "EPSG:3857")
+ const crop = new Crop({
+ feature: feature,
+ wrapX: true,
+ inner: false
+ });
+ newLayer.addFilter(crop);
+ }
+ });
+ }
});
VOLUME.ordered_layers.index_layers.forEach( function(layerDef, n) {
@@ -325,17 +363,28 @@ function setLayersFromVolume(setExtent) {
})
// create the actual ol layers and add to group.
- const newLayer = new TileLayer({
- source: new TileWMS({
- url: GEOSERVER_WMS,
- params: {
- 'LAYERS': layerDef.geoserver_id,
- 'TILED': true,
- },
- tileGrid: tileGrid,
- }),
- extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
- });
+ let newLayer;
+ if (USE_TITILER) {
+ newLayer = new TileLayer({
+ source: new XYZ({
+ url: getTitilerXYZUrl(layerDef.name),
+ }),
+ extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
+ });
+ } else {
+ newLayer = new TileLayer({
+ source: new TileWMS({
+ url: GEOSERVER_WMS,
+ params: {
+ 'LAYERS': layerDef.geoserver_id,
+ 'TILED': true,
+ },
+ tileGrid: tileGrid,
+ }),
+ extent: transformExtent(layerDef.extent, "EPSG:4326", "EPSG:3857")
+ });
+ }
+
layerRegistry[layerDef.geoserver_id] = newLayer;
keyGroup.getLayers().push(newLayer)
});
@@ -569,18 +618,9 @@ function handleKeyup(e) {
{/if}
- {#if USER_TYPE != 'anonymous'}