|
POST
|
I'm sorry this wasn't more clear- my intent with sharing the link was just to provide some supporting documentation about 508 compliance and web maps, and specifically the point (which you get) which is that there are just some things inherent with web maps that just can't be made accessible. ESRI states this in the document, and I thought it might be of some value in your discussions with those above you whom are instructing you to make your apps compliant. Certainly you CAN add alt text to images (your point #4) via JS but I don't see how that is useful for rendered image depictions of the map. Certainly a form of parcel information such as what you described in your follow up example is a different story and for that, you can use SPAN tags and utilize the title attribute. Interesting behavior that you describe with ArcGIS Online. I've used ArcGIS Explorer Online (which I think is slated for replacement) and in that application, you CAN use the map without the mouse physically being over the map. It seems to work as long as the browser tab is active. Anyways, I was hoping to provide some ammo to possibly help you get out of having to do some of this work.
... View more
06-25-2015
12:41 PM
|
2
|
4
|
4686
|
|
POST
|
I don't have an answer for making a JS API app compliant but perhaps give this ESRI produced PDF a look: ArcGIS Online Voluntary Product Accessibility Templates (VPATs) It's a link off of a more general page (this and this). Perhaps one could argue that if even ESRI states that certain aspects of a web map cannot be 508 compliant, maybe they'll be less hardline about the entire app being compliant. Steve
... View more
06-25-2015
11:00 AM
|
2
|
15
|
4687
|
|
POST
|
What happens when you specify "autoGeneralize: false" when constructing the parcel featureLayer?..
... View more
06-22-2015
02:22 PM
|
1
|
1
|
3497
|
|
POST
|
I would also add that the different browsers can treat the same JS date formatting code differently (I'm looking at you, IE) so check your results in all browsers that your users may use with your application. For that reason, I use the date.js library for my date formatting.
... View more
06-19-2015
07:55 AM
|
0
|
0
|
1566
|
|
POST
|
Is the date still being stored in the attribute field as a date value? If so, obtain the value, add (or subtract- I can't remember! ) 7 hours of seconds (25,200), create a new date object base on the corrected date value, and then format the new date. You can use a date formatting function with TooltipDialogs so it might be best to do that instead of trying to do it all in one line of code like your example above. function returnContent(attrib) {
newDate = new Date(eval(attrib.ReadTime + 25200));
outDate = "<b>Read Time: </b>" + DateFormat(datePattern: 'M/d/yyyy hh:mm:ss a', selector:'date');
return outDate;
} I'm using a tooltipDialog in one of my apps and the tooltip does show a date in the tooltip. I used a formatter function to adjust the date stored in the attribute field. The app is still in legacy coding but here's my snippit related to the tooltipDialog: this.showSnocoTooltip = function(evt) {
theAttributes = evt.graphic.attributes;
theDate = new Date(eval(eval(evt.graphic.attributes.LASTOBS + 28800) * 1000));
theTime = formatTime(new Date(eval(eval(evt.graphic.attributes.LASTOBS + 28800) * 1000)));
theHeight = evt.graphic.attributes.READING;
theContent = returnGagePopupContent(theAttributes);
var snocoDialog = new dijit.TooltipDialog({id: "snocoTooltipDialog",content: theContent,style: "position: absolute; font: normal normal bold 8pt Tahoma;z-index:100;"});
snocoDialog.startup();
dijit.placeOnScreen(snocoDialog.domNode, {x: evt.pageX,y: evt.pageY}, ["TL", "BL"], {x: 5,y: 5});
}
... View more
06-18-2015
12:27 PM
|
0
|
0
|
1566
|
|
POST
|
[FYI- This discusson relates to the use of the REST service within a Javascript API application] Look, I get it- ESRI wants to make money off of its users, and I have no problem with the concept of having to pay for a viewshed analysis or drainage basin calculation. That being said, why can't I just perform a simple query for the elevation of a given lat/lon location?? I can geocode a single street address without any hassle or preconditions but if I want to query a single elevation point, I'm required to have a Developers or ArcGIS Organizational account. If I had that, that query wouldn't cost any credits so why make it this difficult for folks to use in the first place? At least Google provides this option to its users. If ESRI still wants to create an incentive for users to pay for this information, provide a degraded resolution (30m resolution, SRTM source, etc) value for the free option. For my application, this would more than suffice. I'd like the users of my application to be able to use it world wide but can only offer US coverage (using the USGS elevation query service) because of this deficiency. Steve
... View more
06-09-2015
09:16 AM
|
0
|
2
|
3377
|
|
POST
|
I've worked with inserting a map within MS Access forms using Microsoft's ActiveX web control and it works. I imagine you could do the same within Word. The one potential pitfall is that the web control i believe is based on Internet Explorer 8 so you may experience some issues thanks to the non-standard nature of older versions of Internet Explorer. You might want to test the functionality first if that might be a problem.
... View more
05-28-2015
03:10 PM
|
2
|
0
|
4984
|
|
POST
|
Yes- I am well aware of the justification letter template. That's not what I am referring to. IN ADDITION to a justification memo, I need to attach SOMETHING (produced by ESRI) that describes what the conference is. Consider this URISA example. This is what I need from ESRI (and this is what ESRI used to produce several years ago). The nine random testimonial quotes doesn't explain WHAT the conference is; it only bolsters the concept that attending the conference is beneficial. Do you feel confident that if you printed a copy of any webpage found on the ESRI UC site that a non-GIS person would understand what the conference is and what happens? I no longer feel this way. How about adding a page called "What is the ESRI UC?" and compile content that addresses the who/what/where/why questions.
... View more
05-26-2015
03:43 PM
|
1
|
1
|
1855
|
|
POST
|
Why is the "Justify Your Trip" page so devoid of actual content about what the conference is? Like many folks, I have to craft a justification memo/letter but, in addition to that, I need to attach something that show/describes what the conference is and is about. Back in the "good 'ole days" when ESRI physically mailed something leading up to each year's conference, I could photocopy or attach that because it actually contained who/what/where content such as "..over 13,000 attendees, 200 plus workshops, 120 user submitted paper sessions, etc.....". Now, we get a webpage with nine lowly quotes from John and Jane Doe, all of whom a non-GIS person could care less about. Look- we're users, we get it. But I need to submit something to non-users. I need a web page, or PDF, something WITH ESRI'S STAMPING, that simply explains what this is all about. This new era of snazzy modern design webpages and select quotes really doesn't really cut it. Go back to the future. Please.
... View more
05-26-2015
02:37 PM
|
0
|
3
|
4895
|
|
POST
|
I believe I did try it but I think it didn't make a difference. I had the sense that the code for dijit.byId was getting called before it was "ready" but I couldn't prevent it unless I went the parseOnLoad route. Thejus' suggestion of moving the parse.parse outside of the ready() function makes some sense but I haven't had the time yet to try it. My main intent from my original post was to ask if the technique of using parseOnLoad has fallen out of favor (or is no longer needed) when using AMD style coding.
... View more
05-26-2015
09:01 AM
|
1
|
0
|
522
|
|
POST
|
Sorry- the ready function as in dojo/ready: require([
"dojo/ready",
"dojo/on",
"dojo/_base/connect",
"dojo/_base/event",
"dojo/dom",
"dojo/fx",
"dojox/grid/DataGrid",
"dgrid/Selection",
"dojo/promise/all",
"dojo/data/ItemFileReadStore",
"dojo/store/Memory",
"dojo/_base/array",
"dijit/registry",
"dojo/_base/declare",
"dojo/dom-construct",
"dojo/keys",
"dojo/parser",
"dijit/form/Button",
"dijit/form/CheckBox",
"dijit/form/DateTextBox",
"dijit/form/FilteringSelect",
"dijit/form/Form",
"dijit/form/Select",
"dijit/form/HorizontalSlider",
"dijit/form/HorizontalRule",
"dijit/form/RadioButton",
"dijit/form/TextBox",
"dijit/form/TimeTextBox",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dojox/layout/ExpandoPane",
"dijit/layout/AccordionContainer",
"dijit/Menu",
"dijit/MenuItem",
"dijit/MenuSeparator",
"esri/Color",
"esri/geometry/Extent",
"esri/geometry/webMercatorUtils",
"esri/graphic",
"esri/InfoTemplate",
"esri/map",
"esri/arcgis/utils",
"esri/domUtils",
"esri/dijit/Geocoder",
"esri/dijit/HomeButton",
"esri/dijit/BasemapToggle",
"esri/dijit/Measurement",
"esri/dijit/Popup",
"esri/dijit/PopupTemplate",
"esri/geometry/Point",
"esri/SpatialReference",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleMarkerSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/PictureMarkerSymbol",
"esri/layers/FeatureLayer",
"esri/layers/GraphicsLayer",
"esri/toolbars/draw",
"esri/tasks/FeatureSet",
"esri/tasks/GeometryService",
"esri/tasks/locator",
"esri/tasks/ProjectParameters",
"esri/tasks/query",
"esri/tasks/QueryTask",
"esri/tasks/RouteParameters",
"esri/tasks/query"
], function(
ready,
on,
connect,
event,
dom,
fx,
DataGrid,
Selection,
all,
ItemFileReadStore,
Memory,
array,
registry,
declare,
domConstruct,
keys,
parser,
Button,
CheckBox,
DateTextBox,
FilteringSelect,
Form,
Select,
HorizontalSlider,
HorizontalRule,
RadioButton,
TextBox,
TimeTextBox,
BorderContainer,
ContentPane,
ExpandoPane,
AccordionContainer,
Menu,
MenuItem,
MenuSeparator,
Color,
Extent,
webMercatorUtils,
Graphic,
InfoTemplate,
Map,
arcgisUtils,
domUtils,
Geocoder,
HomeButton,
BasemapToggle,
Measurement,
Popup,
PopupTemplate,
Point,
SpatialReference,
SimpleLineSymbol,
SimpleMarkerSymbol,
SimpleFillSymbol,
PictureMarkerSymbol,
FeatureLayer,
GraphicsLayer,
Draw,
FeatureSet,
GeometryService,
Locator,
ProjectParameters,
Query,
QueryTask,
RouteParameters,
Query
) {
ready(function(){
parser.parse();
esri.config.defaults.io.proxyUrl = "http://dmc-arcgis/proxy/proxy.ashx";
esri.config.defaults.io.alwaysUseProxy = false;
//etc..etc..etc..
dijit.byId("cboRdName").on('change', function(selection) {
updateCrossStreetList();
closureProps['rdName'] = document.getElementById('cboRdName').value;
closureProps['status'] ='CLOSED';
zoomToRoad();
});
}
... View more
05-22-2015
04:16 PM
|
0
|
1
|
3110
|
|
POST
|
In my code, when I was trying to use parser.parse(), it was my first line of code in my ready() function.
... View more
05-22-2015
11:06 AM
|
0
|
1
|
3110
|
|
POST
|
No problem changing it to a question. I saw it as a discussion but no big deal. Yes- I do have parser specified in my list of requires.
... View more
05-22-2015
10:32 AM
|
0
|
0
|
3110
|
|
POST
|
I'm jumping off the deep end and starting to convert some apps to AMD style that were originally written in legacy dojo. One thing I've picked up about migrating to AMD is that the legacy practice of doing this: <script type ="text/javascript">
var dojoConfig = {parseOnLoad: true};
</script> in the HTML header section has been replaced by doing this: ready(function() {
parser.parse();
.....
} down in the Javascript code. I never questioned this; I just did it. In my current work trying to migrate a legacy app to AMD, I ran into a maddening issue where my attempts to establish a listener event on a dojo form that had two radio checkboxes as choices: // Event listener to enable/disable controls based on the input method chosen
dijit.byId("frmEndMethod").on('change', function() {
....
}); would always error out because dijit.byId() couldn't find the widget and thus, returned undefined. The code was within the ready(function() {...}); so it should have no problems finding it. In fact, I could type "dijit.byId("frmEndMethod")" into the console after page load and it does return the dijit. No matter what I tried, I could not get this to work. Then I reverted back the the legacy variable declaration in the header and commented out parser.parse() in my JS code. Surprise, surprise- it loaded without error and the event now triggers. So what gives? Am I "wrong" to still use the dojoConfig variable with AMD style coding? I mean, it seems to work, which is the whole point but is there something I'm missing? Steve
... View more
05-22-2015
09:43 AM
|
0
|
10
|
7505
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | Thursday | |
| 1 | Thursday | |
| 1 | a week ago | |
| 1 | 2 weeks ago | |
| 1 | 2 weeks ago |