@boundlessgeo/cloud-core
Advanced tools
Comparing version 0.4.0 to 0.4.1
36
bcis.js
@@ -21,3 +21,2 @@ 'use strict'; | ||
* | ||
* @param {array} bbox - the bbox to search | ||
* @param {object} filters - filters to add to query string | ||
@@ -27,3 +26,3 @@ * | ||
*/ | ||
function encodeFiltersToQuery(bbox, filters) { | ||
function encodeFiltersToQuery(filters) { | ||
//default to limit of 10 | ||
@@ -33,6 +32,7 @@ if (!filters[STAC_FILTERS.LIMIT]) { | ||
} | ||
filters[STAC_FILTERS.BBOX] = bbox.join(','); | ||
var keys = Object.keys(filters); | ||
var pairs = keys.map(function (key) { | ||
var pairs = keys.filter(function (key) { | ||
return filters[key]; | ||
}).map(function (key) { | ||
var value = encodeURIComponent(filters[key]); | ||
@@ -58,3 +58,3 @@ var operation = '='; | ||
transparent: 'true', | ||
styles: 'transfer(contrast:1.5;brightness:1.05)' | ||
styles: 'transfer(contrast:2;brightness:1.05)' | ||
}; | ||
@@ -92,3 +92,3 @@ var query_string = (0, _util.encodeQueryObject)(params); | ||
category__gn_description: '' + feature.properties.provider, | ||
thumbnail: wms_url + '&width=25&height=25', | ||
thumbnail: feature.assets && feature.assets.thumbnail ? feature.assets.thumbnail.href : null, | ||
layerDef: {}, | ||
@@ -104,3 +104,2 @@ schema: {}, | ||
* @param {string} bcis_url - bcis url | ||
* @param {array} bbox - the bbox to search | ||
* @param {object} filters - filters to add to query string | ||
@@ -112,13 +111,12 @@ * @param {object} authOpts - Access control options, honors accessToken, headers | ||
function searchSTAC(stac_url, bcis_url) { | ||
var bbox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; | ||
var filters = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | ||
var authOpts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; | ||
var filters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
var authOpts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | ||
if (!bbox) { | ||
if (!filters.bbox) { | ||
return new Promise(function (resolve, reject) { | ||
resolve([]); | ||
reject('BBOX is required'); | ||
}); | ||
} | ||
var fetchOptions = (0, _util.getFetchOptions)(authOpts.headers); | ||
var query_string = encodeFiltersToQuery(bbox, filters); | ||
var query_string = encodeFiltersToQuery(filters); | ||
var url = stac_url + '?' + query_string; | ||
@@ -128,8 +126,10 @@ return fetch(url, fetchOptions).then(function (response) { | ||
}).then(function (json) { | ||
return json.features.map(function (f) { | ||
return createBCISLayer(bcis_url, f); | ||
}); | ||
}).catch(function (error) { | ||
return []; | ||
return { | ||
type: json.type, | ||
features: json.features.map(function (f) { | ||
return createBCISLayer(bcis_url, f); | ||
}), | ||
nextPageToken: json.nextPageToken | ||
}; | ||
}); | ||
} |
{ | ||
"name": "@boundlessgeo/cloud-core", | ||
"author": "Boundless Spatial Inc.", | ||
"version": "0.4.0", | ||
"version": "0.4.1", | ||
"description": "A library for facilitating communication with the Boundless mBSE.", | ||
@@ -6,0 +6,0 @@ "repository": { |
@@ -57,3 +57,7 @@ 'use strict'; | ||
return fetch(geoserverUrl + '/rest/catalog/getCatalogInfoByName/' + queryPath + '?' + query_string, fetchOptions).then(function (response) { | ||
return response.json(); | ||
if (response.ok) { | ||
return response.json(); | ||
} else { | ||
throw Error('Error doing search: ' + response.statusText); | ||
} | ||
}).then(function (layers) { | ||
@@ -60,0 +64,0 @@ var result = {}; |
@@ -12,10 +12,21 @@ 'use strict'; | ||
exports.formatWpsRequest = formatWpsRequest; | ||
var TYPES = exports.TYPES = { | ||
RASTER: 'raster', | ||
VECTOR: 'vector', | ||
GEOMETRY: 'geom' | ||
}; | ||
function formatInput(inputDef) { | ||
var layer = void 0; | ||
if (inputDef.type === 'text' && (inputDef.value !== undefined || inputDef.default !== undefined)) { | ||
return '\n <wps:Input>\n <ows:Identifier>' + inputDef.id + '</ows:Identifier>\n <wps:Data>\n <wps:LiteralData>' + (inputDef.value !== undefined ? inputDef.value : inputDef.default) + '</wps:LiteralData>\n </wps:Data>\n </wps:Input>\n '; | ||
} else if (inputDef.type === 'raster') { | ||
} else if (inputDef.type === TYPES.RASTER) { | ||
// assumes there is a layer definition in the value. | ||
var layer = inputDef.value; | ||
layer = inputDef.value; | ||
return '\n <wps:Input>\n <ows:Identifier>' + inputDef.id + '</ows:Identifier>\n <wps:Reference mimeType="image/tiff" xlink:href="http://geoserver/wcs" method="POST">\n <wps:Body>\n <wcs:GetCoverage service="WCS" version="1.1.1">\n <ows:Identifier>' + layer.workspace + ':' + layer.name + '</ows:Identifier>\n <wcs:DomainSubset>\n <ows:BoundingBox crs="http://www.opengis.net/gml/srs/epsg.xml#4326">\n <ows:LowerCorner>' + layer.bbox_x0 + ' ' + layer.bbox_y0 + '</ows:LowerCorner>\n <ows:UpperCorner>' + layer.bbox_x1 + ' ' + layer.bbox_y1 + '</ows:UpperCorner>\n </ows:BoundingBox>\n </wcs:DomainSubset>\n <wcs:Output format="image/tiff"/>\n </wcs:GetCoverage>\n </wps:Body>\n </wps:Reference>\n </wps:Input>\n '; | ||
} else if (inputDef.type === 'vector') { | ||
} else if (inputDef.type === TYPES.VECTOR) { | ||
// assumes there is a layer definition in the value. | ||
layer = inputDef.value; | ||
return '\n <wps:Input>\n <ows:Identifier>' + inputDef.id + '</ows:Identifier>\n <wps:Reference mimeType="text/xml" xlink:href="http://geoserver/wfs" method="POST">\n <wps:Body>\n <wfs:GetFeature service="WFS" version="1.1.0" outputFormat="GML2">\n <wfs:Query srsName="EPSG:4326" typeName="' + layer.workspace + ':' + layer.name + '">\n <ogc:Filter>\n <ogc:BBOX>\n <ogc:PropertyName>' + layer.layerSchema.geomName + '</ogc:PropertyName>\n <gml:Envelope srsName="EPSG:4326">\n <gml:lowerCorner>' + layer.bbox_x0 + ' ' + layer.bbox_y0 + '</gml:lowerCorner>\n <gml:upperCorner>' + layer.bbox_x1 + ' ' + layer.bbox_y1 + '</gml:upperCorner>\n </gml:Envelope>\n </ogc:BBOX>\n </ogc:Filter>\n </wfs:Query>\n </wfs:GetFeature>\n </wps:Body>\n </wps:Reference>\n </wps:Input>\n '; | ||
} else if (inputDef.type === TYPES.GEOMETRY) { | ||
var value = JSON.stringify(inputDef.value.geometry); | ||
@@ -22,0 +33,0 @@ return '\n <wps:Input>\n <ows:Identifier>' + inputDef.id + '</ows:Identifier>\n <wps:Data>\n <wps:ComplexData mimeType="application/json"><![CDATA[' + value + ']]></wps:ComplexData>\n </wps:Data>\n </wps:Input>\n '; |
15
wps.js
@@ -92,5 +92,7 @@ 'use strict'; | ||
if (mime_type.indexOf('image') >= 0) { | ||
return 'raster'; | ||
return _wpsUtil.TYPES.RASTER; | ||
} else if (mime_type.indexOf('wfs-collection') >= 0) { | ||
return _wpsUtil.TYPES.VECTOR; | ||
} else if (mime_type.indexOf('gml') >= 0) { | ||
return 'vector'; | ||
return _wpsUtil.TYPES.GEOMETRY; | ||
} else { | ||
@@ -169,4 +171,9 @@ return undefined; | ||
} else if (output_xml.getElementsByTagName('LiteralOutput').length > 0) { | ||
var data_type_node = output_xml.getElementsByTagName('ows:DataType')[0]; | ||
output.type = getNodeValue(data_type_node); | ||
var _data_type = output_xml.getElementsByTagName('ows:DataType'); | ||
// Include when data type not character string | ||
if (_data_type.length > 0) { | ||
output.type = getNodeValue(_data_type[0]); | ||
} else { | ||
output.type = 'string'; | ||
} | ||
} | ||
@@ -173,0 +180,0 @@ if (output.type) { |
48617
1237