POST
|
Derek, Thank you for your reply. When I run the code with applyedits it takes over 10 seconds to draw and sometimes I get a message regarding a slow script running on the page. I tried running it the way you describe, creating the featurecollection before the feature layer. It didn't work properly, nothing displayed. It looks like when I do it the first way I get 51 graphics, but when I create the featurecollection first, the feature layer then shows one graphic with a 51 count. I'm using a classbreaks renderer and it doesn't have all the States graphics to draw. I don't know why the feature layer does have 51 graphics. var features = []; var resultFeatures = featureSet.features; var attrs; for (var j = 0, il = resultFeatures.length; j < il; j++) { //Get the current feature from the featureSet. var stName = resultFeatures .attributes["STATE_NAME"]; var iNumb = findPosition(stName, arrStateList); atts = { "STATE_NAME": stName, "NUMB": parseInt(iNumb) }; graphic = resultFeatures ; graphic.setAttributes(atts); features.push(graphic); } //Create featurelayer from feature collection var layerDefinition = { "geometryType": "esriGeometryPolygon", "objectIdField": "ObjectID", "fields": [{ "name": "ObjectID", "alias": "ObjectID", "type": "esriFieldTypeOID" }, { "name": "STATE_NAME", "type": "esriFieldTypeString", "alias": "State Name" }, { "name": "NUMB", "alias": "VALUE", "type": "esriFieldTypeInteger" }] } var featureCollection = { "layerDefinition": layerDefinition, "featureSet": { "features": features, "geometryType": "esriGeometryPolygon" } } var content = "<b>State Name</b>: ${STATE_NAME}" + "<br><b>Value</b>: ${NUMB}"; var infoTemplate = new esri.InfoTemplate("Attributes", content); featureLayer = new esri.layers.FeatureLayer(featureCollection, { mode: esri.layers.FeatureLayer.MODE_SNAPSHOT, infoTemplate: infoTemplate }); featureLayer.setRenderer(renderer); map.addLayers([featureLayer]);
... View more
02-28-2012
02:07 AM
|
0
|
0
|
2344
|
POST
|
I have created a feature layer from a feature collection as suggested. The problem is it is really slow. In the code below I have an array of items from an Oracle stored procedure and a feature set from a States Layer. I add this States data to the feature collection and update the collection. It slows down at line featureLayer.applyEdits(features, null, null); Is there anything I'm doing wrong, or is it just slow with 50+ updates? Thanks! //Create featurelayer from feature collection var layerDefinition = { "geometryType": "esriGeometryPolygon", "objectIdField": "ObjectID", "fields": [{ "name": "ObjectID", "alias": "ObjectID", "type": "esriFieldTypeOID" }, { "name": "STATE_NAME", "type": "esriFieldTypeString", "alias": "State Name" }, { "name": "NUMB", "alias": "VALUE", "type": "esriFieldTypeInteger" }] } var featureCollection = { layerDefinition: layerDefinition, featureSet: null }; var content = "<b>State Name</b>: ${STATE_NAME}" + "<br><b>Value</b>: ${NUMB}"; var infoTemplate = new esri.InfoTemplate("Attributes", content); featureLayer = new esri.layers.FeatureLayer(featureCollection, { mode: esri.layers.FeatureLayer.MODE_SNAPSHOT, infoTemplate: infoTemplate }); var features = []; var resultFeatures = featureSet.features; //featureSet is 51 States with State_Name attribute var attrs; for (var j = 0, il = resultFeatures.length; j < il; j++) { //Get the current feature from the featureSet. var stName = resultFeatures .attributes["STATE_NAME"]; var iNumb = findPosition(stName, arrStateList); //arrStateList - array with State_name and NUMB attributes atts = { "STATE_NAME": stName, "NUMB": parseInt(iNumb) }; graphic = resultFeatures ; graphic.setAttributes(atts); features.push(graphic); } featureLayer.applyEdits(features, null, null); featureLayer.setRenderer(renderer); map.addLayers([featureLayer]); } } function findPosition(value, dataArray) { var a; var b; for (var i = 0; i < dataArray.length; i++) { a = dataArray; b = a["StateName"]; if (value == b) { return a["TheNumber"]; } } }
... View more
02-27-2012
08:38 AM
|
0
|
0
|
2344
|
POST
|
Derek, Thank you for your reply. I unfortunately do not think I can use a feature layer. I am getting my attributes for States from an oracle stored procedure which I put in an array. I do a query on the States layer and put the geometry in a graphic and add the attribute data which I use for the classbreaks renderer. I'm don't think I can add the attribute information to a feature layer from the array, can I? If not I guess I have to build the legend with dojo?
... View more
02-22-2012
01:41 AM
|
0
|
0
|
2344
|
POST
|
Hello, I have a graphics layer with a classbreaks renderer. The breaks are computed mathematically based on the attribute values. How can I show a legend for this graphics layer? Thanks. Sara S.
... View more
02-21-2012
10:50 AM
|
0
|
15
|
8294
|
POST
|
I would like to use an Oracle stored procedure to get a selection set from an attribute table of State data. I would then like to use this to get the selection from the States layer and relate the attributes. Is this possible with Javascript? I know the result from the stored procedure is a datatable which has to be done on the server side. SaraS
... View more
12-22-2011
11:48 AM
|
0
|
0
|
578
|
POST
|
Thanks Darina! I knew there must be something simple I was missing. Sara
... View more
01-07-2011
11:02 AM
|
0
|
0
|
216
|
POST
|
I have a graphics layer with data for counties. The user can choose to zoom to a selected State to see the county layer/data. I want to highlight the boundaries of the selected State. I put the selected State in another graphics layer on top of the counties graphics layer. The problem is I then can't get the maptips or identify on the county graphics layer underneath. What am I doing wrong, or is there another way to do this? Thanks. Sara
... View more
01-07-2011
08:28 AM
|
0
|
2
|
601
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|