/** * Find all records that have value of the property config.property equal to config.value * * @param {Object} config * @param {String} config.property Name of the property/dimension * @param {String} config.value Target value * @param {String} config.key ID/key property * @param {Function} callback callback * @param {Object[]} callback.records records matching the criteria * @param {Function} errback error callback * @param {String} errback.error error message * @return {void} * * 2017-05-12 Piotr Szrajber <piotr.szrajber@hexagongeospatial.com> */functiongetAllAlarmsInCurrentStage(config,callback,errback){// find the default stagegsp.bi.stage.findStage(null,function(stage){// find the choropleth (it has geojson data)gsp.bi.stage.findWidgets({descriptors:[{chartM:{chart:"choropleth"}}]},function(widgets){if(!widgets||!widgets[0]){errback("no choropleth widget found");}getAllAlarms({geochart:widgets[0].chart,stage:stage,value:config.value,property:config.property,key:config.key},callback,errback)});});}functiongetAllAlarms(config,callback,errback){varstage=config.stage,geochart=config.geochart,value=config.value,property=config.property,key=config.key;varva_dim=stage.facts().dimension(function(record){returnrecord[property];});va_dim.filterExact(value);varresults=va_dim.top(Infinity).map(function(row){returngeochart.painter().geoJson().features.find(function(feature){returnfeature.properties[key]===row[key];});});va_dim.filter(null);va_dim.remove();callback(results);}// gsp.ready("v1.0", function(gsp) { // uncomment for the console// examplegetAllAlarmsInCurrentStage({value:"ALARM",property:"VA_CAT",key:"ID1"},function(ret){console.log(ret);},function(err){console.error(err);});// }); // uncomment for the console
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.