POST
|
Jeff, this typically happens when the graphic is not currently loaded into the display. You should first navigate to the appropriate location and then access the shape. For point data you might have to use some other way of navigating to the location of the graphic, but the logic is the same.
map.infoWindow.select(idx);
var selectedFeature = map.infoWindow.getSelectedFeature();
map.setExtent(selectedFeature.geometry.getExtent()).then(lang.hitch(this,function(){
selectedFeature.getShape().moveToFront();
});
... View more
08-19-2014
09:26 AM
|
0
|
4
|
950
|
POST
|
Will, there are several considerations to look at for this use case. The relationship query is specific to a layer, so the 'click' event should be on that layer, not the map. This routine only selects items from the related table, so those are the only ones that show up in the AttributeInspector. If you wish to see features from a different layer in the AttributeInspector you'll have to create a different 'selection' routine that is specific to that layer. You could have a generic 'selection' routine, but then you'd have to put logic in it to deal with each layer in a specific way. Edit fiddle - JSFiddle
... View more
08-15-2014
01:55 PM
|
1
|
1
|
391
|
POST
|
Will, I don't understand the code in your jsfiddle, and there are many issues in there. It seems like you added a bunch of code that just tries to do similar things to what I was already doing, but then you also left my code in there. It doesn't make sense. Additionally, the sample map service you're trying to use doesn't have a FeatureService behind it, so I don't think its a good service to test this scenario out. Having a jsfiddle built against the real FeatureServices you are working with would really help. - Don't create multiple instances of AttributeInspector, just add all your editable layers to one instance via layerInfos. - Don't let the 'related table' concept confuse you, it's just another FeatureLayer that the AttributeInspecor can edit. - Every layer added to the layerInfos of the AttributeInspector should have a list of fields you want to view/edit. - If defining the editable fields dynamically from the FeatureLayer, then make sure the layer is 'loaded' before accessing the 'fields' collection. I hope this helps
... View more
08-15-2014
10:03 AM
|
0
|
3
|
391
|
POST
|
Sarah, specific to the definition expression issue, you can use the IN operator in your where clause: ObjectID IN (33,55,56,222) It could go something kind of like this:
var objectIdField = featureLayer.objectIdField;
var objectIds = array.map(features,function(feature){
return feature.attributes[objectIdField];
});
var whereClause = lang.replace("{0} IN ({1})",[objectIdField,objectIds.join(",")]);
featureLayer.setDefinitionExpression(whereClause);
... View more
08-14-2014
12:29 PM
|
1
|
1
|
963
|
POST
|
Will, I like to use "lang.hitch(...)" to provide proper context (what 'this' means) to any function that runs async Since a lot of the JS API methods return Deferred, this becomes a simple and powerful coding pattern.
... View more
08-14-2014
08:31 AM
|
0
|
5
|
1440
|
POST
|
Will, the workflow would be something like this: Create FeatureLayer for related table Create AttributeInspector using FeatureLayer from previous step For any source feature, find related features and create list of ObjectIds Select related features in the related FeatureLayer based on related ObjectIds Edit Related Features - JSFiddle
... View more
08-13-2014
04:14 PM
|
2
|
7
|
1440
|
POST
|
Jon, excellent, glad to hear this works better for you. We switched the approach to letting the dojo chart component calc the appropriate labels, but in order to do that we now convert the elevation and distance values from meters (which is what the profile service returns) to the display units. You can also find the updated code on my github page: elevation-profile-template
... View more
08-13-2014
02:21 PM
|
1
|
0
|
956
|
POST
|
My guess is that the UndoManager class does not inherit from 'Evented' (see dojo/Evented). Until that happens you'll have to use the 'connect' pattern which, as you mention above, works just fine.
... View more
08-12-2014
04:47 PM
|
2
|
0
|
4559
|
POST
|
Jon, could you please check out this version of the Elevation Profile Template to see if it does a better job of handling your y-axis labels? Elevations Profile
... View more
08-12-2014
04:25 PM
|
0
|
2
|
956
|
POST
|
Jon, since we need to display the y-axis labels based on the units dropdown of the measurement dijit, we decided to simply generate the labels dynamically by dividing the range of elevation values by 5. This is something we've talked about revisiting so we'll take another look at this issue and see if there's a simple solution.
... View more
08-12-2014
10:32 AM
|
0
|
0
|
956
|
POST
|
1) What is the Spatial Reference of the Map? 2) What is the Spatial Reference of the first layer added to the Map?
... View more
08-07-2014
11:10 AM
|
0
|
0
|
843
|
POST
|
Jim, are you sure that's the correct url? The service seems to be empty. When using 'where: 1=1' and 'returnCountOnly: true' parameters: Request: https://services1.arcgis.com/BqQ60RORKMjmx3jf/ArcGIS/rest/services/Photos_Template/FeatureServer/0/query?where=1%3D1&returnCountOnly=true&f=json Result: { "count": 0}
... View more
05-09-2014
08:53 AM
|
0
|
0
|
1542
|
POST
|
From the ArcGIS Server REST API: feature Note that date values are encoded as numbers. The number represents the number of milliseconds since epoch (January 1, 1970) in UTC. Example: query.where = "(time > " + fromDate.valueOf() + ") AND (time < " + toDate.valueOf() + ")"; JS Date Object: link
... View more
05-06-2014
08:15 AM
|
0
|
0
|
1542
|
POST
|
Suggestions: 1) Best solution is to add a renderer to the layer based on the conditions so you don't have to worry about changing symbol colors directly. 2) To change the symbol directly, here are the general steps (not tested): var layer = map.getLayer('layerid'); // get the symbol var symbol = layer.graphics[0].symbol; // change color symbol.setColor(new dojo.Color("red")); // assign symbol back to graphic layer.graphics[0].setSymbol(symbol);
... View more
05-02-2014
07:33 AM
|
0
|
0
|
1530
|
POST
|
Jim, If possible, please check the values in this field at the REST service endpoint to verify that the field values are returned by the service as an integer value that represents the number of milliseconds since midnight Jan 1, 1970 in UTC. Looking at the json response of the query is what I would suggest. So, if you can create a valid Date instance from the string returned by the HTML5 widget (that truly represents the date and time you want to query with) then I would suggest you use the ".valueOf()" method on the Date instance to get the value in UTC milliseconds and use it in your query. For example: query.push( "time > " + (new Date(startDate)).valueOf() ); More info on Date objects: JavaScript Date Object If this does not work, then it would help if we had a public map service endpoint that your query is trying to access so we can figure out how to properly do this date query.
... View more
04-30-2014
07:45 AM
|
0
|
0
|
348
|
Title | Kudos | Posted |
---|---|---|
1 | 03-07-2024 04:14 PM | |
1 | 02-23-2024 12:40 PM | |
1 | 03-01-2024 10:48 AM | |
2 | 08-03-2023 02:34 PM | |
2 | 07-19-2023 12:05 PM |
Online Status |
Offline
|
Date Last Visited |
yesterday
|