Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | 1x 1x 1x 1x 1x | const _ = require('lodash') const { calculateExtent, getGeometryTypeFromGeojson, getSpatialReference, normalizeExtent, normalizeInputData } = require('./helpers') const { LayerFields } = require('./helpers/fields') const { layerMetadata: layerMetadataDefaults, renderers: rendererDefaults } = require('./defaults') module.exports = function relationshipsMetadata (providerResponse, queryParams = {}) { const { layers: layersInput, tables: tablesInput } = normalizeInputData(providerResponse) const layers = layersInput.map((layer, i) => { return formatResponse(layer, { queryParams, layerId: i, isLayer: true }) }) const tables = tablesInput.map((table, i) => { return formatResponse(table, { queryParams, layerId: layers.length + i }) }) return { layers, tables } } function formatResponse (geojson = {}, options = {}) { const { layerId, isLayer, queryParams } = options const { metadata = {}, capabilities: { quantization, extract } = {} } = geojson const { id, name, description, idField, displayField, timeInfo, maxRecordCount, renderer, defaultVisibility, minScale, maxScale, hasStaticData } = metadata const geometryType = isLayer ? getGeometryTypeFromGeojson(geojson) : undefined const spatialReference = getSpatialReference(geojson, queryParams) const extent = metadata.extent ? normalizeExtent(metadata.extent, spatialReference) : calculateExtent({ isLayer, geojson, spatialReference }) const json = { id: id || layerId, fields: LayerFields.create({ ...geojson, ...queryParams }) || [], type: isLayer ? 'Feature Layer' : 'Table', geometryType, drawingInfo: { renderer: renderer || rendererDefaults[geometryType], labelingInfo: null }, spatialReference, extent, defaultVisibility, minScale, maxScale, quantization, extract, hasStaticData, name, description, objectIdField: idField, displayField: displayField || idField, uniqueIdField: idField, timeInfo, maxRecordCount, supportsCoordinatesQuantization: !!quantization } return _.defaults(json, { capabilities: extract ? `${layerMetadataDefaults.capabilities},Extract` : layerMetadataDefaults.capabilities }, layerMetadataDefaults) } |