POST
|
Assuming you are using the WMSLayer class, you are likely running into a caching issue. Essentially, your browser doesn't know the underlying image has changed, as the URL remains the same. This is why panning or zooming gives you the latest image; by changing the extent of your WMS GetMap request, the URL changes, and since it does not exist in your browser cache yet, a new image is downloaded from the service. According to the WMSLayer documentation, the refresh() function only works if the disableClientCaching property of the service is set to true. Unfortunately the disableClientCaching property is not listed as a valid property of WMSLayer (it is listed under ArcGISDynamicMapServiceLayer, however), but I suspect it may still work. Try the following:
wmsRadarLayer.disableClientCaching = true;
wmsRadarLayer.refresh();
If that doesn't work, try this:
wmsRadarLayer.setDisableClientCaching(true);
wmsRadarLayer.refresh();
If neither of those work, this option may not be supported for the WMSLayer class, and your only option (other than submitting an enhancement request) would likely be to create your own WMSLayer class whose getImageURL() function includes a random number (or perhaps the present epoch time) as an extra query parameter, such as "&nocache=1406055134". You can find an example of creating a custom WMS Layer here: Custom layer - WMS | ArcGIS API for JavaScript
... View more
07-22-2014
11:56 AM
|
0
|
0
|
909
|
POST
|
I have also been noticing this issue for some time now (since early 2013), and in fact I submitted a bug report about a year ago which resulted in creation of "Bug NIM091638: The BorderContainer flashes white in Google Chrome when zooming out on a map". The problem seems to be directly related to both the number of layers being displayed and the size of the map, i.e., it happens when I have 5+ layers added to the map and the browser maximized on a 24" display. When I restore the window to a smaller size or overlay fewer layers, the problem does not occur. I have been able to recreate the issue on the ArcGIS.com map viewer by adding 5 or 6 different services to the map. I have found that removing an individual ContentPane from the BorderContainer and re-adding it, e.g.: borderContainer.removeChild(contentPane);
borderContainer.addChild(contentPane); results in that ContentPane not flickering (you can still see the basemap flash white, but it does not obscure the ContentPane). ESRI has insisted that it is a bug with Chrome, which is certainly possible but unconfirmed. Last year I recall setting navigationMode: 'classic' not fixing the issue, but I must have tested incorrectly because it now seems to resolve the problem after all, so thank you AMUSGSjvrabel for providing that workaround.
... View more
06-23-2014
10:13 AM
|
0
|
0
|
428
|
POST
|
I have run into similar roadblocks with my own workflow. I assumed you were using a Query Layer in your map service, but I am confused by the two seemingly contradictory error messages: 00166: Layer's ObjectID is not maintained by the database and the feature service is being published with Create capability enabled vs ERROR 000152: You cannot add an incrementing ID field to a table registered with the geodatabase So it sounds like your table is registered with the geodatabase, but does not have a geodatabase-maintained OBJECTID field and instead maintains an auto-incrementing field, which is strange to me. In my experience (using ArcPy), geodatabase registration (unfortunately) results in the auto-increment constraint being removed from the OBJECTID column, as ESRI wants you to instead call the sde.next_rowid(schema, table) function when inserting new records via SQL. In this case, you shouldn't have to worry about calling the AddIncrementingIDField function, as the OBJECTID field should suffice. But how were you able to register the table with the geodatabase without having your autoincrement constraint removed? Were you able to find a workaround?
... View more
05-19-2014
12:40 PM
|
0
|
0
|
1408
|
POST
|
I've discovered that this actually can be done during publishiing, but only if you're using Python/ArcPy. The basic steps are as follows: Create a service definition draft using arcpy.mapping.CreateMapSDDraft(...) Open the service definition draft XML file generated by the previous step and look for the "<ConfigurationProperties>" element. Underneath this element there is a <PropertyArray> element containing a series of <PropertySetProperty> entries, one of which contains the "schemaLockingEnabled" parameter. You just need to change its <Value> to "false" instead of "true" Proceed with the remaining publishing steps, e.g. arcpy.mapping.AnalyzeForSD(...), arcpy.StageService_server(...), and arcpy.UploadServiceDefinition_server(...) The XML item you're looking for should look something like this:
<PropertySetProperty xsi:type="typens:PropertySetProperty">
<Key>schemaLockingEnabled</Key>
<Value xsi:type="xs:string">true</Value>
</PropertySetProperty>
The XML editing can also be accomplished in python by using the xml.dom.minidom module. I recommend taking a look at this help article which contains some good examples about the ArcPy publishing workflow as well as editing the service definition XML.
... View more
02-21-2014
12:32 PM
|
0
|
0
|
3201
|
POST
|
It looks like custom styles are not supported in ESRI's WMSLayer implementation, so your only option is likely to create a custom WMS Layer type that you can use instead. This will allow you to manually set the STYLES parameter. See this sample: https://developers.arcgis.com/javascript/jssamples/layers_custom_wms.html
... View more
02-21-2014
12:16 PM
|
0
|
0
|
2419
|
POST
|
I think the following should work, although I have not tested it: Determine the screen coordinates of the upper-left and upper-right corners of your inner div. You can do this by using the position() function of dojo/dom-geometry Convert these screen coordinates into esri/geometry/ScreenPoint objects by subtracting the x/y position of the map div's origin (upper-left corner of the map, in screen coordinates) Convert these ScreenPoints into map points using the toMapGeometry(...) function of esri/geometry/screenUtils The desired extent can be constructed using the map's top-left (map.extent.xmin, map.extent.ymax) and top-right (map.extent.xmax, map.extent.ymax) map coordinates along with the newly-calculated coordinates.
... View more
02-21-2014
11:49 AM
|
0
|
0
|
625
|
POST
|
Hi Michael, Since I'm using a PostgreSQL database, I'm editing the MinPS values in the Mosaic Dataset catalog table directly (using SQL), but it's the same concept as using an editing session. I attached a few screenshots of my example. As you can see in the first screenshot, I've changed the minps value of "wind_conus_201402211605_0" to 259. Using ESRI's equations, this should correspond with a max scale value of about 1:978,898. But as you can see in my screenshot, the image still shows up even at 1:500,000 scale (albeit blurry). However, if I change the MinPS value to 260 (second screenshot), which is just barely greater than the smallest LowPS value in the Mosaic Dataset (259.868275), it disappears as it should.
... View more
02-21-2014
06:36 AM
|
0
|
0
|
2128
|
POST
|
Hi Michael I do understand the purpose of MinPS/MaxPS, and I have had some success modifying the values manually, but the problem I'm encountering is that the MinPS setting seems to have no effect when set between zero and the smallest LowPS value in the Mosaic Dataset. In my above example, setting the MinPS of any raster to 519 has the same effect as setting it to zero. But if I set it to 520, it immediately affects the scale visibility threshold for that raster, but sets it too high. Using the help documentation's cell size-to-scale equations, that means I can only set the maximum scale of each raster to either 1:1 (for any MinPS value between 0 and 519.8797) or to >= 1:1,965,354 (for MinPS values >= 520). The problem is that there is no in-between; I'd like to be able to set the max scale of one of the individual rasters to about 1:570,000, but it seems this is not possible. I will likely submit an incident with ESRI to find the cause of this behavior.
... View more
02-20-2014
10:06 AM
|
0
|
0
|
2128
|
POST
|
I have a map service containing a single mosaic dataset with five (non-overlapping) rasters. Each raster is a GeoTIFF with several embedded overviews (pyramids), and each has a different width/height/resolution. I'd like to be able to set the maximum display scale of each individual raster (e.g., raster "A" needs to disappear after 1:577,000, raster "B" needs to disappear after 1:288,000, etc.). I was planning to implement this by updating the Mosaic Dataset's attribute table to set different MinPS values for each raster. While this works for larger MinPS values, I've discovered that setting the MinPS of any raster to a value smaller than the lowest LowPS value in the Mosaic Dataset has no effect. Here are my min/max/low/high PS values: minps | maxps | lowps | highps
-------------+------------------+----------------+----------------
0.000000000 | 200000.000000000 | 2060.797725894 | 2060.797725894
0.000000000 | 200000.000000000 | 4000.000000000 | 4000.000000000
0.000000000 | 200000.000000000 | 789.510316420 | 789.510316420
0.000000000 | 200000.000000000 | 940.407095286 | 940.407095286
0.000000000 | 200000.000000000 | 519.879708618 | 519.879708618 In this case, setting any MinPS value lower than 519.879708618 (the smallest LowPS in the Mosaic Dataset) has no effect, and the target raster still displays (even down to approx. 1:1 scale). If I set this value to 520, it immediately has an effect, but sets the scale threshold higher than desired. This limits the max scale that can be set for each raster to either too low (1:1) or too high (~ 1:1,965,354) - there's no in-between. Can anyone explain this behavior? Is this to be expected? Is there any other way to control max scale for individual rasters in a mosaic dataset (other than creating a separate map layer for each raster)?
... View more
02-19-2014
06:01 AM
|
0
|
7
|
5311
|
POST
|
Thanks for the input. That sounds like a good workaround for some services, but I don't think that will work for shapefile-based map services that copy data to the server. However I suppose it should work if the shapefiles are copied over manually to a registered data store folder. Hopefully ESRI can give an answer as to whether or not the original approach is possible.
... View more
02-11-2014
04:54 AM
|
1
|
0
|
1114
|
POST
|
Using ArcPy on Windows (via ArcGIS Desktop or iPython), I am able to successfully publish map services using the draft/stage/upload approach, however I am not able to perform the same task using ArcPy on the ArcGIS Server (Linux) machine itself. Creating a draft and analyzing works fine, but when I attempt to stage the service (arcpy.StageService_server(...)) I'm encountering the following error: arcgisscripting.ExecuteError: ERROR 001270: Consolidating the data failed.
Failed to execute (StageService). I am using ArcGIS Server 10.2.1 for Linux (RHEL 6, x86_64) There are several other forum posts mentioning this error message, but I've tried the advice mentioned (shortening staging/connection path names, ensuring adequate storage is available, etc.), but nothing has resolved the problem. Since I am using the Python/ArcPy environment packaged with the ArcGIS Server machine itself, I suspect what I'm trying to do may not be possible as the ArcInfo licensing level may be required, but that's just a guess. Is it possible to publish a service using ArcPy on the ArcGIS Server machine itself? This seems like it should be a fairly common task for enterprise ArcGIS Server installations, since publishing large map services to a remote ArcGIS Server over the internet (not a LAN) is quite time-consuming, so it would be nice to be able to copy the MXD/data to the server manually and run the publishing locally.
... View more
02-10-2014
12:46 PM
|
1
|
4
|
2145
|
POST
|
Same thing goes for my Simplify Polygon tool in ArcGIS Desktop 10.2.1 - the Simplification Tolerance label is there but the input box is missing. I was able to use the tool once properly, but after that the input box disappeared and the tool could only be run through Python. [ATTACH=CONFIG]29466[/ATTACH]
... View more
11-29-2013
04:35 AM
|
0
|
0
|
1694
|
POST
|
I've run into the same problem - so far I haven't found a way to modify date formatting at all. I've also found that a timestamp valid at midnight is returned in an identify request as just the date, with no time information. Example: October 28, 2013 at 00:00 is returned as just "10/28/2013" This really should be able to be customized on a per-field/per-service basis, although I would be happy if we could at least modify ArcGIS Server's default formatting.
... View more
10-28-2013
08:02 AM
|
0
|
0
|
451
|
POST
|
I did some more searching and came across the following Nimbus bug which was "fixed" at 10.2: NIM086844 Do not set cache-control with max-age=86400 in map service's ExportMap operation (f=image) response header It appears that this "fix" introduced a new problem to the way clients and servers interact by requiring clients to re-query the server before using their own browser cache. Is there some way to configure the max-age value??
... View more
08-28-2013
11:14 AM
|
0
|
0
|
301
|
POST
|
I just installed ArcGIS Server 10.2 and noticed that my JSAPI viewer no longer interacts with my services in the same way. My dynamic map services are time-enabled and my viewer includes a time slider. Previously, I could hit the animate button or use my scroll wheel to go through each time-step and pre-download each image; once each time-step had been downloaded once, I could animate very smoothly (especially noticeable when scrolling with mouse wheel). Now, it seems ArcGIS Server 10.2 has changed the HTTP header sent with each image to specify: Cache-Control:max-age=0,must-revalidate Previously, the Cache-Control, header included a nonzero value for 'max-age' and did not include 'must-revalidate', meaning that my browser was able to use its cache to quickly display images that had already been downloaded. The implications of this are many more HTTP requests (even if most of them result in HTTP 304 "Not Modified"), and more importantly animation does not work like it used to, and I can no longer scroll through my preloaded time-steps quickly; there is now a delay when the map's time extent is changed, even if the image has already been downloaded, because my browser has to confirm with AGS that the underlying image has not changed. Is there a workaround? Maybe some obscure service configuration parameter or JSAPI option? disableClientCaching is already false in my viewer. Please Help! Jason
... View more
08-28-2013
09:01 AM
|
0
|
1
|
2181
|
Title | Kudos | Posted |
---|---|---|
1 | 02-10-2014 12:46 PM | |
1 | 02-11-2014 04:54 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|