/**
* Geoprocessing tools widget for the map.
* Identifies flooded roads and buildings. Also, enables depth maps.
* @module app/widget/ToolWidget
* @requires module:app/widget/MapWidget
* @author JS
* @copyright Nova Scotia Community College 2017
*/
define([
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/on",
"dojo/dom",
"dojo/topic",
"dijit/_WidgetBase",
"dijit/_OnDijitClickMixin",
"dijit/registry",
"dijit/form/CheckBox",
"dijit/form/Button",
"esri/domUtils",
"esri/tasks/query",
"esri/tasks/QueryTask",
"esri/geometry/geometryEngine",
"esri/symbols/SimpleMarkerSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/Color",
"esri/graphic",
"esri/tasks/Geoprocessor",
"esri/layers/ImageParameters",
"esri/layers/FeatureLayer",
"esri/renderers/SimpleRenderer",
"esri/config",
"esri/layers/ArcGISImageServiceLayer",
"esri/InfoTemplate",
"esri/tasks/IdentifyTask",
"esri/tasks/IdentifyParameters",
"dijit/form/Select"
],
function (
declare,
lang,
on,
dom,
topic,
_WidgetBase,
_OnDijitClickMixin,
registry,
CheckBox,
Button,
domUtils,
Query,
QueryTask,
geometryEngine,
SimpleMarkerSymbol,
SimpleLineSymbol,
SimpleFillSymbol,
Color,
Graphic,
Geoprocessor,
ImageParameters,
FeatureLayer,
SimpleRenderer,
esriConfig,
ArcGISImageServiceLayer,
InfoTemplate,
IdentifyTask,
IdentifyParameters,
Select
) {
return declare([_WidgetBase, _OnDijitClickMixin], {
baseClass: "Geoprocessing",
title: null,
options: {
map: null,
pane: null
},
/** @constructor
* @param {object} args Object of properties to mixin
* @param {object} srcRefNode Dom node for the widget to attach to
**/
constructor: function (param, srcRefNode) {
/** mix in settings and defaults
* @mixin args
*/
declare.safeMixin(this.options, param);
/** Dom widget node */
this.domNode = srcRefNode;
// store localized strings
this.title = this.options.title || "Tools";
this.set("map", this.options.map);
this.set("pane", this.options.pane);
},
/**
* Sets title and html content of the base class content pane.
* Occurs after the constructor has run and dom elements have been created.
*
**/
postCreate: function () {
if (this.pane) {
this.pane.set("title", this.title);
this.pane.set("content",
"<div id='waterDepth'><table style= 'font-weight: bold; font-family: sans-serif'><tr><td><input type='checkbox' id='queryDepth' type='checkbox'></td> <td><label for ='queryDepth'> Display Water Depth</label ></td><td id = 'target' ></td> </tr></table><p class='desc' id='depthDesc'></p><img id = 'depthlegend'></div><hr class='nice'><table><tr><td>Critical Facilities</td><td><button id='btnBuildings' type='button'></button></td></tr><tr><td>Roads</td><td><button id='btnRoads' type='button'></button></td></tr><tr><td>Critical Facilities and Roads</td><td><button id='btnBoth' type='button'></button></td></tr><tr><td colspan='2'><div style='text-align:center'><button id='clear' type='button'></button><div></td></tr></table><table><tr><td><img id = 'roadsimg'></td><td id ='roads'></td><td id ='roadsval'></td></tr><tr><td><img id = 'Ambulance Depotimg'></td><td id ='Ambulance Depot'></td><td id='Ambulance Depotval'</td></tr><tr><td><img id = 'Continuing Careimg'></td><td id ='Continuing Care'></td><td id='Continuing Careval'</td></tr><tr><td><img id = 'Fire Stationimg'></td><td id ='Fire Station'></td><td id='Fire Stationval'</td></tr><tr><td><img id = 'Hospitalimg'></td><td id ='Hospital'></td><td id='Hospitalval'</td></tr><tr><td><img id = 'Police Stationimg'></td><td id ='Police Station'></td><td id='Police Stationval'</td></tr></table>")
}
},
/**
* Starts the widget after it has been constructed.
* Checks to make sure the required map is loaded.
* @public
*
**/
startup: function () {
// map not defined
if (!this.map) {
this.destroy();
//console.log("CoordWidget::map required");
}
// when map is loaded
if (this.map.loaded) {
this._init();
} else {
on(this.map, "load", lang.hitch(this, function () {
this._init();
}));
}
},
/**
* Destroys widget
* @public
*
**/
destroy: function () {
this.inherited(arguments);
},
/**
* The main logic for the widget
* @private
*
**/
_init: function () {
esriConfig.defaults.io.timeout = 120000
buildingURL = "//agrgims.cogs.nscc.ca/arcgis/rest/services/mcfm/Maritime_EMO/MapServer/0"
depthURL = "//agrgims.cogs.nscc.ca/arcgis/rest/services/mcfm/DepthMapsMosaic/ImageServer"
StudyAreas = "//agrgims.cogs.nscc.ca/arcgis/rest/services/mcfm_pro/sa_flood/MapServer/"
GPURL = "//agrgims.cogs.nscc.ca/arcgis/rest/services/RoadsGeoprocessing/RoadsServerSide/GPServer/RoadsServerSide"
RoadsResultURL = "//agrgims.cogs.nscc.ca/arcgis/rest/services/RoadsGeoprocessing/RoadsServerSide/MapServer/jobs/"
localmap = this.map
topic.subscribe("floodUpdate/slider", function () {
buildingtypes = ['Ambulance Depot', 'Continuing Care', 'Fire Station', 'Hospital', 'Police Station']
//console.log(buildingtypes[i])
//document.getElementById(buildingtypes[i]).innerHTML = 'hew'
for (var i = 0; i < buildingtypes.length; i++) {
buildingtypes[i]
//console.log(buildingtypes[i])
document.getElementById(buildingtypes[i] + 'img').src = ''
document.getElementById(buildingtypes[i]).innerHTML = ''
document.getElementById(buildingtypes[i] + 'val').innerHTML = ''
}
document.getElementById("roads").innerHTML = ''
document.getElementById("roadsval").innerHTML = ''
document.getElementById("roadsimg").src = ''
localmap.graphics.clear()
if (typeof roadsFeatureLayer !== 'undefined') {
localmap.removeLayer(roadsFeatureLayer)
}
})
var layerAlpha = new Select({
className: "selLayer",
name: "selectdepth",
// style: {
// width: "70px"
// },
options: [{
selected: "selected",
label: "100%",
value: "1"
}, {
label: "90%",
value: ".9"
}, {
label: "80%",
value: ".8"
}, {
label: "70%",
value: ".7"
}, {
label: "60%",
value: ".6"
}, {
label: "50%",
value: ".5"
}, {
label: "40%",
value: ".4"
}, {
label: "30%",
value: ".3"
}, {
label: "20%",
value: ".2"
}, {
label: "10%",
value: ".1"
}, {
label: "0%",
value: "0"
}]
}, "target");
//try {
// layerAlpha.set("value", depthlayer.opacity);
//} catch (error) {
// console.error(error);
// console.error("unable to set transparency to " + depthlayer.opacity + " of " + depthlayer.id);
// layerAlpha.set("value", "1");
//}
// console.log(layerAlpha)
layerAlpha.on("change", lang.hitch(this, function (value) {
if (typeof depthlayer !== 'undefined') {
depthlayer.setOpacity(layerAlpha.value);
//console.log(document.getElementById("target"))
}
}));
depthlayer = new ArcGISImageServiceLayer(depthURL, {
//opacity: document.getElementsByName("depthopacity")[0].value
})
function showDepth() {
document.getElementById('depthlegend').src = 'app/resources/legends/DepthLegend.png'
document.getElementById('depthDesc').innerHTML = 'Click on map to query flood depth.'
var refresh = false
depthlayer.setDefinitionExpression(layerDefinitions, refresh)
depthlayer.setOpacity(layerAlpha.value)
var info = new InfoTemplate()
info.setTitle("Depth (m)")
info.setContent(getTextContent)
function getTextContent(Raster) {
var depth = Raster.attributes["Raster.ItemPixelValue"]["0"]
if (depth != "NoData") {
return (depth / 100).toFixed(1)
} else {
return ("No Data")
}
}
depthlayer.setInfoTemplate(info)
console.log(info)
//localmap.infoWindow.resize(100)
//depthlayer.setOpacity(0.0)
localmap.addLayer(depthlayer, 3)
localmap.infoWindow.resize(200, 50)
}
//function clicking(evt) {
// console.log(evt.mapPoint)
//}
localmap.on("click", function (evt) {
console.log(evt.mapPoint)
})
var queryDepth = new CheckBox({
name: "queryDepth",
checked: false,
onChange: function (c) {
if (c) {
registry.byId("checkBoxfloodlayer").set('checked', false);
console.log(c)
layerDefinitions = "level_cm =" + registry.byId('twlSlider').value;
showDepth()
test = topic.subscribe("floodUpdate/slider", function (val) {
if (c) {
localmap.infoWindow.hide()
layerDefinitions = "level_cm =" + val
showDepth()
}
})
} else {
document.getElementById('depthlegend').src = ''
document.getElementById('depthDesc').innerHTML = ''
if (test) {
test.remove()
}
//localmap.setMapCursor("default");
localmap.infoWindow.hide()
console.log("not B")
depthlayer.setInfoTemplate(null)
console.log(depthlayer)
if (depthlayer) {
localmap.removeLayer(depthlayer)
}
}
}
}, "queryDepth").startup();
var clearBtn = new Button({
label: "Clear Results",
onClick: lang.hitch(this, function () {
buildingtypes = ['Ambulance Depot', 'Continuing Care', 'Fire Station', 'Hospital', 'Police Station']
//console.log(buildingtypes[i])
//document.getElementById(buildingtypes[i]).innerHTML = 'hew'
for (var i = 0; i < buildingtypes.length; i++) {
buildingtypes[i]
console.log(buildingtypes[i])
document.getElementById(buildingtypes[i] + 'img').src = ''
document.getElementById(buildingtypes[i]).innerHTML = ''
document.getElementById(buildingtypes[i] + 'val').innerHTML = ''
}
document.getElementById("roads").innerHTML = ''
document.getElementById("roadsval").innerHTML = ''
document.getElementById("roadsimg").src = ''
this.map.graphics.clear()
if (typeof roadsFeatureLayer !== 'undefined') {
this.map.removeLayer(roadsFeatureLayer)
}
})
}, "clear").startup()
function floodGeometry() {
vURL = StudyAreas + registry.byId('fsbLCA')._lastValueReported
//console.log(vURL)
//graphicmap = this.map
queryflood = new QueryTask(vURL);
query = new Query();
query.returnGeometry = true;
query.outFields = ["level_cm"];
levelcm = "level_cm =" + registry.byId('twlSlider').value;
query.where = levelcm
}
var btnBuildings = new Button({
label: "Go",
onClick: lang.hitch(this, function () {
registry.byId('btnBoth').set('disabled', true)
registry.byId('btnRoads').set('disabled', true)
registry.byId("twlSlider").disabled = true
registry.byId("btnMinus").disabled = true
registry.byId("btnPlus").disabled = true
if (localmap.graphics) {
localmap.graphics.clear();
}
registry.byId('btnBuildings').set('disabled', true)
buildingtypes = ['Ambulance Depot', 'Continuing Care', 'Fire Station', 'Hospital', 'Police Station']
//console.log(buildingtypes[i])
//document.getElementById(buildingtypes[i]).innerHTML = 'hew'
for (var i = 0; i < buildingtypes.length; i++) {
buildingtypes[i]
//console.log(buildingtypes[i])
document.getElementById(buildingtypes[i] + 'img').src = ''
document.getElementById(buildingtypes[i]).innerHTML = ''
document.getElementById(buildingtypes[i] + 'val').innerHTML = ''
}
floodGeometry()
console.log(query)
queryflood.execute(query, function (featureSet) {
var resultFeatures = featureSet.features[0];
floodgeometry = resultFeatures.geometry;
//console.log(buildingtypes)
for (var i = 0; i < buildingtypes.length; i++) {
//console.log("start")
var querybuilding = new QueryTask(buildingURL);
var query = new Query();
query.outFields = ["build_type"]
query.returnGeometry = true;
where = "build_type = '" + buildingtypes[i] + "'"
buildingLocal = buildingtypes[i]
query.where = where
//console.log("whered")
//query.outFields = ["objectid"]
querybuilding.execute(query, function (results) {
//console.log("queried")
buildinggeometry = []
//console.log(results)
for (var g = 0, gl = results.features.length; g < gl; g++) {
var buildings = results.features[g];
buildinggeometry.push(buildings.geometry)
}
var intersect = geometryEngine.intersect(buildinggeometry, floodgeometry)
//console.log(intersect)
countnotnull = 0, j = intersect.length;
while (j--) {
if (intersect[j] != null)
countnotnull++;
}
//console.log(countnotnull)
console.log(results)
document.getElementById(results.features[0].attributes.build_type + 'img').src = 'app/resources/' + results.features[0].attributes.build_type.replace(/ /g, '') + '.png'
document.getElementById(results.features[0].attributes.build_type).innerHTML = results.features[0].attributes.build_type + ': '
document.getElementById(results.features[0].attributes.build_type + 'val').innerHTML = countnotnull
floodbuilding = []
//console.log(intersect)
for (var k = 0, kl = intersect.length; k < kl; k++) {
if (intersect[k] !== null) {
floodbuilding.push(intersect[k])
}
}
//console.log("pushed")
var simpleMarkerSymbol = new SimpleMarkerSymbol(
SimpleMarkerSymbol.STYLE_CIRCLE,
25,
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0, 0.9]),
3
),
new Color([0, 0, 0, 0])
)
//var graphic = new Graphic()
markers = [];
//build = buildingtypes[i]
//console.log(build)
for (var h = 0, hl = floodbuilding.length; h < hl; h++) {
markers[h] = new Graphic()
markers[h].setGeometry(floodbuilding[h])
markers[h].setSymbol(simpleMarkerSymbol)
localmap.graphics.add(markers[h])
//console.log(markers.length + buildingtypes[i])
}
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnBoth').set('disabled', false)
registry.byId('btnRoads').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
})
}
}, function (buildingError) {
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnBoth').set('disabled', false)
registry.byId('btnRoads').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
document.getElementById("Ambulance Depot").innerHTML = "No flood layer there. Increase level."
})
})
}, "btnBuildings").startup()
var btnRoads = new Button({
label: "Go",
onClick: lang.hitch(this, function () {
if (typeof roadsFeatureLayer !== 'undefined') {
localmap.removeLayer(roadsFeatureLayer)
}
registry.byId('btnRoads').set('disabled', true)
registry.byId('btnBuildings').set('disabled', true)
registry.byId('btnBoth').set('disabled', true)
registry.byId("twlSlider").disabled = true
registry.byId("btnMinus").disabled = true
registry.byId("btnPlus").disabled = true
document.getElementById("roads").innerHTML = ''
document.getElementById("roadsimg").src = ''
document.getElementById("roadsval").innerHTML = ''
//floodGeometry()
levelcm = "level_cm =" + registry.byId('twlSlider').value;
var params = {
"LCA": registry.byId('fsbLCA').get('item').said,
"FloodLevel": registry.byId('twlSlider').value
}
var gp = new Geoprocessor(GPURL)
//console.log(params)
gp.setOutSpatialReference({
"wkid": 3857
});
gp.submitJob(params, displayTrack, jobstatus, joberror);
function displayTrack(jobinfo) {
//console.log(jobinfo)
var roadsLayer = RoadsResultURL + jobinfo.jobId + "/0"
//console.log(roadsLayer)
roadsFeatureLayer = new FeatureLayer(roadsLayer)
//console.log(roadsFeatureLayer)
var simpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 100, 0]), 2)
var renderer = new SimpleRenderer(simpleLineSymbol)
roadsFeatureLayer.setRenderer(renderer)
//console.log(roadsFeatureLayer)
//graphicmap.removeLayer(roadsFeatureLayer)
localmap.addLayer(roadsFeatureLayer)
//console.log(roadsjson)
gp.getResultData(jobinfo.jobId, "RoadsLength", function (displayResult) {
//console.log(displayResult.value)
document.getElementById("roadsimg").src = 'app/resources/Roads.png'
document.getElementById("roads").innerHTML = "Flooded Roads: "
document.getElementById("roadsval").innerHTML = (displayResult.value / 1000).toFixed(2) + " km"
})
registry.byId('btnRoads').set('disabled', false)
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnBoth').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
//registry.byId('btnRoads').set('label', 'Roads')
}
function jobstatus(jobinfo) {
//console.log(jobinfo)
//console.log(jobinfo.jobStatus)
//domUtils.show(registry.byId('buildings'));
var jobstatus = '';
switch (jobinfo.jobStatus) {
case 'esriJobSubmitted':
//registry.byId('btnRoads').set('label', 'Submitted...')
document.getElementById("roads").innerHTML = 'Submitted...';
//console.log(jobinfo.jobStatus)
break;
case 'esriJobExecuting':
//registry.byId('btnRoads').set('label', 'Executing...')
document.getElementById("roads").innerHTML = 'Executing...';
//console.log(jobinfo.jobStatus)
break;
case 'esriJobSucceeded':
//domUtils.hide(registry.byId('buildings'));
//console.log(jobinfo.jobStatus)
break;
}
// registry.byId('status').innerHTML = jobstatus;
}
function joberror(jobinfo) {
registry.byId('btnRoads').set('disabled', false)
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnBoth').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
//registry.byId('btnRoads').set('label', 'Flooded Infrastructure')
document.getElementById("roads").innerHTML = "Failed. Try again"
}
//}
//else {
// registry.byId('btnRoads').set('disabled', false)
// registry.byId('btnBuildings').set('disabled', false)
// registry.byId('btnBoth').set('disabled', false)
// registry.byId("twlSlider").disabled = false
// registry.byId("btnMinus").disabled = false
// registry.byId("btnPlus").disabled = false
// //registry.byId('btnRoads').set('label', 'Flooded Infrastructure')
// document.getElementById("Ambulance Depot").innerHTML = "No flood layer there. Increase level."
//}
//})
}
)
}, "btnRoads").startup();
var btnBoth = new Button({
label: "Go",
onClick: lang.hitch(this, function () {
if (localmap.graphics) {
localmap.graphics.clear();
}
if (typeof roadsFeatureLayer !== 'undefined') {
localmap.removeLayer(roadsFeatureLayer)
}
//console.log("started")
registry.byId('btnBoth').set('disabled', true)
registry.byId('btnBuildings').set('disabled', true)
registry.byId('btnRoads').set('disabled', true)
registry.byId("twlSlider").disabled = true
registry.byId("btnMinus").disabled = true
registry.byId("btnPlus").disabled = true
//registry.byId('btnBoth').set('label', 'Calculating')
buildingtypes = ['Ambulance Depot', 'Continuing Care', 'Fire Station', 'Hospital', 'Police Station']
//console.log(buildingtypes[i])
//document.getElementById(buildingtypes[i]).innerHTML = 'hew'
for (var i = 0; i < buildingtypes.length; i++) {
buildingtypes[i]
//console.log(buildingtypes[i])
document.getElementById(buildingtypes[i] + 'img').src = ''
document.getElementById(buildingtypes[i]).innerHTML = ''
document.getElementById(buildingtypes[i] + 'val').innerHTML = ''
}
document.getElementById("roads").innerHTML = ''
document.getElementById("roadsval").innerHTML = ''
document.getElementById("roadsimg").src = ''
floodGeometry()
console.log(levelcm)
queryflood.execute(query, function (featureSet) {
if (featureSet.features.length > 0) {
var params = {
"LCA": registry.byId('fsbLCA').get('item').said,
"FloodLevel": registry.byId('twlSlider').value
}
var gp = new Geoprocessor(GPURL)
gp.setOutSpatialReference({
"wkid": 3857
});
gp.submitJob(params, displayTrack, jobstatus, joberror);
function displayTrack(jobinfo) {
var roadsLayer = RoadsResultURL + jobinfo.jobId + "/0"
roadsFeatureLayer = new FeatureLayer(roadsLayer)
var simpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 100, 0]), 2)
var renderer = new SimpleRenderer(simpleLineSymbol)
roadsFeatureLayer.setRenderer(renderer)
localmap.addLayer(roadsFeatureLayer)
gp.getResultData(jobinfo.jobId, "RoadsLength", function (displayResult) {
document.getElementById("roadsimg").src = 'app/resources/Roads.png'
document.getElementById("roads").innerHTML = "Flooded Roads: "
document.getElementById("roadsval").innerHTML = (displayResult.value / 1000).toFixed(2) + " km"
})
var resultFeatures = featureSet.features[0];
floodgeometry = resultFeatures.geometry;
//console.log(buildingtypes)
for (var i = 0; i < buildingtypes.length; i++) {
//console.log("start")
var querybuilding = new QueryTask(buildingURL);
var query = new Query();
query.outFields = ["build_type"]
query.returnGeometry = true;
where = "build_type = '" + buildingtypes[i] + "'"
buildingLocal = buildingtypes[i]
query.where = where
querybuilding.execute(query, function (results) {
buildinggeometry = []
for (var g = 0, gl = results.features.length; g < gl; g++) {
var buildings = results.features[g];
buildinggeometry.push(buildings.geometry)
}
var intersect = geometryEngine.intersect(buildinggeometry, floodgeometry)
countnotnull = 0, j = intersect.length;
while (j--) {
if (intersect[j] != null)
countnotnull++;
}
console.log(results)
document.getElementById(results.features[0].attributes.build_type + 'img').src = 'app/resources/' + results.features[0].attributes.build_type.replace(/ /g, '') + '.png'
document.getElementById(results.features[0].attributes.build_type).innerHTML = results.features[0].attributes.build_type + ': '
document.getElementById(results.features[0].attributes.build_type + 'val').innerHTML = countnotnull
floodbuilding = []
for (var k = 0, kl = intersect.length; k < kl; k++) {
if (intersect[k] !== null) {
floodbuilding.push(intersect[k])
}
}
var simpleMarkerSymbol = new SimpleMarkerSymbol(
SimpleMarkerSymbol.STYLE_CIRCLE,
25,
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0, 0.9]),
3
),
new Color([0, 0, 0, 0])
)
var markers = [];
for (var h = 0, hl = floodbuilding.length; h < hl; h++) {
markers[h] = new Graphic()
markers[h].setGeometry(floodbuilding[h])
markers[h].setSymbol(simpleMarkerSymbol)
localmap.graphics.add(markers[h])
}
})
}
registry.byId('btnBoth').set('disabled', false)
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnRoads').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
//registry.byId('btnBoth').set('label', 'Flooded Infrastructure')
}
function jobstatus(jobinfo) {
var jobstatus = '';
switch (jobinfo.jobStatus) {
case 'esriJobSubmitted':
//registry.byId('btnBoth').set('label', 'Submitted...')
document.getElementById("roads").innerHTML = 'Submitted...';
//console.log(jobinfo.jobStatus)
break;
case 'esriJobExecuting':
//registry.byId('btnBoth').set('label', 'Executing...')
document.getElementById("roads").innerHTML = 'Executing...';
//console.log(jobinfo.jobStatus)
break;
case 'esriJobSucceeded':
//domUtils.hide(registry.byId('buildings'));
//console.log(jobinfo.jobStatus)
break;
}
// registry.byId('status').innerHTML = jobstatus;
}
function joberror(jobinfo) {
registry.byId('btnBoth').set('disabled', false)
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnRoads').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
//registry.byId('btnBoth').set('label', 'Flooded Infrastructure')
document.getElementById("roads").innerHTML = "Failed. Try again"
}
} else {
registry.byId('btnBoth').set('disabled', false)
registry.byId('btnBuildings').set('disabled', false)
registry.byId('btnRoads').set('disabled', false)
registry.byId("twlSlider").disabled = false
registry.byId("btnMinus").disabled = false
registry.byId("btnPlus").disabled = false
//registry.byId('btnBoth').set('label', 'Flooded Inf rastructure')
document.getElementById("Ambulance Depot").innerHTML = "No flood layer there. Increase level."
}
})
topic.subscribe("floodUpdate/slider", function () {
buildingtypes = ['Ambulance Depot', 'Continuing Care', 'Fire Station', 'Hospital', 'Police Station']
for (var i = 0; i < buildingtypes.length; i++) {
buildingtypes[i]
//console.log(buildingtypes[i])
document.getElementById(buildingtypes[i] + 'img').src = ''
document.getElementById(buildingtypes[i]).innerHTML = ''
document.getElementById(buildingtypes[i] + 'val').innerHTML = ''
}
document.getElementById("roads").innerHTML = ''
document.getElementById("roadsval").innerHTML = ''
document.getElementById("roadsimg").src = ''
localmap.graphics.clear()
if (typeof roadsFeatureLayer !== 'undefined') {
localmap.removeLayer(roadsFeatureLayer)
}
})
}
)
}, "btnBoth").startup();
}
});
});