Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide unwanted element in the documentation, some doc fix #4617

Merged
merged 1 commit into from
Feb 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions api/src/Map.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ import {getFeaturesFromLayer} from './Querent.js';
import * as themes from './Themes.js';


/**
* @private
*/
class Map {

/**
Expand Down Expand Up @@ -299,6 +302,7 @@ class Map {
* @param {Array.<string>} keys Keys.
* @param {Array.<*>} values Values.
* @returns {Object<string, *>} Object.
* @private
*/
function zip(keys, values) {
const obj = {};
Expand All @@ -313,6 +317,7 @@ function zip(keys, values) {
* @param {Object.<string, *>} obj Object.
* @param {Array.<string>} keys keys.
* @returns {Object<string, *>} Object.
* @private
*/
function filterByKeys(obj, keys) {
const filtered = {};
Expand Down
6 changes: 4 additions & 2 deletions api/src/Querent.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ import olFormatWFS from 'ol/format/WFS.js';
*
* @param {!string} layer Name of the layer to query
* @param {Array.<string>} ids List of ids
* @return {!Promise} Promise.
* @return {!Promise<Array<import('ol/Feature.js').default>>} Promise.
* @hidden
*/
export function getFeaturesFromLayer(layer, ids) {
return new Promise((resolve, reject) => {
getOverlayDefs().then((overlayDefs) => {

/** Array<import('ol/Feature.js').default> */
let features = [];
const overlayDef = overlayDefs.get(layer);

Expand All @@ -33,7 +35,7 @@ export function getFeaturesFromLayer(layer, ids) {
!overlayDef.ogcServer ||
!overlayDef.ogcServer.wfsSupport ||
!overlayDef.ogcServer.urlWfs ||
overlayDef.config.type !== 'WMS'
overlayDef.layer.type !== 'WMS'
) {
reject(`Layer "${layer}" does not support WFS.`);
return;
Expand Down
101 changes: 71 additions & 30 deletions api/src/Themes.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,44 @@ import TileWMS from 'ol/source/TileWMS.js';
import WMTS, {optionsFromCapabilities} from 'ol/source/WMTS.js';
import TileLayer from 'ol/layer/Tile.js';

import * as constants from './constants.js';
import {themesUrl} from './constants.js';

/**
* @type {Promise}
* @type {Promise<import('gmf/themes.js').GmfThemesResponse>}
* @hidden
*/
const themesPromise = fetch(constants.themesUrl).then(response => response.json());
const themesPromise = fetch(themesUrl).then(response => response.json());

/**
* @type {Promise|undefined}
* @type {Promise<Map<string, overlayDefinition>>|undefined}
* @hidden
*/
let overlayDefPromise;

/**
* @hidden
* @returns {Promise<Array<TileLayer>>} Promise
*/
export function getBackgroundLayers() {
return themesPromise.then((themes) => {
const promises = [];
for (const config of themes.background_layers) {
if (config.type === 'WMTS') {
const layerWMTS = /** @type {import('gmf/themes.js').GmfLayerWMTS} */(config);
promises.push(
createWMTSLayer(config).then((layer) => {
layer.set('config.layer', config.layer);
layer.set('config.name', config.name);
createWMTSLayer(layerWMTS).then((layer) => {
layer.set('config.layer', layerWMTS.layer);
layer.set('config.name', layerWMTS.name);
return layer;
})
);
} else if (config.type === 'WMS') {
const layerWMS = /** @type {import('gmf/themes.js').GmfLayerWMS} */(config);
const ogcServer = themes.ogcServers[config.ogcServer];
promises.push(
createWMSLayer(config, ogcServer).then((layer) => {
layer.set('config.layer', config.layers);
layer.set('config.name', config.name);
createWMSLayer(layerWMS, ogcServer).then((layer) => {
layer.set('config.layer', layerWMS.layers);
layer.set('config.name', layerWMS.name);
return layer;
})
);
Expand All @@ -42,8 +50,22 @@ export function getBackgroundLayers() {
});
}

/**
* @typedef {Object} overlayDefinition
* @property {import('gmf/themes.js').GmfLayer} layer
* @property {import('gmf/themes.js').GmfOgcServer} ogcServer
*/

/**
* @type {Map<string, overlayDefinition>}
* @hidden
*/
const overlayDefs = new Map();

/**
* @hidden
* @returns {Promise<Map<string, overlayDefinition>>} Promise
*/
export function getOverlayDefs() {
if (!overlayDefPromise) {
overlayDefPromise = new Promise((resolve, reject) => {
Expand All @@ -58,19 +80,28 @@ export function getOverlayDefs() {
return overlayDefPromise;
}


/**
* @param {Object} config Config
* @param {import('gmf/themes.js').GmfOgcServers} ogcServers OGC servers
* @param {import('gmf/themes.js').GmfOgcServer} [opt_ogcServer] OGC server
* @returns {void}
* @hidden
*/
export function writeOverlayDefs(config, ogcServers, opt_ogcServer) {
const ogcServer = opt_ogcServer ?
opt_ogcServer :
config.ogcServer ? ogcServers[config.ogcServer] : undefined;
if (config.children) {
for (const childConfig of config.children) {
const group = /** @type {import('gmf/themes.js').GmfGroup} */(config);
const ogcServer = opt_ogcServer ? opt_ogcServer :
group.ogcServer ? ogcServers[group.ogcServer] : undefined;
if (group.children) {
for (const childConfig of group.children) {
writeOverlayDefs(childConfig, ogcServers, ogcServer);
}
} else {
const layer = /** @type {import('gmf/themes.js').GmfLayer} */(config);
overlayDefs.set(
config.name,
layer.name,
{
config,
layer,
ogcServer
}
);
Expand All @@ -82,6 +113,7 @@ export function writeOverlayDefs(config, ogcServers, opt_ogcServer) {
*
* @param {!Array<string>} layerNames List of layer names
* @return {!Promise} Promise.
* @hidden
*/
export function getOverlayLayers(layerNames) {
return getOverlayDefs().then((overlayDefs) => {
Expand All @@ -97,24 +129,23 @@ export function getOverlayLayers(layerNames) {

const ogcServer = overlayDef.ogcServer;

if (overlayDef.config.type === 'WMTS') {
promises.push(
createWMTSLayer(overlayDef.config)
);
} else if (overlayDef.config.type === 'WMS' && ogcServer) {
promises.push(
createWMSLayer(overlayDef.config, ogcServer)
);
if (overlayDef.layer.type === 'WMTS') {
const wmtsLayer = /** @type {import('gmf/themes.js').GmfLayerWMTS} */(overlayDef.layer);
promises.push(createWMTSLayer(wmtsLayer));
} else if (overlayDef.layer.type === 'WMS' && ogcServer) {
const wmsLayer = /** @type {import('gmf/themes.js').GmfLayerWMS} */(overlayDef.layer);
promises.push(createWMSLayer(wmsLayer, ogcServer));
}
}
return Promise.all(promises);
});
}

/**
* @param {Object} config Layer config (i.e. gmf layer node)
* @param {Object} ogcServer OGC server configuration used to create the layer.
* @return {Promise} Promise.
* @param {import('gmf/themes.js').GmfLayerWMS} config Layer config (i.e. gmf layer node)
* @param {import('gmf/themes.js').GmfOgcServer} ogcServer OGC server configuration used to create the layer.
* @return {Promise<TileLayer>} Promise.
* @hidden
*/
export function createWMSLayer(config, ogcServer) {
const layer = new TileLayer({
Expand All @@ -132,8 +163,9 @@ export function createWMSLayer(config, ogcServer) {
}

/**
* @param {Object} config Layer config (i.e. gmf layer node)
* @return {Promise} Promise.
* @param {import('gmf/themes.js').GmfLayerWMTS} config Layer config (i.e. gmf layer node)
* @return {Promise<TileLayer>} Promise.
* @hidden
*/
export function createWMTSLayer(config) {
return getWMTSCapability(config.url).then((capability) => {
Expand All @@ -153,8 +185,17 @@ export function createWMTSLayer(config) {
});
}

/**
* @type {Map<string, Object>}
* @hidden
*/
const capabilities = new Map();

/**
* @private
* @param {string} url The URL
* @return {Object} Any
*/
function getWMTSCapability(url) {
if (!(url in capabilities)) {
const request = fetch(url)
Expand Down
6 changes: 6 additions & 0 deletions api/src/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,33 @@ import EPSG2056 from '@geoblocks/proj/src/EPSG_2056.js';

/**
* @type {string}
* @hidden
*/
export const themesUrl = 'https://geomapfish-demo-dc.camptocamp.com/2.4/themes?version=2&background=background';

/**
* @type {Array<string>}
* @hidden
*/
export const supportedProjections = [EPSG21781, EPSG2056];

/**
* @type {string}
* @hidden
*/
export const projection = EPSG21781;


/**
* @type {Array.<number>}
* @hidden
*/
export const resolutions = [250, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.25, 0.1, 0.05];


/**
* @type {Array.<number>}
* @hidden
*/
export const extent = [420000, 30000, 660000, 350000];

Expand All @@ -34,6 +39,7 @@ export const extent = [420000, 30000, 660000, 350000];
* The name of the layer to use as background. May be a single value
* (WMTS) or a comma-separated list of layer names (WMS).
* @type {string}
* @hidden
*/
//export const backgroundLayer = 'default'; // WMS
export const backgroundLayer = 'Test aus Olten'; // WMTS
1 change: 1 addition & 0 deletions contribs/gmf/apps/appmodule.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {decodeQueryString} from 'ngeo/utils.js';

/**
* @type {!angular.IModule}
* @hidden
*/
const module = angular.module('app', []);

Expand Down
7 changes: 7 additions & 0 deletions contribs/gmf/apps/desktop/Controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ if (!window.requestAnimationFrame) {
window.location = 'http://geomapfish.org/';
}


/**
* @private
*/
class Controller extends AbstractDesktopController {
/**
* @param {angular.IScope} $scope Scope.
Expand Down Expand Up @@ -104,6 +108,9 @@ class Controller extends AbstractDesktopController {
}
}

/**
* @hidden
*/
const module = angular.module('Appdesktop', [
appBase.name,
gmfControllersAbstractDesktopController.name,
Expand Down
8 changes: 7 additions & 1 deletion contribs/gmf/apps/desktop_alt/Controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ if (!window.requestAnimationFrame) {
window.location = 'http://geomapfish.org/';
}


/**
* @private
*/
class Controller extends AbstractDesktopController {
/**
* @param {angular.IScope} $scope Scope.
Expand Down Expand Up @@ -138,7 +142,9 @@ class Controller extends AbstractDesktopController {
}
}


/**
* @hidden
*/
const module = angular.module('Appdesktop_alt', [
appBase.name,
gmfControllersAbstractDesktopController.name,
Expand Down
7 changes: 7 additions & 0 deletions contribs/gmf/apps/iframe_api/Controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ if (!window.requestAnimationFrame) {
window.location = 'http://geomapfish.org/';
}


/**
* @private
*/
class Controller extends AbstractAPIController {
/**
* @param {angular.IScope} $scope Scope.
Expand Down Expand Up @@ -50,6 +54,9 @@ class Controller extends AbstractAPIController {
}
}

/**
* @hidden
*/
const module = angular.module('Appiframe_api', [
appBase.name,
gmfControllersAbstractAPIController.name,
Expand Down
7 changes: 7 additions & 0 deletions contribs/gmf/apps/mobile/Controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ if (!window.requestAnimationFrame) {
window.location = 'http://geomapfish.org/';
}


/**
* @private
*/
class Controller extends AbstractMobileController {
/**
* @param {angular.IScope} $scope Scope.
Expand Down Expand Up @@ -61,6 +65,9 @@ class Controller extends AbstractMobileController {
}
}

/**
* @hidden
*/
const module = angular.module('Appmobile', [
appBase.name,
gmfControllersAbstractMobileController.name,
Expand Down
7 changes: 7 additions & 0 deletions contribs/gmf/apps/mobile_alt/Controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ if (!window.requestAnimationFrame) {
window.location = 'http://geomapfish.org/';
}


/**
* @private
*/
class Controller extends AbstractMobileController {
/**
* @param {angular.IScope} $scope Scope.
Expand Down Expand Up @@ -96,6 +100,9 @@ class Controller extends AbstractMobileController {
}
}

/**
* @hidden
*/
const module = angular.module('Appmobile_alt', [
appBase.name,
gmfControllersAbstractMobileController.name,
Expand Down
Loading