tileSize
});
}
+function createXYZ(options) {
+ const xyzOptions = options || {};
+ const extent = xyzOptions.extent || get$1("EPSG:3857").getExtent();
+ const gridOptions = {
+ extent,
+ minZoom: xyzOptions.minZoom,
+ tileSize: xyzOptions.tileSize,
+ resolutions: resolutionsFromExtent(
+ extent,
+ xyzOptions.maxZoom,
+ xyzOptions.tileSize,
+ xyzOptions.maxResolution
+ )
+ };
+ return new TileGrid$1(gridOptions);
+}
function resolutionsFromExtent(extent, maxZoom, tileSize, maxResolution) {
maxZoom = maxZoom !== void 0 ? maxZoom : DEFAULT_MAX_ZOOM;
tileSize = toSize(tileSize !== void 0 ? tileSize : DEFAULT_TILE_SIZE);
return pushParseAndPop({}, TMS_LIMITS_PARSERS, node, objectStack);
}
const OlFormatWmtsCapabilities = WMTSCapabilities;
+class XYZ extends TileImage$1 {
+ /**
+ * @param {Options} [options] XYZ options.
+ */
+ constructor(options) {
+ options = options || {};
+ const projection = options.projection !== void 0 ? options.projection : "EPSG:3857";
+ const tileGrid = options.tileGrid !== void 0 ? options.tileGrid : createXYZ({
+ extent: extentFromProjection(projection),
+ maxResolution: options.maxResolution,
+ maxZoom: options.maxZoom,
+ minZoom: options.minZoom,
+ tileSize: options.tileSize
+ });
+ super({
+ attributions: options.attributions,
+ cacheSize: options.cacheSize,
+ crossOrigin: options.crossOrigin,
+ interpolate: options.interpolate,
+ opaque: options.opaque,
+ projection,
+ reprojectionErrorThreshold: options.reprojectionErrorThreshold,
+ tileGrid,
+ tileLoadFunction: options.tileLoadFunction,
+ tilePixelRatio: options.tilePixelRatio,
+ tileUrlFunction: options.tileUrlFunction,
+ url: options.url,
+ urls: options.urls,
+ wrapX: options.wrapX !== void 0 ? options.wrapX : true,
+ transition: options.transition,
+ attributionsCollapsible: options.attributionsCollapsible,
+ zDirection: options.zDirection
+ });
+ this.gutter_ = options.gutter !== void 0 ? options.gutter : 0;
+ }
+ /**
+ * @return {number} Gutter.
+ */
+ getGutter() {
+ return this.gutter_;
+ }
+}
+const XYZ$1 = XYZ;
+const ATTRIBUTION = '© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors.';
+class OSM extends XYZ$1 {
+ /**
+ * @param {Options} [options] Open Street Map options.
+ */
+ constructor(options) {
+ options = options || {};
+ let attributions;
+ if (options.attributions !== void 0) {
+ attributions = options.attributions;
+ } else {
+ attributions = [ATTRIBUTION];
+ }
+ const crossOrigin = options.crossOrigin !== void 0 ? options.crossOrigin : "anonymous";
+ const url = options.url !== void 0 ? options.url : "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
+ super({
+ attributions,
+ attributionsCollapsible: false,
+ cacheSize: options.cacheSize,
+ crossOrigin,
+ interpolate: options.interpolate,
+ maxZoom: options.maxZoom !== void 0 ? options.maxZoom : 19,
+ opaque: options.opaque !== void 0 ? options.opaque : true,
+ reprojectionErrorThreshold: options.reprojectionErrorThreshold,
+ tileLoadFunction: options.tileLoadFunction,
+ transition: options.transition,
+ url,
+ wrapX: options.wrapX,
+ zDirection: options.zDirection
+ });
+ }
+}
+const OlSourceOsm = OSM;
let numTypes = 0;
const BooleanType = 1 << numTypes++;
const NumberType = 1 << numTypes++;
}
}
});
- function get_austria_feature() {
- let austria_wkt = "POLYGON ((9.599 47.269, 9.767 47.523, 9.986 47.442, 10.192 47.234, 10.366 47.287, 10.488 47.497, 10.814 47.477, 11.052 47.349, 11.732 47.539, 12.211 47.578, 12.269 47.656, 12.474 47.593, 12.676 47.622, 12.839 47.471, 13.039 47.436, 13.120 47.661, 12.989 47.754, 13.019 47.900, 12.864 48.130, 13.419 48.328, 13.516 48.523, 13.769 48.509, 13.867 48.699, 14.173 48.535, 14.726 48.561, 14.851 48.728, 14.983 48.751, 15.036 48.954, 15.803 48.820, 16.041 48.711, 16.374 48.694, 16.496 48.754, 16.831 48.668, 16.800 48.376, 17.050 48.001, 16.985 47.742, 16.583 47.795, 16.363 47.696, 16.605 47.538, 16.379 47.412, 16.402 47.043, 15.994 46.879, 15.914 46.732, 14.874 46.649, 14.538 46.455, 12.501 46.715, 12.213 46.957, 12.267 47.065, 12.181 47.126, 11.762 47.031, 11.220 47.018, 10.925 46.815, 10.520 46.900, 10.359 47.029, 10.134 46.899, 9.674 47.095, 9.599 47.269))";
+ const austriaWkt = "POLYGON ((9.599 47.269, 9.767 47.523, 9.986 47.442, 10.192 47.234, 10.366 47.287, 10.488 47.497, 10.814 47.477, 11.052 47.349, 11.732 47.539, 12.211 47.578, 12.269 47.656, 12.474 47.593, 12.676 47.622, 12.839 47.471, 13.039 47.436, 13.120 47.661, 12.989 47.754, 13.019 47.900, 12.864 48.130, 13.419 48.328, 13.516 48.523, 13.769 48.509, 13.867 48.699, 14.173 48.535, 14.726 48.561, 14.851 48.728, 14.983 48.751, 15.036 48.954, 15.803 48.820, 16.041 48.711, 16.374 48.694, 16.496 48.754, 16.831 48.668, 16.800 48.376, 17.050 48.001, 16.985 47.742, 16.583 47.795, 16.363 47.696, 16.605 47.538, 16.379 47.412, 16.402 47.043, 15.994 46.879, 15.914 46.732, 14.874 46.649, 14.538 46.455, 12.501 46.715, 12.213 46.957, 12.267 47.065, 12.181 47.126, 11.762 47.031, 11.220 47.018, 10.925 46.815, 10.520 46.900, 10.359 47.029, 10.134 46.899, 9.674 47.095, 9.599 47.269))";
+ const swissWkt = "MULTIPOLYGON (((6.041 46.190, 6.146 46.251, 6.168 46.295, 6.195 46.258, 6.041 46.190)), ((6.186 46.362, 6.130 46.442, 6.213 46.583, 6.465 46.731, 6.504 46.914, 7.007 47.242, 7.013 47.419, 7.364 47.390, 7.620 47.543, 8.470 47.553, 8.632 47.620, 8.487 47.700, 8.569 47.729, 8.867 47.612, 9.163 47.626, 9.555 47.450, 9.420 47.182, 9.449 47.026, 9.795 46.973, 10.117 46.808, 10.389 46.891, 10.376 46.593, 10.204 46.666, 10.027 46.618, 9.973 46.481, 10.057 46.312, 9.888 46.413, 9.567 46.345, 9.465 46.519, 9.214 46.507, 9.187 46.298, 8.941 46.027, 8.970 45.881, 8.867 46.107, 8.515 46.269, 8.440 46.489, 8.045 46.299, 8.062 46.176, 7.818 45.986, 7.530 46.023, 7.136 45.928, 6.843 46.173, 6.792 46.454, 6.412 46.474, 6.186 46.362)))";
+ function getCountryFeature(countryWkt) {
let format = new OlFormatWkt();
- let feature = format.readFeature(austria_wkt, {
+ let feature = format.readFeature(countryWkt, {
dataProjection: EPSG4326,
featureProjection: EPSG3857
});
return feature;
}
- let austriaFeature = get_austria_feature();
- let austriaGeometry = austriaFeature.getGeometry();
- function is_in_austria(feature) {
- let featureGeometry = feature.getGeometry();
- return austriaGeometry.intersectsCoordinate(featureGeometry.getFirstCoordinate());
- }
- let austria_only = features_all.every(is_in_austria);
- let capabilitiesUrl = austria_only ? "https://mapsneu.wien.gv.at/basemapneu/1.0.0/WMTSCapabilities.xml" : "https://mapsneu.wien.gv.at/vaoneu/1.0.0/WMTSCapabilities.xml";
- fetch(capabilitiesUrl).then(function(response) {
- return response.text();
- }).then(function(text) {
- let result = new OlFormatWmtsCapabilities().read(text);
- let options = optionsFromCapabilities(result, {
- layer: austria_only ? "bmapgrau" : "vaoausland",
- matrixSet: "google3857",
- style: "normal"
+ const austria = getCountryFeature(austriaWkt);
+ const swiss = getCountryFeature(swissWkt);
+ function insertWmtsLayer(capabilitiesUrl, layer, attributions) {
+ fetch(capabilitiesUrl).then(function(response) {
+ return response.text();
+ }).then(function(text) {
+ let result = new OlFormatWmtsCapabilities().read(text);
+ let options = optionsFromCapabilities(result, {
+ layer,
+ matrixSet: "google3857",
+ style: "normal"
+ });
+ options["attributions"] = attributions;
+ let layer_map = new OlLayerTile({
+ source: new OlSourceWmts(options)
+ });
+ map.getLayers().insertAt(0, layer_map);
});
- options["attributions"] = austria_only ? 'Grundkarte: <a href="https://www.basemap.at/">basemap.at</a>' : 'Grundkarte: <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>';
+ }
+ function insertSwissLayer() {
let layer_map = new OlLayerTile({
- source: new OlSourceWmts(options)
+ source: new OlSourceOsm({
+ attributions: "© OpenStreetMap contributors, Elevation: ASTER GDEM, EarthEnv-DEM90, CDEM contains information under OGL Canada",
+ url: "https://tile.osm.ch/switzerland/{z}/{x}/{y}.png"
+ })
});
map.getLayers().insertAt(0, layer_map);
- });
+ }
+ function allFeaturesInCountry(features, country) {
+ let countryGeometry = country.getGeometry();
+ function isInCountry(feature) {
+ let featureGeometry = feature.getGeometry();
+ return countryGeometry.intersectsCoordinate(featureGeometry.getFirstCoordinate());
+ }
+ return features.every(isInCountry);
+ }
+ if (allFeaturesInCountry(features_all, austria)) {
+ insertWmtsLayer("https://mapsneu.wien.gv.at/basemapneu/1.0.0/WMTSCapabilities.xml", "bmapgrau", 'Grundkarte: <a href="https://www.basemap.at/">basemap.at</a>');
+ } else if (allFeaturesInCountry(features_all, swiss)) {
+ insertSwissLayer();
+ } else {
+ insertWmtsLayer("https://mapsneu.wien.gv.at/vaoneu/1.0.0/WMTSCapabilities.xml", "vaoausland", 'Grundkarte: <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>');
+ }
}
function init_wrmaps() {
let jq_maps = $(".wrmap");
jq_maps.each(init_wrmap);
}
$(init_wrmaps);
-/*@nomin*/
//# sourceMappingURL=wrmap.mjs.map