Created
May 3, 2017 14:39
-
-
Save kflaw/3ba1aca7dcc8e976f90e099d474c80da to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define([ | |
'dojo/_base/declare', | |
'dijit/_WidgetBase', | |
'dijit/_TemplatedMixin', | |
'dijit/_WidgetsInTemplateMixin', | |
'dijit/form/Button', | |
'dojo/_base/lang', | |
'dojo/_base/array', | |
'dojo/dom', | |
'dojo/on', | |
'dojo/number', | |
'dojo/parser', | |
'dojo/ready', | |
'dojo/dom-style', | |
'dojo/text!./LayerFilter/templates/LayerFilter.html', | |
'dojo/topic', | |
'xstyle/css!./LayerFilter/css/LayerFilter.css', | |
'dojo/dom-construct', | |
'dojo/_base/Color', | |
'esri/geometry/Extent', | |
'esri/graphic', | |
'esri/IdentityManager', | |
'esri/symbols/SimpleFillSymbol', | |
'esri/symbols/SimpleLineSymbol', | |
'esri/Color', | |
'esri/layers/ArcGISDynamicMapServiceLayer', | |
'esri/layers/ImageParameters', | |
'esri/tasks/IdentifyTask', | |
'esri/tasks/IdentifyParameters', | |
'esri/InfoTemplate', | |
'esri/layers/GraphicsLayer', | |
'esri/tasks/QueryTask', | |
'dijit/form/MultiSelect', | |
'esri/symbols/TextSymbol', | |
'esri/geometry/Point', | |
'esri/symbols/Font', | |
'esri/renderers/SimpleRenderer', | |
'dijit/layout/BorderContainer', | |
'dijit/layout/ContentPane', | |
'esri/layers/FeatureLayer', | |
'esri/dijit/FeatureTable', | |
'dojo/dom-style', | |
'dijit/registry', | |
'dojo/domReady!', | |
], function (declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, Button, lang, array, dom, on, dojoNum, parser, ready, | |
domStyle, template, topic, css, domConstruct, dojoColor, Extent, Graphic, IdentityManager, SimpleFillSymbol, SimpleLineSymbol, Color, | |
ArcGISDynamicMapServiceLayer, ImageParameters, IdentifyTask, IdentifyParameters, InfoTemplate, GraphicsLayer, QueryTask, | |
MultiSelect, TextSymbol, Point, Font, SimpleRenderer, BorderContainer, ContentPane, FeatureLayer, FeatureTable, domStyle, | |
registry, domReady) { | |
var dynamicMapServiceLayer; | |
var map; | |
var mapsUrl = 'http://sv04gis:6080/arcgis/rest/services/ROW/MapIndex/MapServer/15'; | |
var prclsUrl = 'http://sv04gis:6080/arcgis/rest/services/ROW/MapIndex/MapServer/16'; | |
var flaUrl = 'http://sv04gis:6080/arcgis/rest/services/ROW/MapIndex/MapServer/14'; | |
var agrmntUrl = 'http://sv04gis:6080/arcgis/rest/services/ROW/Agreements/MapServer/0'; | |
var mapsLyr = new GraphicsLayer({ | |
id : 'mapsLayer' | |
}); | |
var labelsLyr = new GraphicsLayer({ | |
id : 'labelsLayer' | |
}); | |
var agrmntsLyr = new GraphicsLayer({ | |
id : 'agrmntsLayer' | |
}); | |
var selectedGraphicsLyr = new GraphicsLayer({ | |
id : 'selectedGraphics' | |
}); | |
labelsLyr.setMinScale(9027.977411); | |
var filterLayerDefs = []; | |
var imageParameters = new ImageParameters(); | |
imageParameters.format = "png32"; | |
imageParameters.layerDefinitions = filterLayerDefs; | |
var searchResults = []; | |
var appraisalSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([0, 170, 255]), 2), new Color([255, 255, 255, 0])); | |
var bridgeSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([170, 85, 255]), 2), new Color([255, 255, 255, 0])); | |
var hardCopySymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([255, 84, 255]), 2), new Color([255, 255, 255, 0])); | |
var recordSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([255, 85, 0]), 2), new Color([255, 255, 255, 0])); | |
var surveySymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([0, 255, 0]), 2), new Color([255, 255, 255, 0])); | |
var searchResultsSymbol = | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([115, 255, 255]), 2); | |
var coopAgrmntSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_FORWARD_DIAGONAL, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([163, 255, 115]), 2)); | |
var fwyAgrmntSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_BACKWARD_DIAGONAL, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([223, 115, 255]), 2)); | |
var maintAgrmntSymbol = | |
new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, | |
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, | |
new Color([223, 170, 0]), 2), new Color([255, 211, 127, 0.6])); | |
var myFeatureLayer; | |
var myFeatureTable; | |
var featuresList; | |
var searchTxt; | |
var feat_url; | |
var feat_fields; | |
var field_aliases; | |
var query_field; | |
var query_text; | |
var query_text_contains; | |
var selectQueryVal; | |
var id; | |
var extentLayerDef; | |
return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], { | |
name : 'LayerFilter', | |
map : true, | |
widgetsInTemplate : true, | |
templateString : template, | |
mapClickMode : null, | |
postCreate : function () { | |
this.inherited(arguments); | |
map = this.map; | |
// this.initTrace(); | |
}, | |
getMapLayerID : function () { | |
if (this.ROWpane.get('selected')) { | |
dynamicMapServiceLayer = map.getLayer('mapSets'); | |
id = 15; | |
} else if (this.agrmntPane.get('selected')) { | |
dynamicMapServiceLayer = map.getLayer('agreements'); | |
id = 0; | |
} | |
else if (this.prclsPane.get('selected')) { | |
id = 16; | |
} | |
}, | |
createFeatureLayer : function () { | |
if (this.ROWpane.get('selected')) { | |
feat_url = mapsUrl; | |
feat_fields = | |
['shtlabel', 'county', 'rte', 'postmile', 'maptype', 'hangingfilegroup', | |
'mapdate', 'mapdecade', 'geo_referenced_datum', 'image_web_path', | |
'error_report_path' | |
]; | |
query_field = ["shtlabel"]; | |
query_text = "shtlabel = "; | |
query_text_contains = "shtlabel LIKE '%" | |
} else if (this.agrmntPane.get('selected')) { | |
query_field = ["name"]; | |
query_text = "name = "; | |
query_text_contains = "name LIKE '%" | |
feat_url = agrmntUrl; | |
feat_fields = ['name', 'county', 'route', 'bpm', 'epm', 'agency', 'descrip', | |
'effdate', 'termdate', 'weblink']; | |
} else if (this.prclsPane.get('selected')) { | |
if (this.prclType.value == 'parcel') { | |
feat_url = prclsUrl; | |
feat_fields = ['parcel_num', 'county', 'route', 'pm', 'area_raw', 'mapsheet', | |
'notes', 'geom_quality', 'data_source', 'record_date', 'dispdate', 'category', | |
'deed_path_web' | |
]; | |
query_field = ["parcel_num"]; | |
query_text = "parcel_num = "; | |
query_text_contains = "parcel_num LIKE '%" | |
} else if (this.prclType.value == 'freeway lease area') { | |
feat_url = flaUrl; | |
feat_fields = ['name', 'city', 'county', 'route', 'postmile', 'areatext', | |
'referencemap', 'geomqualty', 'weblink' | |
]; | |
query_field = ["Name"]; | |
query_text = 'Name = '; | |
query_text_contains = "Name LIKE '%" | |
} | |
} | |
myFeatureLayer = new FeatureLayer(feat_url, { | |
mode : FeatureLayer.MODE_ONDEMAND, | |
outFields : feat_fields, | |
visible : true, | |
id : "fLayer", | |
name : 'flayer', | |
}); | |
}, | |
createFeatureTable : function () { | |
if (myFeatureTable) { | |
myFeatureTable.destroy(); | |
registry.byId("sidebarBottom").domNode.innerHTML = '<div id="resultsGrid"></div>'; | |
} | |
if (this.ROWpane.get('selected')) { | |
field_aliases = [{ | |
name : 'shtlabel', | |
alias : 'Map Name' | |
}, { | |
name : 'County', | |
alias : 'County' | |
}, { | |
name : 'rte', | |
alias : 'Route' | |
}, { | |
name : 'postmile', | |
alias : 'Postmile' | |
}, { | |
name : 'maptype', | |
alias : 'Map Type' | |
}, { | |
name : 'hangingfilegroup', | |
alias : 'Hanging File' | |
}, { | |
name : 'mapdate', | |
alias : 'Revision Date' | |
}, { | |
name : 'mapdecade', | |
alias : 'Original Draft Year' | |
}, { | |
name : 'geo_referenced_datum', | |
alias : 'Coordinate System' | |
}, { | |
name : 'image_web_path', | |
alias : 'PDF Link' | |
}, { | |
name : 'error_report_path', | |
alias : 'Report Error' | |
} | |
]; | |
} else if (this.agrmntPane.get('selected')) { | |
field_aliases = [{ | |
name : 'name', | |
alias : 'Name' | |
}, { | |
name : 'county', | |
alias : 'County' | |
}, { | |
name : 'route', | |
alias : 'Route' | |
}, { | |
name : 'bpm', | |
alias : 'Beginning Postmile' | |
}, { | |
name : 'epm', | |
alias : 'Ending Postmile' | |
}, { | |
name : 'agency', | |
alias : 'Agency' | |
}, { | |
name : 'descrip', | |
alias : 'Description' | |
}, { | |
name : 'ea', | |
alias : 'EA' | |
}, { | |
name : 'effdate', | |
alias : 'Effective Date' | |
}, { | |
name : 'termdate', | |
alias : 'Termination Date' | |
}, { | |
name : 'weblink', | |
alias : 'PDF Link' | |
} | |
]; | |
} else if (this.prclsPane.get('selected')) { | |
if (this.prclType.value == 'parcel') { | |
field_aliases = [{ | |
name : 'parcel_num', | |
alias : 'Parcel Number' | |
}, { | |
name : 'county', | |
alias : 'County' | |
}, { | |
name : 'route', | |
alias : 'Route' | |
}, { | |
name : 'pm', | |
alias : 'Postmile' | |
}, { | |
name : 'area_raw', | |
alias : 'Area' | |
}, { | |
name : 'mapsheet', | |
alias : 'Map Sheet' | |
}, { | |
name : 'descrip', | |
alias : 'Parcel Type' | |
}, { | |
name : 'geom_quality', | |
alias : 'Geometry Source' | |
}, { | |
name : 'data_source', | |
alias : 'Source' | |
}, { | |
name : 'record_date', | |
alias : 'Record Date' | |
}, { | |
name : 'dispdate', | |
alias : 'Disposal Date' | |
},{ | |
name : 'category', | |
alias : 'Parcel Type' | |
},{ | |
name : 'deed_path_web', | |
alias : 'PDF Link' | |
} | |
]; | |
} else if (this.prclType.value == 'freeway lease area') { | |
field_aliases = [{ | |
name : 'name', | |
alias : 'FLA ID' | |
}, { | |
name : 'city', | |
alias : 'City' | |
}, { | |
name : 'county', | |
alias : 'County' | |
}, { | |
name : 'route', | |
alias : 'Route' | |
}, { | |
name : 'postmile', | |
alias : 'Postmile' | |
}, { | |
name : 'areatext', | |
alias : 'Area' | |
}, { | |
name : 'referencemap', | |
alias : 'Reference Map' | |
}, { | |
name : 'geomqualty', | |
alias : 'Geometry Source' | |
}, { | |
name : 'weblink', | |
alias : 'PDF Link' | |
} | |
]; | |
} | |
} | |
myFeatureTable = new FeatureTable({ | |
featureLayer : myFeatureLayer, | |
map : map, | |
showGridMenu : true, | |
gridOptions : { | |
allowSelectAll : true, | |
allowTextSelection : true, | |
columnHider: true | |
}, | |
editable : false, | |
dateOptions : { | |
//set date options at the feature table level | |
//all date fields will adhere this | |
datePattern : "MMMM d, y" | |
}, | |
//define order and visibility of fields. If the fields are not listed in 'outFIelds' | |
// then they will be hidden when the table starts. | |
outFields : feat_fields, | |
fieldInfos : field_aliases, | |
}, "resultsGrid"); | |
myFeatureTable.startup(); | |
this.resizeGrid(); | |
topic.publish('viewer/togglePane', { | |
pane : 'bottom', | |
show : 'block' | |
}); | |
myFeatureTable.on('load', function () { | |
myFeatureTable.grid.refresh(); | |
}); | |
myFeatureTable.on("row-select", lang.hitch(this, function (evt) { | |
//map.graphics.clear(); | |
if (this.ROWpane.get('selected')) { | |
selectQueryVal = evt[0].data.shtlabel; | |
} else if (this.prclsPane.get('selected')) { | |
if(this.prclType.value=='parcel'){ | |
selectQueryVal = evt[0].data.parcel_num; | |
}else if (this.prclType.value=='freeway lease area'){ | |
selectQueryVal=evt[0].data.name | |
} | |
} else if (this.agrmntPane.get('selected')) { | |
selectQueryVal = evt[0].data.name; | |
} | |
queryTaskSelect = new esri.tasks.QueryTask(feat_url); | |
querySelect = new esri.tasks.Query(); | |
querySelect.returnGeometry = true; | |
querySelect.outFields = ["*"]; | |
querySelect.where = query_text + "'" + selectQueryVal + "'"; | |
queryTaskSelect.execute(querySelect, lang.hitch(this, function (fset) { | |
for (var i = 0; i < fset.features.length; i++) { | |
// Get the current feature from the featureSet. | |
// Feature is a graphic | |
var selectGraphic = fset.features[i]; | |
selectGraphic.setSymbol(searchResultsSymbol); | |
//graphic.setInfoTemplate(infoWin); | |
selectedGraphicsLyr.add(selectGraphic); | |
map.addLayer(selectedGraphicsLyr); | |
} | |
map.setExtent(esri.graphicsExtent(fset.features)); | |
})) | |
})); | |
myFeatureTable.on("row-deselect", lang.hitch(this, function (evt) { | |
selectedGraphicsLyr.clear(); | |
map.removeLayer(selectedGraphicsLyr); | |
})); | |
}, | |
resizeGrid : function () { | |
domStyle.set("resultsGrid", "width", "100%"); | |
}, | |
destroyFeatureTable : function () { | |
if (myFeatureTable){ | |
myFeatureTable.destroy(); | |
} | |
topic.publish('viewer/togglePane', { | |
pane : 'bottom', | |
show : 'none' | |
}); | |
}, | |
onSearchByName : function () { | |
this.SearchByName(); | |
}, | |
SearchByName : function () { | |
this.getMapLayerID(); | |
if (this.ROWpane.get('selected')) { | |
searchTxt = this.searchTextDijit.value.charAt(0).toUpperCase() + this.searchTextDijit.value.substring(1,20).toLowerCase(); | |
} else if (this.prclsPane.get('selected')) { | |
searchTxt = this.searchPrclTextDijit.value.substring(0).toUpperCase(); | |
} else if (this.agrmntPane.get('selected')) { | |
searchTxt = this.searchAgrmntTextDijit.value.substring(0).toUpperCase(); | |
} | |
if (searchTxt != '' && searchTxt.length >2) { | |
this.createFeatureLayer(); | |
if (this.ROWpane.get('selected')) { | |
mapsLyr.clear(); | |
labelsLyr.clear(); | |
if (this.containsSearchTextMaps.checked == false) { | |
filterLayerDefs[id] = query_text_contains + searchTxt + "%'"; | |
} else { | |
filterLayerDefs[id] = query_text + "'" + searchTxt + "'"; | |
} | |
} else if (this.agrmntPane.get('selected')) { | |
agrmntsLyr.clear(); | |
if (this.containsSearchTextAgrmnt.checked == false) { | |
filterLayerDefs[id] = query_text_contains + searchTxt + "%'"; | |
} else { | |
filterLayerDefs[id] = query_text + "'" + searchTxt + "'"; | |
} | |
} else if (this.prclsPane.get('selected')) { | |
if (this.containsSearchTextPrcls.checked == false){ | |
filterLayerDefs[id] = query_text_contains + searchTxt + "%'"; | |
} else { | |
filterLayerDefs[id] = query_text + "'" + searchTxt + "'"; | |
} | |
} | |
console.log(filterLayerDefs[id]); | |
if (this.ROWpane.get('selected') || this.agrmntPane.get('selected')) { | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
} | |
myFeatureLayer.setDefinitionExpression(filterLayerDefs[id]); | |
queryTaskTxt = new esri.tasks.QueryTask(feat_url); | |
queryTxt = new esri.tasks.Query(); | |
queryTxt.returnGeometry = true; | |
queryTxt.outFields = myFeatureLayer.outFields; | |
queryTxt.where = filterLayerDefs[id]; | |
queryTaskTxt.execute(queryTxt, lang.hitch(this, function (fset) { | |
if (fset.features.length > 1000 ) { | |
if (myFeatureTable) { | |
this.destroyFeatureTable(); | |
} | |
topic.publish('growler/growl', { | |
title: 'Try Again', | |
message: 'Your query returned more than 1,000 records. Please refine your search', | |
level: 'default', | |
timeout: 2500, | |
opacity: 0.9 | |
}); | |
} | |
else if (fset.features.length == 0) { | |
if (myFeatureTable) { | |
this.destroyFeatureTable(); | |
} | |
topic.publish('growler/growl', { | |
title: 'Try Again', | |
message: 'Your search did not return any results.', | |
level: 'default', | |
timeout: 2500, | |
opacity: 0.9 | |
}); | |
} | |
else { | |
this.createFeatureTable(); | |
map.setExtent(esri.graphicsExtent(fset.features)); | |
} | |
})); | |
} else { | |
topic.publish('growler/growl', { | |
title: 'Try Again', | |
message: 'You must type at least 3 characters to search by name.', | |
level: 'default', | |
timeout: 2500, | |
opacity: 0.9 | |
}); | |
} | |
}, | |
AddLayers : function () { | |
var dec; | |
var val; | |
this.getMapLayerID(); | |
if (this.ROWpane.get('selected')) { | |
dec = this.mapDecade.value; | |
val = this.mapType.value; | |
} else if (this.agrmntPane.get('selected')) { | |
dec = this.decadeAgrmnt.value; | |
val = this.agrmntTyp.value; | |
} | |
var valQuery; | |
var decQuery; | |
var valString = ''; | |
var valStringCombo = ''; | |
var decString = ''; | |
var decStringCombo = ''; | |
var decStringComboPre = ''; | |
var replaceStr = ''; | |
var replacePos; | |
var re; | |
for (var i = 0; i < val.length; i++) { | |
if (val.length == 1) { | |
valString += "'" + val[i] + "'"; | |
} else { | |
valStringCombo += "'" + val[i] + "'," | |
valString = valStringCombo.slice(",", -1); | |
} | |
} | |
if (this.ROWpane.get('selected')) { | |
valQuery = "maptype IN (" + valString + ")"; | |
decField = 'mapdecade'; | |
} else if (this.agrmntPane.get('selected')) { | |
valQuery = "agrmnt_typ IN (" + valString + ")"; | |
decField = 'year'; | |
} | |
console.log(decField); | |
for (var i = 0; i < dec.length; i++) { | |
if(dec.length == 1 && dec =='Yes') | |
{decQuery = "curr_proj= 'Yes'" ; | |
} | |
else | |
{if (dec.length == 1 && dec != 'Pre-1950s') { | |
decString += "'" + dec[i].slice(0, 3) + "%'"; | |
} else if (dec.length == 1 && dec == 'Pre-1950s') { | |
decString = "'190%' OR " + decField + " LIKE '191%' OR " + decField + " LIKE '192%' OR " + decField + " LIKE '193%' OR " + decField + " LIKE '194%'" | |
} else if (dec.length > 1 && dec.indexOf("Pre-1950s") > -1) { | |
decStringCombo += "'" + dec[i].slice(0, 3) + "%'OR " + decField + " LIKE " | |
decString = decStringCombo.replace("OR " + decField + " LIKE 'Pre%'", "OR " + decField + " LIKE '190%' OR " + decField + " LIKE '191%' OR " + decField + " LIKE '192%' OR " + decField + " LIKE '193%' OR " + decField + " LIKE '194%'"); | |
} | |
else { | |
decString += "'" + dec[i].slice(0, 3) + "%'OR " + decField + " LIKE "; | |
} | |
decQuery = '(' + decField + ' LIKE ' + decString + ')'; | |
} | |
} | |
console.log(decQuery); | |
filterLayerDefs[id] = valQuery + " and " + decQuery ; //XH SQL grammar | |
re = new RegExp('OR ' + decField + ' LIKE ', 'g'); | |
var nth = 0; | |
var pos; | |
filterLayerDefs[id] = filterLayerDefs[id].replace(re, lang.hitch(this, function (match, i, original) { //XH ?? | |
nth++; | |
if (this.ROWpane.get('selected')) { | |
if (this.mapDecade.value.indexOf('Pre-1950s') !== -1) { | |
pos = this.mapDecade.value.length + 4; | |
} else { | |
pos = this.mapDecade.value.length; | |
} | |
} else if (this.agrmntPane.get('selected')) { | |
if (this.decadeAgrmnt.value.indexOf('Pre-1950s') !== -1) { | |
pos = this.decadeAgrmnt.value.length + 4; | |
} else { | |
pos = this.decadeAgrmnt.value.length; | |
} | |
} | |
return (nth == pos) ? ' ' : match; | |
})); | |
console.log(filterLayerDefs[id]); | |
extentLayerDef = filterLayerDefs[id]; | |
var infoWin = new InfoTemplate(); | |
infoWin.setTitle(" "); | |
if (this.ROWpane.get('selected')) { | |
infoWin.setContent( | |
'<b>Map Sets</b><hr style="border:none; border-top:1px;margin-top:6px;margin-bottom:6px;border-bottom:1px solid black">' + | |
'<b>Name:</b> ${shtlabel}<br>' + | |
'<b>County:</b> ${county}<br>' + | |
'<b>Route:</b> ${rte}<br>' + | |
'<b>Postmile:</b> ${postmile}<br>' + | |
'<b>Map Type:</b> ${maptype} <br>' + | |
'<b>Hanging File:</b> ${hangingfilegroup}<br>' + | |
'<b>Revision Date:</b> ${mapdate}<br>' + | |
'<b>Original Draft Year:</b> ${mapdecade}<br>' + | |
'<b>Coordinate System:</b> ${geo_referenced_datum}<br>' + | |
'<div align=center>${image_web_path}</div>' + | |
'<div align=center>${grantor_box_path}</div>' + | |
'<div align=center>${imagefunctions}</div>' + | |
'<div align=center>${survey_index_link}</div>' + | |
'<div align=center>${control_pdf_link}</div>' + | |
'<div align=center>${controlimagefunctions}</div>' + | |
'<div align=center>${error_report_path}</div>'); | |
} else if (this.agrmntPane.get('selected')) { | |
infoWin.setContent( | |
'<b>Agreements</b><hr style="border:none; border-top:1px;margin-top:6px;margin-bottom:6px;border-bottom:1px solid black">' + | |
'<b>Name:</b> ${name}<br>' + | |
'<b>County:</b> ${county}<br>' + | |
'<b>Route:</b> ${route}<br>' + | |
'<b>Postmile:</b> ${bpm}-{epm}<br>' + | |
'<b>Agency:</b> ${agency} <br>' + | |
'<b>Description:</b> ${descrip}<br>' + | |
'<b>Effective Date:</b> ${effdate}<br>' + | |
'<b>Termination Date:</b> ${term_date}<br>' + | |
'<div align=center>${weblink}</div>' + | |
'<div align=center><a href="http://www.dot.ca.gov/dist4/rightofway/documents/geerror.html?document={name}&county={county}&route={route}&postmile={bpm}-{epm}" target="_blank" style="color:red">Report Error/Make Suggestion</a></div><br>'); | |
} | |
this.createFeatureLayer(); | |
queryTask = new esri.tasks.QueryTask(feat_url); | |
queryGeom = new esri.tasks.Query(); | |
queryGeom.returnGeometry = true; | |
queryGeom.geometry = map.extent; | |
queryGeom.where = filterLayerDefs[id]; | |
queryGeom.outFields = ["*"]; | |
queryTask.execute(queryGeom, lang.hitch(this, function (fset) { | |
this.createFeatureLayer(); | |
// myFeatureLayer.clear(); | |
if (this.ROWpane.get('selected')) { | |
mapsLyr.clear(); | |
labelsLyr.clear(); | |
} else if (this.agrmntPane.get('selected')) { | |
agrmntsLyr.clear(); | |
} | |
map.graphics.clear(); | |
if (fset.features.length > 1000) { | |
topic.publish('growler/growl', { | |
title: 'Try Again', | |
message: 'Your query returned more than 1,000 records. Please refine your search', | |
level: 'default', | |
timeout: 2500, | |
opacity: 0.9 | |
}); | |
if (this.ROWpane.get('selected')) { | |
filterLayerDefs[id] = "maptype in ('Record','Appraisal','Bridge','Survey') and mapdecade LIKE '20%'"; //XH | |
} else if (this.agrmntPane.get('selected')) { | |
filterLayerDefs[id] = "objectid_1 < 1"; | |
} | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
} else if (fset.features.length > 0 && fset.features.length < 1001) { | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
featuresList = []; | |
// Loop through features in the featureSet and add them to the map. | |
for (var i = 0, il = fset.features.length; i < il; i++) { | |
// Get the current feature from the featureSet. | |
// Feature is a graphic | |
//if fset. | |
var graphic = fset.features[i]; | |
var labelX = graphic.attributes.longitude; | |
var labelY = graphic.attributes.latitude; | |
var labelPt = new Point([labelX, labelY]); | |
var labelGraphic = new Graphic(labelPt); | |
var label; | |
if (this.ROWpane.get('selected')) { | |
label = graphic.attributes.shtlabel; | |
} else if (this.agrmntPane.get('selected')) { | |
label = graphic.attributes.name; | |
} | |
featuresList.push("'" + label + "'"); | |
if (this.ROWpane.get('selected')) { | |
if (graphic.attributes.maptype == 'Appraisal') { | |
var appraisalLabel = new TextSymbol(label).setColor(new Color([0, 170, 255])); | |
appraisalLabel.font.setSize("12pt"); | |
appraisalLabel.font.setFamily("franklin gothic heavy"); | |
appraisalLabel.setHaloColor(new Color([0, 0, 0])); | |
appraisalLabel.setHaloSize(2); | |
graphic.setSymbol(appraisalSymbol); | |
labelGraphic.setSymbol(appraisalLabel); | |
} else if (graphic.attributes.maptype == 'Bridge') { | |
var bridgeLabel = new TextSymbol(label).setColor(new Color([170, 85, 255])); | |
bridgeLabel.font.setSize("12pt"); | |
bridgeLabel.font.setFamily("franklin gothic heavy"); | |
bridgeLabel.setHaloColor(new Color([0, 0, 0])); | |
bridgeLabel.setHaloSize(2); | |
graphic.setSymbol(bridgeSymbol); | |
labelGraphic.setSymbol(bridgeLabel); | |
} else if (graphic.attributes.maptype == 'Hardcopy') { | |
var hcLabel = new TextSymbol(label).setColor(new Color([255, 84, 255])); | |
hcLabel.font.setSize("12pt"); | |
hcLabel.font.setFamily("franklin gothic heavy"); | |
hcLabel.setHaloColor(new Color([0, 0, 0])); | |
hcLabel.setHaloSize(2); | |
graphic.setSymbol(hardCopySymbol); | |
labelGraphic.setSymbol(hcLabel); | |
} else if (graphic.attributes.maptype == 'Record') { | |
var recordLabel = new TextSymbol(label).setColor(new Color([255, 85, 0])); | |
recordLabel.font.setSize("12pt"); | |
recordLabel.font.setFamily("franklin gothic heavy"); | |
recordLabel.setHaloColor(new Color([0, 0, 0])); | |
recordLabel.setHaloSize(2); | |
graphic.setSymbol(recordSymbol); | |
labelGraphic.setSymbol(recordLabel); | |
} else if (graphic.attributes.maptype == 'Survey') { | |
var surveyLabel = new TextSymbol(label).setColor(new Color([0, 255, 0])); | |
surveyLabel.font.setSize("12pt"); | |
surveyLabel.font.setFamily("franklin gothic heavy"); | |
surveyLabel.setHaloColor(new Color([0, 0, 0])); | |
surveyLabel.setHaloSize(2); | |
graphic.setSymbol(surveySymbol); | |
labelGraphic.setSymbol(surveyLabel); | |
} | |
} else if (this.agrmntPane.get('selected')) { | |
if (graphic.attributes.agrmnt_typ == 'Cooperative') { | |
graphic.setSymbol(coopAgrmntSymbol); | |
} else if (graphic.attributes.agrmnt_typ == 'Freeway') { | |
graphic.setSymbol(fwyAgrmntSymbol); | |
} else if (graphic.attributes.agrmnt_typ == 'Maintenance') { | |
graphic.setSymbol(maintAgrmntSymbol); | |
} | |
} | |
//Add graphic to the map graphics layer. | |
if (this.ROWpane.get('selected')) { | |
mapsLyr.add(graphic); | |
labelsLyr.add(labelGraphic); | |
mapsLyr.setInfoTemplate(infoWin); | |
map.addLayer(mapsLyr); | |
map.addLayer(labelsLyr); | |
} else if (this.agrmntPane.get('selected')) { | |
agrmntsLyr.add(graphic); | |
agrmntsLyr.setInfoTemplate(infoWin); | |
map.addLayer(agrmntsLyr); | |
} | |
} | |
filterLayerDefs[id] = 'objectId < 0'; | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
var features = featuresList.toString(); | |
if (this.ROWpane.get('selected')) { | |
var mapExtentExp = extentLayerDef + 'AND shtlabel IN (' + features + ')'; | |
} else if (this.agrmntPane.get('selected')) { | |
var mapExtentExp = extentLayerDef + 'AND name IN (' + features + ')'; | |
} | |
myFeatureLayer.setDefinitionExpression(mapExtentExp); | |
this.createFeatureTable(); | |
map.setExtent(esri.graphicsExtent(fset.features)); | |
} else { | |
topic.publish('growler/growl', { | |
title: 'Try Again', | |
message: 'Your search did not return any records, try again.', | |
level: 'default', | |
timeout: 2500, | |
opacity: 0.9 | |
}); | |
filterLayerDefs[id] = 'objectId < 0'; | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
if (myFeatureTable){ | |
this.destroyFeatureTable(); | |
} | |
} | |
})); | |
}, | |
onAddLayers : function () { | |
this.AddLayers(); | |
}, | |
onClear : function () { | |
this.getMapLayerID(); | |
this.destroyFeatureTable(); | |
map.removeLayer(mapsLyr); | |
map.removeLayer(labelsLyr); | |
map.removeLayer(agrmntsLyr); | |
map.removeLayer(selectedGraphicsLyr); | |
map.graphics.clear(); | |
map.centerAndZoom([-122.39, 37.852], 9); | |
dynamicMapServiceLayer = map.getLayer('mapSets'); | |
filterLayerDefs[15] = "maptype in ('Record','Appraisal','Bridge','Survey') and mapdecade LIKE '20%'"; | |
dynamicMapServiceLayer.setLayerDefinitions(filterLayerDefs); | |
queryTaskOrig = new esri.tasks.QueryTask(mapsUrl); | |
queryOrig = new esri.tasks.Query(); | |
queryOrig.returnGeometry = true; | |
queryOrig.outFields = ["*"]; | |
queryOrig.where = filterLayerDefs[id]; | |
queryTaskOrig.execute(queryOrig, function () {}); | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment