POST
|
Hi Terry Does this property (or something similar) exist on the java script FeatureLayer? FeatureLayer.DisableClientCaching = true This was one solution to this problem in the Silverlight world. Works for us here anyway. After setting this property, we checked Fiddler and found that the esri framework was adding a timestamp to the 'query' request underlying the client-side FeatureLayer. This makes each the request unique and works around the issue being discussed. -Cory
... View more
08-29-2013
11:13 AM
|
0
|
0
|
630
|
POST
|
Hi Interesting note from josethom The REST mapservices that I am using sit on top of both SQL Server 2008 and.... file geodatabases. I did not investigate whether we were seeing this problem with just the file geodatabase-based services, but this could be the case. Anyway, thanks for the reply, and I hope this additional note helps someone. -Cory
... View more
04-01-2013
12:20 PM
|
0
|
0
|
1333
|
POST
|
Answering my own question, but here goes.... ....I found a solution which fixed my specific issue. The spatial reference of my graphic's geometry was null. I fixed my code to set to mySpatialReference before adding to graphicLayer. This did NOT update the graphicLayer.SpatialReference. It is still null [INDENT][/INDENT]... I suspect this _could_ be because graphicLayer.IsInitialized = false. Perhaps if one called Initialize and waits for the response, the graphicLayer.SpatialReference will be non null... I did not try this. However, now when I send my map to the PrintTask, the featureSet's spatialReference is now set to mySpatialReference and I see points in the exported map. So, the orig problem described in the first post is not solved, but the export problem I was seeing (which I thought was related) is solved. Perhaps someone will find this information useful. Thanks, -Cory
... View more
02-21-2013
11:16 AM
|
0
|
0
|
1669
|
POST
|
I also see this problem. I am using ESRI SL 3.0 API. My GraphicsLayer has a null SpatialReference. My map has a spatial reference. This is causing a problem for me because I am trying to use the PrintTask (for ArcGIS 10.1 printing). In this state, I am finding that a GraphicsLayer with a FeatureSet containing text graphics is NOT properly translated to web map json, and therefore does not print any of the text graphics. However, if I hand edit the json and add a spatial reference to GraphicsLayer's featureSet:, then the text prints. So, does anyone know how to set the SpatialReference on a GraphicsLayer? Thanks -Cory
... View more
02-21-2013
08:45 AM
|
0
|
0
|
1669
|
POST
|
Hi, I'm developing a silverlight mapping application using MS SL 4.0 + ESRI SL 3.0 and I have two questions related to some new functions avail in 3.0 and Server 10.1. 1) I have a map service that is 10.1 and supports dynamic layers. I have an ArcGISDynamicMapServiceLayer my map pointing to this map service. I can use .LayerDrawingOptions to change the feature renderer and toggle labels on/off for one of the sub layers. So far, so good. ... however, I do not see how I can change the label's symbol (e.g. change font, text size, color, etc.). The question: Is there a way to do this, and if so, how? 2) I'm actually doing this work to prepare a map + layers for high resolution printing. Leaving out the details of why I'm doing this, my hope was to use ArcGISDynamicMapServiceLayer + the ESRI SL PrintTask to create a web map with layers where I can control the layers' label text symbol.... ... The ExportWebMap Specification (http://resources.arcgis.com/en/help/main/10.1/index.html#//0154000004w8000000) for Operational Layers (see code below) shows that drawingInfo contains a boolean showLabels, as well as another property labelingInfo. It was my 'expectation' (now downgraded to 'hope') that if I construted an ArcGISDynamicMapServiceLayer in SL 3.0, that I would be able to change both feature and label 'rendering'. The question: Is there something I am missing to create an Operational Layer with labelingInfo from a SL ArcGISDynamicMapServiceLayer, and if not, is my best hope this sample (http://resources.arcgis.com/en/help/silverlight-api/samples/start.htm#CreateWebMapObject), or something else? Thanks -Cory "operationalLayers" : [
{
"url" : "<url1>",
"title" : "<title1>",
"opacity" : <opacity2>,
"gdbVersion": "<gdbVersion>",
"visibleLayers" : [
<layerId1>,
<layerId2>
],
"layers" : [
{
"id": <sublayerId1>,
"layerDefinition": {
"definitionExpression": "<definitionExpression>",
"layerTimeOptions": {
"useTime": <true | false>,
"timeDataCumulative": <true | false>,
"timeOffset": <timeOffset1>,
"timeOffsetUnits": "<esriTimeUnits>"
},
"drawingInfo": {
"renderer" : {<renderer>},
"transparency" : <transparency>,
"scaleSymbols" : <true | false>,
"showLabels" : <true | false>,
"labelingInfo" : {<labelingInfo>},
},
"source": {<layerSource>},
"gdbVersion": "<Geodatabase version name>"
}
}
]
}
]
-Cory
... View more
01-16-2013
07:39 AM
|
0
|
1
|
587
|
POST
|
Hi Domenico, Thank you for the ideas, very helpful. I have implemented your 'dirty' suggestion, and it appears to be working. For anyone using the ESRI Silverlight API, you can set FeatureLayer.DisableClientCaching = true. This will add a unique time stamp parameter to the underlying REST request.... I found however that QueryTask does not behave this way. Thererfore, in this case, I followed the advice of generating a random time stamp and adding it to the Where. Thanks very much again, -Cory
... View more
12-18-2012
09:55 AM
|
0
|
0
|
1333
|
POST
|
Thanks for the reply and the link. This nimbus link worked better for me. http://support.esri.com/en/bugs/nimbus/TklNMDg2MzQ5 We will be contacting support and requesting a fix (hopefully soon!) for this. Do you know of any workarounds aside from issuing the request again if it fails the first time? Thanks, -Cory
... View more
12-14-2012
04:18 AM
|
0
|
0
|
1333
|
POST
|
Hi We are upgrading to ArcGIS Server 10.1 SP1 from 10.0. We have noticed a new problem where REST layer queries are failing every other request. It is quite strange, but you can reproduce it by simply reissuing requests in browser or Fiddler. Here is an example request (can use &f=html also, same result). http://serverx/arcgis/rest/services/foldery/servicez/MapServer/0/query?where=%28%28KeyInstn+in+%28103036%29%29%29&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=102100&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&f=json Every other request fails with this result (json): {"error":{"code":400,"message":"Unable to complete operation.","details":[]}} Clue:I started looking this while tracking down possible change to how ESRI is treating OutputFields in 10.1 compared to 10.0. Anybody else seeing this? Any recommendations on where to check next to narrow this one down? Thanks, -Cory
... View more
12-13-2012
06:17 AM
|
0
|
25
|
10516
|
POST
|
Hi Mike Thanks for the advice. I am getting closer... Example 1 (based on your tip, thanks!) works...
# Import system modules
import sys, string, os, arcpy
arcpy.AddMessage("start script....")
lyr = "C:\Temp\gpFun\BRANCHES_VABK.lyr" # includes query
arcpy.AddMessage("Getting count....")
result = arcpy.GetCount_management(lyr)
count = int(result.getOutput(0))
arcpy.AddMessage(str(count))
... now, how to apply query external to the .lyr definition. Example 2 Select layer by attribute fails.... # Import system modules
import sys, string, os, arcpy
arcpy.AddMessage("start script....")
lyr = "C:\Temp\gpFun\BRANCHES.lyr"
qry = "KeyInstn = 4019974" # VABK
arcpy.AddMessage(qry)
arcpy.AddMessage("Selecting layer by attribute....")
arcpy.SelectLayerByAttribute_management (lyr, "NEW_SELECTION", qry)
arcpy.AddMessage("Getting count....")
result = arcpy.GetCount_management(lyr)
count = int(result.getOutput(0))
arcpy.AddMessage(str(count))
.... here is the error: <class 'arcgisscripting.ExecuteError'>: Failed to execute. Parameters are not valid. ERROR 000825: The value is not a layer or table view ERROR 000840: The value is not a Raster Layer. ERROR 000840: The value is not a Mosaic Layer. Failed to execute (SelectLayerByAttribute). Example 3 uses TableSelect... # Import system modules
import sys, string, os, arcpy
arcpy.AddMessage("start script....")
lyr = "C:\Temp\gpFun\BRANCHES.lyr"
qry = "KeyInstn = 4019974" # VABK
arcpy.AddMessage(qry)
arcpy.AddMessage("Table selecting....")
arcpy.TableSelect_analysis(lyr, "c:/temp/gpFun/tempOut.shp", qry)
... this works, but the .shp is a table, not a feature class. This won't work for me. I need to perform spatial operations on this like buffer, etc. Weird. I think there is some missing piece for "reading" Query Layers as features, not rows. BTW, Query Layers aren't geodatabase feature classes. They're actually tables in the DBMS with spatial columns. ESRI application then sees these as shapes. GP/Python seems to have problems seeing them though... Thanks for your help, -Cory
... View more
03-20-2012
11:58 AM
|
0
|
0
|
903
|
POST
|
Hi, I'm unable to use Python/Geoprocessing to read data from an ESRI Query Layer. How can I make this work? I've tried two things: 1) Use Make Feature Layer to read from .lyr Reference: http://forums.arcgis.com/threads/584-beta-10-system-tool-for-extracting-query-layer-data-to-file-gdb Code explained: Works for .lyr based on layer (data source is sde spatial view which arcgis sees as a feature class). Does not work for .lyr based on query layer (data source is sde view which arcgis sees as a table). # Import system modules
import sys, string, os, arcpy
arcpy.AddMessage("start script....")
#lyr = "C:\Projects\BranchMapping\dev\src\GP_Tasks\ppOwner.lyr"
lyr = "C:\Projects\BranchMapping\dev\src\GP_Tasks\BRANCHES.lyr"
#qry = "KeyInstn = 4001616" # D
qry = "KeyInstn = 4019974" # VABK
arcpy.AddMessage("Making feature layer....")
arcpy.MakeFeatureLayer_management(lyr, "lyr", qry)
arcpy.AddMessage("Getting count....")
result = arcpy.GetCount_management("lyr")
count = int(result.getOutput(0))
arcpy.AddMessage(str(count)) 2) MakeQueryTable Reference: http://forums.arcgis.com/threads/25496-Query-Layer?highlight=query+layer+geoprocessing+python Opening the tool I browse to the sde view. Afterwards I get this error: ERROR 000793 Invalid data element type ERROR 000840: The value is not a Raster Layer. I read the doc, but I don't understand. Can I use this tool to create a layer from a "query layer" table data source (i.e. same data source that I can use to create a Query Layer in ArcMap). Does ESRI have a way to use PY to read data from a Query Layer data source? Thanks, -Cory
... View more
03-19-2012
08:57 AM
|
0
|
6
|
2323
|
POST
|
Hi Jennifer, We have abandoned SimpleMarkerSymbols for us on client-side FeatureLayers. Two reasons: 1) the triangle shaped SimpleMarkerSymbol is definitely shifted "down and to the right" on the map, compared to the other shapes. 2) SimpleMarkerSymbol does not support an outline which we need. Our solution was to write an OutlineMarkerSymbol that inherits from MarkerSymbol. We used the nice xaml examples you all provide in your symbol gallery (very nice, thanks!). Fortunately we are able to translate this custom symbol to a symbol which our printing/export solution understands (basically a simple marker symbol with outline support). As I said above, our choice of marker is currently constrained by what we can print/export. We have a longer-term goal of "opening this up", so we can use snazzier symbols. Thanks, -Cory
... View more
12-08-2011
05:11 AM
|
0
|
0
|
373
|
POST
|
Hi, I've been working with Silverlight FeatureLayer point clustering, which is a _really_ nice feature by the way. Here is the ESRI sample that I started with: http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#FeatureLayerRendering Anyway, my question: How can I show point clusters in my print/pdf export? I have modified the code to use a SimpleMarkerSymbol. That's working. The problem is shown below. When I iterate on layer graphics, I get unclustered graphics. I want the clustered graphics. foreach (GraphicsLayer gl in lyrs)
{
if (gl == null || gl.Graphics == null || gl.Graphics.Count == 0) continue;
Symbol symbol = null;
foreach (Graphic g in gl.Graphics)
{ Even though I see clusters on my map (drawn by FeatureLayer), gl.Graphics count shows that these are the unclustered graphics. (g.Symbol also confirms this. I don't get the cluster symbol, I get the orig renderer symbol). a) Does anyone know how to make this work? b) Will IRenderer.GetSymbol(graphic) return the clustered symbol? If so, how can I access the "cluster definition", that is which graphics are in which clusters? Does the renderer know anything about the clusterer? c) are there FeatureLayer/GraphicLayer members that I could use? d) ... about the only other idea I have is rather heavy-handed. I could always maintain the set of "last drawn" cluster graphics. That'd be possible by overriding this method of GrahpicsCluster (as demonstrated in the above sample). protected override Graphic OnCreateGraphic(GraphicCollection cluster, MapPoint point, int maxClusterCount) { Hoping for some help/ideas here. Thanks, -Cory
... View more
12-01-2011
06:44 AM
|
0
|
2
|
586
|
POST
|
Hi Jennifer, Thanks for your reply, but this doesn't answer my questions: 1) How can I set the XOffset/YOffset of a SimpleMarkerSymbol? 2) Is the behavior of the Triangle SimpleMarkerSymbol (described in my original post) a bug in your system? How can I work around it? Finally, we have it on our "todo" list to look at how we're using symbols in our SL app (markers specifically). The custom symbols and symbol gallery definitely show me that this is where we want to go (interactivity, snazzy look and feel)... BUT, I am fairly certain that the reason why we went with SimpleMarkerSymbols was to support our own printing/pdf generation solution... (aside: we are using a print solution from a 3rd party, which depends at some level on Web ADF I believe). 3) ...so, my last question is: We are using ArcGIS Server 10.0 and SL 2.2. If we use symbols as provided in the symbol gallery/custom symbols sample, what are our choices for producing pdf and high resolution image output that includes these symbols? Is there a recommended ESRI solution, and what is it? With the recommended solution, does ESRI api provide translators to automatically handle these types of symbols, or does one need to code one's own translators? Thanks, -Cory
... View more
11-23-2011
03:56 AM
|
0
|
0
|
373
|
POST
|
Hi All, Working in Silverlight with SimpleMarkerSymbols, we noticed that Triangle style symbols have a different origin from other styles (e.g. Circle). We want to correct this problem in code, but how? See attached image. The Circle marker (as well as other styles), center on the same point -- marked with the small black point. However, Triangle markers are located with an offset -- down and to the right. We are seeing this behavior graphics in GraphicLayers and FeatureLayers. Does anyone know how to workaround this? [INDENT]Unfortunately, the XOffset and YOffset properties are NOT settable. See note "Setting the OffsetX property is not allowed on the SimpleMarkerSymbol sub class." here: http://resources.esri.com/help/9.3/arcgisserver/apis/silverlight/apiref/topic835.html[/INDENT] I have tried directly setting these properties directly, but I get a "not supported" exception. markerSymbol.OffsetX = 0;
markerSymbol.OffsetY = 0; I have also tried this, but I get System.ArgumentException was unhandled by user code Message='0' is not a valid value for property 'OffsetX'. markerSymbol.SetValue(MarkerSymbol.OffsetXProperty, 0);
markerSymbol.SetValue(MarkerSymbol.OffsetYProperty, 0);
I have combed the doc/forums and not figured this out. I wonder if I can use .ControlTemplate to solve this, but I am not sure how. Best idea would be to find a way to set x/y offset, trap for the Triangle style, and set values for these based on symbol size to "shift" marker back from whence it came. Any ideas/solutions out there to this one? I am using ESRI.ArcGIS.Client.dll Version 2.2.0.629. Thanks, -Cory
... View more
11-22-2011
05:24 AM
|
0
|
4
|
1236
|
POST
|
Hi All I was able to make this work. Here's what I did: 1) When creating FeatureLayer -set Mode = OnDemand -set MaxAllowableOffset to initial value based on Map.Resolution 2) Listen to Map.ExtentChanged 3) On MapExtentChanged
featureLayer.ClearGraphics();
featureLayer.MaxAllowableOffset = maxOffset; // new value calculated from Map.Resolution
featureLayer.Initialize(); // is this necessary?
The above works. A few additional tips: -here is my GetMaxOffset public static double GetMaxOffset(double mapResolution, double pixelTolerance)
{
// alternate algorithm where map is ESRI map control
//maxOffset = Math.Floor(map.Extent.Width / map.ActualWidth) * pixelTolerance;
return mapResolution * pixelTolerance; // means n pixels between vertices?
} -In OnExtetChanged, I don't recalc/reset maxoffset if the map scale hasn't changed. Use ESRI ExtentEventArgs to help you with this. -Also, I found that I didn't want to recacl maxoffset on every single scale change. I "smoothed" the infinite number of resolutions to a fixed number of resolutions (think scale bands in a multi-scale map service). This resulted in less re-querying of data from the server... as with anything, it seems there's a balance between providing many levels of detail to user (nice to look at), and querying data (not nice to wait for). Hope this helps someone. -Cory
... View more
11-17-2011
06:04 AM
|
0
|
0
|
275
|
Title | Kudos | Posted |
---|---|---|
1 | 04-11-2017 05:54 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|