POST
|
I am having this same issue. Info: Standalone C#/WinForms app ArcGIS 10.1 SP1 Tested on two workstations, both with high-end graphics cards with updated drivers. The CanEnableHardwareAcceleration property returns True on both machines, but setting the EnableHardwareAcceleration property does not actually change its value. Any ideas? Thanks. Hey Tara, I ended up working with ESRI Support on this issue, and they determined that it was related to my video card and their drivers. My rig is kind of old, so no official drivers actually work: calling CanEnableHardwareAcceleration actually returns false. However, after installing the latest reference drivers for my graphics card, CanEnableHardwareAcceleration returns true, but setting EnableHardwareAcceleration has no effect. It's clear that, for me at least, it's related to my card and/or drivers. I did verify that on some other machines in our office, calling EnableHardwareAcceleration works as expected. There are graphics cards and/or drivers, then, that simply aren't supported. Depending on the drivers, you might see the behavior that you are currently experiencing. It's probably not a bad idea to hit up ESRI Support and let them know what graphics card and drivers you're using. Perhaps they don't support them, but can offer some advice on alternative drivers to use. (Or they can work on adding support for those drivers in the future.) Thanks! Brooks
... View more
02-27-2013
08:22 AM
|
0
|
0
|
305
|
POST
|
The funny part is that when I run this, it says it CAN enable acceleration, but the g.EnableHardwareAcceleration property remains FALSE. I'm noticing the same thing. Did you ever figure out if this is specific to a given system, or if it happened on all machines? (If it was the latter, did you ever determine a resolution?) Thanks, Brooks
... View more
10-30-2012
07:19 AM
|
0
|
0
|
305
|
POST
|
Ok, the sample GPK is uploaded. You should be able to get to it here: https://betacommunity.esri.com/files/download.aspx/PointToPointWBarriers.gpk?d=0D08C5CF1E0B4D2380C5ABB16FBDB958&p=18BC10576E2C4606AFED3A8870BFE445&n=2D260C03AB1F498F90DB735EFC041782&s=A76CF05EFE6B4517B249DD9403507710&l=66974DEB93534385A83D793393E1F9F4 Only members of the Beta Community will be able to access it. Let me know if you have troubles. Hey Ralf, I hope things are going well! It was great seeing you down in Palm Springs at this year's dev summit. I've been spending some time developing against the Runtime, and have decided to foray into network analysis. Simple point-to-point routing is sufficient for me, so I've taken some interest in this thread - and your GPK example. Unfortunately, I can't seem to get your sample tool to execute. When I try to run in from within ArcMap, I receive the following: "ERROR 000816: The tool is not valid." Do you know what might be causing this? I'm trying to execute the tool in 10.1 Prerelease ArcGIS Desktop "Basic". (At the risk of sounding totally naive, could this be a version compatibility thing, since you created the GPK awhile back, pre-prerelease?) Thanks! Brooks
... View more
05-11-2012
12:10 PM
|
0
|
0
|
413
|
POST
|
Hi, At Prerelease the new accelerated display functionality is dependent on having the DirectX End User Runtime installed. ... There is some more information on this in the release notes: http://resourcesbeta.arcgis.com/en/help/runtime-wpf/concepts/index.html#/Release_notes_ArcGIS_Runtime_SDK_1_0_Prerelease_for_WPF/01700000006s000000/ Hey Mike, I've gone so far as to install the DirectX End-User Runtime, as instructed, but the Accelerated Map samples still crash on my machine. The error details are: Sample: LocalAcceleratedMap
Error: Accelerated Display failed to create. Please check DirectX end user runtime is installed. Also check the graphics drivers support Windows Display Driver Model (WDDM), note that standard VGA drivers do not support WDDM.
Stack Trace:
at ESRI.ArcGIS.Client.NativeMap..ctor()
at ESRI.ArcGIS.Client.DrawingSurface.CreateRenderSurface()
at ESRI.ArcGIS.Client.Map.OnApplyTemplate()
at System.Windows.FrameworkElement.ApplyTemplate()
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Control.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
Sample: LocalAcceleratedMap
Error: Object reference not set to an instance of an object.
Stack Trace:
at ESRI.ArcGIS.Client.DrawingSurface.SetSize(Int32 width, Int32 height)
at ESRI.ArcGIS.Client.Map.<Map_SizeChanged>b__d()
at ESRI.ArcGIS.Client.ThrottleTimer.<.ctor>b__1(Object s, EventArgs e)
at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) I've updated my display drivers to their latest version, to no avail. For what it's worth, I'm running Vista 32 w/ DirectX 10. Do you have any advice on other things I could try, or thoughts about what might be causing this problem? Thanks! Brooks
... View more
05-11-2012
09:13 AM
|
0
|
0
|
680
|
POST
|
Yes, in Beta 2 ... Mike, Do you know what the timeline for release on Beta 2 is? I've been monitoring the things going on with Beta 1, but haven't had the opportunity - until now - to start playing with it. I don't seem to be able to download Beta 1 anymore, and it appears I need to wait until Beta 2 is out to get started. Thanks! Brooks
... View more
12-01-2011
06:30 AM
|
0
|
0
|
386
|
POST
|
Guys, What I posted above (which, mind you, just labels points) is essentially the full code. Bear in mind that my renderer XAML code, as originally pasted, had a binding expression error that I described the resolution for, in the subsequent post. The only magic, then, to using this is to make the renderer a resource of your layer's parent - in my case a Grid, so the renderer's XAML code is a part within the Grid's <Grid.Resources> collection. Then, in your feature layer, add an attribute to its declaration: Renderer="{StaticResource AddressPointRenderer_Display}" Which tells the layer that it must use your custom renderer. Now, I can't say what tricks you'll need to do to perform special labeling in dynamic map service layers other than setting up labeling in your map service definition (via MXD or MSD)... or if you can do anything but that. This technique is really only applicable to Feature Layers (and by extension, general GraphicsLayers) as they are rendered client-side, giving you control of how the labeling occurs. Let me know if you have any other questions. Thanks! Brooks
... View more
10-07-2011
05:36 AM
|
0
|
0
|
251
|
POST
|
Folks, Here's a really interesting problem I've noticed. After trying to apply some feature updates to one of my feature services, the operation will fail (due to an underlying DBMS error). The database itself won't contain the feature updates (since none were committed due to the error)... but the feature service will contain the updates. This scenario is probably best described by describing each stage of interaction with the feature service and the DBMS. It's important to note that I do know the cause of the underlying DBMS error - I've written a faulty "FOR UPDATE" trigger on my feature class' "base" table in SQL Server 2008. That being said, with the faulty trigger in place, here's how things go down: 1) An edit is made to one of the features. While I'm doing this via a Silverlight app, just think of it in terms of the "updateFeatures" REST operation. For the sake of this example, let's say the "NAME" attribute for the edited feature changed from "OLD HOUSE" to "NEW HOUSE". 2) The operation bombs, because the trigger code is faulty and cannot be executed. 3) Subsequent queries to access the feature via the Feature Service will claim, even though the update failed, that its NAME is "NEW HOUSE". 4) Inspection in ArcMap, however, proves that SDE really didn't modify the feature. SDE will report the feature as having a NAME value of "OLD HOUSE". When this first happened, I became pretty befuddled. I tried clearing my browser cache, my REST cache, the whole bit. No luck. On a hunch, I began to wonder if the Feature Service might cache features itself, to avoid having to go back to the database when servicing queries. Maybe its internal cache state wasn't cleaned up when the feature update failed, and it incorrectly reflected what the state would be, had the update succeeded. This lead me to try something else: simply restarting the service. That worked! Subsequent queries to the feature in this example return "OLD HOUSE", as they should ... since that's what is really in the database. While I do plan on fixing my trigger, of course, the effect I've described makes me nervous. If a DBMS error like this can throw the Feature Service into a tailspin, that's not good - since I haven't a clue how to recover from it other than manually restarting the service. Does anyone know if the Feature Service does, indeed, use some sort of internal cache? Maybe this effect is a bug and/or a known issue? Or, could there be something else going on that I haven't thought of? Thanks for your time! Brooks
... View more
05-14-2011
07:13 PM
|
0
|
0
|
602
|
POST
|
Casey, That does sound like an effective approach. As long as the user has a way of providing the data required to create a new record, you'd be set. My app displays the related records in a DataGrid, and if users want to create new related records, they simply click an "Add" button. Then, the fun starts: 1) I create a new Graphic instance. 2) I manually set one of its attribute values, the foreign key, to the primary key of the record it's related to. (This is how you wire up the relationship back to the record that exists on the "left hand side" of your 1:M relationship.) 3) I add the graphic instance to my "related records" FeatureLayer. Voila! You can start adding and modifying the graphic's attributes just like preexisting records. As the user supplies attribute values for the new record, just make sure the attribute names match those in the database itself. Say your FeatureLayer has an attribute called "NAME". Your new graphic instance won't have a "NAME" attribute yet, but you can add one, and when you save your FeatureLayer's edits, that new value will flow back to the database. However, if you tried to add an attribute called something else, like "SNAZZY_NEW_ATTRIBUTE" to your new graphic instance - an attribute that doesn't exist in your database - you'll run into problems. When you save the FeatureLayer's edits, the call will bomb, since there isn't a "SNAZZY_NEW_ATTRIBUTE" field in your database. I hope this helps! Have a good one, Brooks
... View more
01-31-2011
09:09 AM
|
0
|
0
|
326
|
POST
|
Casey, I'm unfortunately unable to, at the moment, dig up my code that accomplishes this (as I'm currently applying ArcGIS 10 SP1 - my machine is pretty pegged). I figured I'd describe what I did, however, and see if I might be able to point you in the direction I took. Basically, my application has two FeatureLayers. One represents the features on the left hand side of the 1:M relationship, while the second represents the features or records on the right hand side. Let's say we have one feature from the left hand side of the relationship. I'll use the QueryTask.ExecuteRelationshipQueryAsync() method to obtain all of the features/records that are related to it. When I receive the response, I do this: 1) Clear the contents of my "related records" FeatureLayer. 2) Tell the "related records" FeatureLayer that its set of OIDs are the ones that I obtained from the result of QueryTask.ExecuteRelationshipQueryAsync(). (There is a property on the FeatureLayer, OIDs I think, that you can use to do this.) 3) Call FeatureLayer.Update(), forcing it to go retrieve the records. At this point, I can perform edits on the "related records" feature layer, just as I would any other feature layer. The key here is that my "related records" feature layer acts like a scratch workspace, and is only ever composed of those records related to a given, single "working feature" from the left hand side of the relationship. Let me know if you have any more questions; I'm certainly happy to explain in further depth how I did this (much less try to explain more clearly, if I didn't do a good job at that. I think I still need a bit more coffee...) Thanks! Brooks
... View more
01-31-2011
05:52 AM
|
0
|
0
|
326
|
POST
|
Dominique, I figured it out. My binding statement was Text="{Binding [DLVRY_ADD]}", but it should be Text="{Binding Attributes[DLVRY_ADD]}" instead. Have a good one, Brooks
... View more
10-13-2010
08:08 AM
|
0
|
0
|
251
|
POST
|
Dominique, I'm trying to label points in a feature layer using a custom symbol (a MarkerSymbol with a custom ControlTemplate), and I think you're suggestion, above, is along the lines of what I'm attempting to do. My question relates specifically to data binding: what I'd really like to do is use a binding statement within the XAML of my ControlTemplate to bind to one of my graphics' attributes - such that the label for each feature reflects each feature individually. Here's the XAML I'm using, from the Renderer down to the ControlTemplate: <esri:SimpleRenderer x:Key="AddressPointRenderer_Display">
<esri:SimpleRenderer.Symbol>
<esriSymbols:MarkerSymbol>
<esriSymbols:MarkerSymbol.ControlTemplate>
<ControlTemplate>
<StackPanel Orientation="Vertical">
<Ellipse x:Name="Element" Width="5" Height="5" StrokeThickness="10"
Stroke="Blue">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected" />
<VisualState x:Name="Selected">
<Storyboard>
<ColorAnimation Storyboard.TargetName="Element"
Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)"
To="Cyan" Duration="00:00:0.25"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Ellipse>
<TextBlock Foreground="DarkGreen" FontWeight="ExtraBold" Margin="0,10,0,0" Text="{Binding [MY_ATTRIBUTE]}" />
</StackPanel>
</ControlTemplate>
</esriSymbols:MarkerSymbol.ControlTemplate>
</esriSymbols:MarkerSymbol>
</esri:SimpleRenderer.Symbol>
</esri:SimpleRenderer> The intent is that TextBlock's Text value should be whatever the "MY_ATTRIBUTE" value is, for each individual feature being rendered. Is it possible to do this, like I'm attempting to do it? The binding fails, so I assume the DataContext is either different than what I expect it to be, or it's nonexistent (aka, I just can't do it this way). Thanks! Brooks
... View more
10-13-2010
07:35 AM
|
0
|
0
|
251
|
POST
|
Thanks, Paul. I'll definitely keep the newer proxy page in mind, in case we notice similar oddities when using the original one. And thanks again for helping to get the new page posted on the forum, for future use by other folks. Have a good one, Brooks
... View more
09-02-2010
05:23 AM
|
0
|
0
|
312
|
POST
|
Have anyone else been having issues with the proxy file that is on the Silverlight API reference page? I don't recall having any problems. (I ran into other proxy-related issues, like a problem with the FeatureLayer's use of the proxy URL at 2.0 beta, but I had no problems with the actual proxy page itself, from what I could tell.) Paul, out of curiosity, what problems were you having? It might be useful to know so I could switch to this other proxy page if I need to. Thanks! Brooks
... View more
09-01-2010
12:35 PM
|
0
|
0
|
312
|
POST
|
Thanks, Jennifer! Using a FeatureLayer to represent my related table ends up working well. I can create, update, and delete related records as you'd expect, with no issues. Thanks for confirming that my initial idea was possible, and not totally off-base and unreasonable. 🙂 Regards, Brooks
... View more
08-26-2010
11:55 AM
|
0
|
0
|
326
|
POST
|
I have a (hopefully) easy question about feature relationships, and editing records that participate in a relationship with a feature class. I notice that the QueryTask exposes an ExecuteRelationshipQueryAsync method. This apparently lets you access records related to a given feature (or set of features). I'm thinking of using this to access records that exist in a simple 1:M relationship: one point feature related to 0 or more records in a Table (not a feature class, specifically). It seems that the QueryTask.ExecuteRelationshipQueryAsync() method would be the ticket to accessing the related records. That would get me half-way to where I need to be. What I'd really like to do is make edits to those related records - the full suite of CRUD operations. I don't need to use the FeatureDataForm / Grid / etc to pull this off, necessarily - it's quite likely that I'll roll my own custom UI to do this. That would give me the ability to do some legwork under the hood to commit the edits, if I had to. Since the result of the ExecuteRelationshipQueryAsync operation, at the end of the day, is a RelationshipResult instance, I can get at the related records (as Graphics), and could easily make changes to their attributes. It's the next step that I can't quite figure out. Once I've made my changes, I have to be able to save my edits. In addition, I'll have to be able to add and remove related records. To do that, I suppose that I'll need a feature layer; one that represents the table containing my related records. I can put that together, of course, without much trouble. The question then, is this: will my edits be committed if I, say, change the attributes of a Graphic in the RelationshipResult.RelatedRecordsGroup and then call SaveEdits() on the feature layer that represents the related table? Or do I need to do something like inspect the Graphics in the RelationshipResult.RelatedRecordsGroup, and then go retrieve them again from my feature layer, and modify those instances' attributes, in order for SaveEdits() to work? Perhaps what I'm trying to accomplish isn't possible. If that's the case, I have some alternate workarounds that I can explore. It would be cool, though, if I could use the existing API to accomplish this task. Thanks! Brooks
... View more
08-24-2010
03:01 PM
|
0
|
7
|
947
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|