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 | 3x 3x 3x 3x 8x 8x 8x 8x 8x 1x 8x 8x 8x 8x 8x 8x 3x | const _ = require('lodash') const { QueryFields } = require('../helpers/fields') const { getCollectionCrs, normalizeSpatialReference } = require('../helpers') const featureResponseTemplate = require('../../templates/features.json') /** * Modifies a template features json file with metadata, capabilities, and data from the model * @param {object} data - data from provider model * @param {object} params * @return {object} formatted features data */ function renderFeaturesResponse (data = {}, params = {}) { const template = _.cloneDeep(featureResponseTemplate) const { uniqueIdField: uniqueIdFieldDefault, objectIdFieldName: objectIdFieldNameDefault } = template const { metadata: { limitExceeded, transform, idField } = {} } = data const computedProperties = { geometryType: params.geometryType, spatialReference: getOutputSpatialReference(data, params), fields: QueryFields.create({ data, ...params }), features: data.features || [], exceededTransferLimit: !!limitExceeded, objectIdFieldName: idField || objectIdFieldNameDefault, uniqueIdField: { ...uniqueIdFieldDefault, name: idField || uniqueIdFieldDefault.name } } if (transform) { computedProperties.transform = transform } return { ...template, ...computedProperties } } function getOutputSpatialReference (collection, { outSR, outputCrs, inputCrs, sourceSR }) { const spatialReference = outputCrs || outSR || inputCrs || sourceSR || getCollectionCrs(collection) || 4326 const { wkid, wkt, latestWkid } = normalizeSpatialReference(spatialReference) Iif (wkid && latestWkid) { return { wkid, latestWkid } } Eif (wkid) { return { wkid } } if (latestWkid) { return { latestWkid } } return { wkt } } module.exports = { renderFeaturesResponse } |