docker-osm/flask_app/static/js/style_response_agent.js

42 wiersze
2.0 KiB
JavaScript

class StyleResponseAgent extends ResponseAgent {
handleResponse(userMessage, response_data) {
console.log("In StyleResponseAgent.handleResponse...")
const layer_type = this.map.getLayer(response_data.layer_name).type;
switch (response_data.name) {
case "set_color":
if (layer_type === "fill") {
this.map.setPaintProperty(response_data.layer_name, 'fill-color', response_data.color);
} else if (layer_type === "line") {
this.map.setPaintProperty(response_data.layer_name, 'line-color', response_data.color);
}
break;
case "set_width":
if (layer_type === "line") {
this.map.setPaintProperty(response_data.layer_name, 'line-width', response_data.width);
}
break;
case "set_opacity":
if (layer_type === "line") {
this.map.setPaintProperty(response_data.layer_name, 'line-opacity', response_data.opacity);
} else if (layer_type === "fill") {
this.map.setPaintProperty(response_data.layer_name, 'fill-opacity', response_data.opacity);
}
break;
case "set_visibility":
if (response_data.visibility === "visible") {
this.map.setLayoutProperty(response_data.layer_name, 'visibility', 'visible');
} else if (response_data.visibility === "none") {
this.map.setLayoutProperty(response_data.layer_name, 'visibility', 'none');
}
break;
case "select_layer_name":
const dropdown = document.getElementById('layerDropdown');
dropdown.value = response_data.layer_name;
break;
default:
break;
}
return this.getResponseString(userMessage, response_data);
}
}