adding a tiled and dynamic layers on search sample

772
3
Jump to solution
05-12-2014 10:57 AM
GyeyoungChoi
New Contributor II
I was trying to add a cached tiled map and dynamic layer on top of sample below
https://developers.arcgis.com/javascript/jssamples/find_map_datagrid.html

require([         "esri/map",         "esri/tasks/FindTask",         "esri/tasks/FindParameters",         "esri/symbols/SimpleMarkerSymbol",         "esri/symbols/SimpleLineSymbol",         "esri/symbols/SimpleFillSymbol",                    "esri/Color",         "dojo/on",         "dojo/dom",         "dijit/registry",         "dojo/_base/array",         "dojo/_base/connect",         "dojox/grid/DataGrid",         "dojo/data/ItemFileReadStore",         "dijit/form/Button",         "dojo/parser",                    "dijit/layout/BorderContainer",         "dijit/layout/ContentPane",    "esri/layers/ArcGISTiledMapServiceLayer",   "esri/layers/ArcGISDynamicMapServiceLayer",    "esri/dijit/HomeButton",         "dojo/domReady!"       ], function(         Map, FindTask, FindParameters, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol,         Color, on, dom, registry, arrayUtils, connect, DataGrid, ItemFileReadStore, Button, parser, Tiled,ArcGISDynamicMapServiceLayer,HomeButton       ) {               var findTask, findParams;         var map, center, zoom;         var grid, store;         var layerConfig = {   urlTiled: "http://localhost:6080/arcgis/rest/services/v1/BaseMap42114/MapServer",   urlInfo: "http://localhost:6080/arcgis/rest/services/aggiemap_beta/beta_MapInfo/MapServer",   urlV1Info: "http://localhost:6080/arcgis/rest/services/v1/MapInfo/MapServer",   qBldg: "http://localhost:6080/arcgis/rest/services/v1/MapInfo/MapServer/6"   };          parser.parse();                          registry.byId("search").on("click", doFind);                  center = [-96.345680, 30.612473];         zoom = 16;         map = new esri.Map("map", {           basemap: "topo",           center: center,           zoom: zoom         });      var tiled = new Tiled(layerConfig.urlTiled);   var tamuInfo = new ArcGISDynamicMapServiceLayer(layerConfig.urlV1Info);   map.addLayers([tiled,tamuInfo]);    var home = new HomeButton({      map: map      }, "HomeButton");   home.startup();          findTask = new FindTask(layerConfig.urlV1Info);          map.on("load", function () {            //Create the find parameters           findParams = new FindParameters();           findParams.returnGeometry = true;           findParams.layerIds = [11, 0, 1, 2, 6];           findParams.searchFields = ["Name", "Number", "MapDisplay", "Address", "BldgName"];           findParams.outSpatialReference = map.spatialReference;           console.log("find sr: ", findParams.outSpatialReference);         });                                    function doFind() {           //Set the search text to the value in the box           findParams.searchText = dom.byId("searchText").value;           findTask.execute(findParams, showResults);         }          function showResults(results) {           //This function works with an array of FindResult that the task returns           map.graphics.clear();           var symbol = new SimpleFillSymbol(             SimpleFillSymbol.STYLE_SOLID,              new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([98, 194, 204]), 2),              new Color([98, 194, 204, 0.5])           );            //create array of attributes           var items = arrayUtils.map(results, function (result) {             var graphic = result.feature;             graphic.setSymbol(symbol);             map.graphics.add(graphic);             return result.feature.attributes;           });            //Create data object to be used in store           var data = {             identifier : "PARCELID", //This field needs to have unique values             label : "PARCELID", //Name field for display. Not pertinent to a grid but may be used elsewhere.             items : items           };            //Create data store and bind to grid.           store = new ItemFileReadStore({             data : data           });           var grid = registry.byId("grid");           grid.setStore(store);           grid.on("rowclick", onRowClickHandler);            //Zoom back to the initial map extent           map.centerAndZoom(center, zoom);         }          //Zoom to the parcel when the user clicks a row         function onRowClickHandler(evt) {           var clickedTaxLotId = evt.grid.getItem(evt.rowIndex).PARCELID;           var selectedTaxLot = arrayUtils.filter(map.graphics.graphics, function (graphic) {             return ((graphic.attributes) && graphic.attributes.PARCELID === clickedTaxLotId);           });           if ( selectedTaxLot.length ) {             map.setExtent(selectedTaxLot[0].geometry.getExtent(), true);           }         }       });


Html
<div id="map" data-dojo-props="region:'center'" data-dojo-type="dijit/layout/ContentPane" style="border:0px"><div id="HomeButton"></div>  <div id="mapMenu"><img src="http://localhost/images/drawerlogol.png"><div id="mapMenuSub"><input type="text" id="searchText" size="30" /><button id="search" data-dojo-type="dijit.form.Button" type="button" data-dojo-attach-point="button" >Search</button>  <table data-dojo-type="dojox/grid/DataGrid" data-dojo-id="grid"  id="grid" data-dojo-props="rowsPerPage:'5', rowSelector:'20px'">       <thead>         <tr>           <th field="MapDisplay" width="100%">Results</th>         </tr>       </thead>     </table>  </div>  </div>  </div>


Esri basemap is loaded but not others

Should I do this some other way?

Thanks,
0 Kudos
1 Solution

Accepted Solutions
KenBuja
MVP Esteemed Contributor
The order of the modules in the require section have to match the order of the arguments in the function section. Take a look at this blog for more details.

require([         "esri/map",         "esri/tasks/FindTask",         "esri/tasks/FindParameters",         "esri/symbols/SimpleMarkerSymbol",         "esri/symbols/SimpleLineSymbol",         "esri/symbols/SimpleFillSymbol",                    "esri/Color",         "dojo/on",         "dojo/dom",         "dijit/registry",         "dojo/_base/array",         "dojo/_base/connect",         "dojox/grid/DataGrid",         "dojo/data/ItemFileReadStore",         "dijit/form/Button",         "dojo/parser",         "esri/layers/ArcGISTiledMapServiceLayer",         "esri/layers/ArcGISDynamicMapServiceLayer",          "esri/dijit/HomeButton",                    "dijit/layout/BorderContainer",         "dijit/layout/ContentPane",          "dojo/domReady!"       ], function(         Map, FindTask, FindParameters, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol,         Color, on, dom, registry, arrayUtils, connect, DataGrid, ItemFileReadStore, Button, parser, Tiled,ArcGISDynamicMapServiceLayer,HomeButton  

View solution in original post

0 Kudos
3 Replies
KenBuja
MVP Esteemed Contributor
The order of the modules in the require section have to match the order of the arguments in the function section. Take a look at this blog for more details.

require([         "esri/map",         "esri/tasks/FindTask",         "esri/tasks/FindParameters",         "esri/symbols/SimpleMarkerSymbol",         "esri/symbols/SimpleLineSymbol",         "esri/symbols/SimpleFillSymbol",                    "esri/Color",         "dojo/on",         "dojo/dom",         "dijit/registry",         "dojo/_base/array",         "dojo/_base/connect",         "dojox/grid/DataGrid",         "dojo/data/ItemFileReadStore",         "dijit/form/Button",         "dojo/parser",         "esri/layers/ArcGISTiledMapServiceLayer",         "esri/layers/ArcGISDynamicMapServiceLayer",          "esri/dijit/HomeButton",                    "dijit/layout/BorderContainer",         "dijit/layout/ContentPane",          "dojo/domReady!"       ], function(         Map, FindTask, FindParameters, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol,         Color, on, dom, registry, arrayUtils, connect, DataGrid, ItemFileReadStore, Button, parser, Tiled,ArcGISDynamicMapServiceLayer,HomeButton  
0 Kudos
GyeyoungChoi
New Contributor II
Thanks Ken,

I was moving from legacy to AMD and the blog is very very helpful

Thanks again
0 Kudos
JohnGravois
Frequent Contributor
glad to hear it.
0 Kudos