|
POST
|
You can download the source for KmlLayer here and tinker with it. Already done so 😄
... View more
11-10-2011
07:29 AM
|
0
|
0
|
1336
|
|
POST
|
Apparently I have not been notified when this thread was replied to. I've updated to version 2.2, but the same problem still persists. Is there any way to tell the system to use unicode encoding, in much the same way as you can with setting the culture for the thread? For some reason I doubt it, though it is worth asking anyway. I will see what the beta for 3.0 can handle, as I don't feel like digging too deep into this right now. It would be very cool to get this working
... View more
11-10-2011
07:08 AM
|
0
|
0
|
1336
|
|
POST
|
Hi I just noticed that when I change an attribute on a Graphic (or just set the value to the same value it was), the event DictionaryChangedEvent is raised from the ObservableDictionary. In the Graphic, the DataContext is reassigned, and it might cause flicker or updates. I have not observed problems like that, but I started to wonder if there might be any penalties and unnecessary rebinding. It seems to me that when the DictionaryChangedEvent is raised, the value should actually have changed. So if newValue and oldValue are equal (Comparer.Default.Compare(e.OldValue, e.NewValue) == 0) the event should not be triggered. Just a suggestion for a future release.
... View more
03-23-2011
07:47 AM
|
0
|
1
|
1080
|
|
POST
|
I have quite a few more features than 15. Just wanted to illustrate I got the flickering even with so few features. There will be frequent updates (every 5 - 45 second per feature). Clustering has been disabled because of the flickering.
... View more
01-24-2011
10:09 PM
|
0
|
0
|
1032
|
|
POST
|
I assumed so, but do you plan to do anything about the flickering.
... View more
01-24-2011
10:26 AM
|
0
|
0
|
1032
|
|
POST
|
I tried creating a custom clusterer (derived from GraphicsClusterer) to do the same as the FlareClusterer but without the flare effect. I then noticed that when I change the geometry of Graphics (realtime update from server where the Graphic geometry changes). Whenever this happens, all the Graphic objects on the screen flickers. The FlareClusterer gives the same effect. When removing any clusterer from the layer the rendering is smooth. I can't use clustering if it causes this kind of flickering. Is this the way clusterers works, or is there some inefficiencies in the clusterer that causes this? There are less than 15 graphics in all the layers being displayed, so this should not really cause poor performance. It appears as if the whole layer is cleared when clustering is reapplied after a change of geometry, and then redrawn, instead of only the features that have been affected by the change. I would think that would leave an even better performance perception. And/or when clustering is enabled, draw to a backbuffer in an ascync call, and then replace the entire content of the layer. Clustering as it is does not not perform well in a dynamic context. Are there any workarounds for this, or plans for improving this feature? I use the latest release (2.1).
... View more
01-23-2011
08:03 AM
|
0
|
6
|
2013
|
|
POST
|
This is not possible. Basically you can't guarantee that the datacontext is applied up front. The reason for that is because of some UIVirtualization going on under the covers, and UIElements being reused so the datacontext can even change to a different Graphic after the element has rendered. When the datacontext does get set, your bindings should update accordingly. Do you know if there are any other workaround to get rid of the warning? A normal binding to, say a textblock, works just fine. The other scenarios mentioned do not. I suppose this is because of the timing for when the bindings are resolved, though I haven't looked into the plumbing behind this (logical tree vs visual tree?) The strange thing is that the binding works eventually. The december release IS the final release of v2.1. There are no public dates for v2.2 announced yet. Ahh, I thought it was just a pre-release or something 🙂 I hope non public releases/pre-releases to 2.2 is available at the same location if I would like to try it out? There are two bugs I'm hoping for a fix for (though I understand if you can't give an estimate for when they may be available). First is comma as the decimal separator for WmsLayer request when requesting WMS data. The other is another post I have in the forums regarding KML layers. In addition to a few other issues I've noted in different posts, which I hope have been posted in your issue tracker. As a developer I know the time vs bug fix and feature implementation is not always in our favor :o) Do you by any chance have an open issue tracker such as Jira where we can follow reported issues and their state? And/or perhaps report issues?
... View more
01-11-2011
10:57 AM
|
0
|
0
|
720
|
|
POST
|
Do you set the symbol's ControlTemplate inside GetSymbol()? Yes. ControlTemplate is assigned to the Symbol inside GetSymbol()
... View more
01-11-2011
10:38 AM
|
0
|
0
|
720
|
|
POST
|
Any path with the following applied to it. Add attribute Bearing to contain the value. I'll see if I can mock up a more complete sample if you can't reproduce. <Path.RenderTransform> <TransformGroup> <RotateTransform CenterX="0.5" CenterY="0.5" Angle="{Binding Attributes[Bearing], FallbackValue=0.0}" /> </TransformGroup> </Path.RenderTransform>
... View more
01-11-2011
10:31 AM
|
0
|
0
|
720
|
|
POST
|
Hi I've previously been working on a problem with dynamic centered offset for the symbol of a Graphic where the height and width of the symbol changes based on content. Post is linked to further down. I solved this using a custom IRenderer to produce a new symbol for each Graphic. I then fixed the offset of the symbol using my description from the same post (overrididing ArrangeOverride and measureOverride to calculate the offset of the symbol). However, there is a minor problem. Whenever a new symbol is created where I use i.e. binding to an attribute to the RenderTransform (rotateTransform), I get the following binding warning System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Attributes[Bearing]; DataItem=null; target element is 'RotateTransform' (HashCode=17661557); target property is 'Angle' (type 'Double') the binding itself works, though not on the first attempt. The same is the case if I have i.e. a GradientBrush's GradientStop bind to an attribute. From the different suggestions I've seen for resolving this issue in other scenarios, they all suggest setting the DataContext before InitializeComponent() (in other words before applying the ControlTemplate). Is this something you could perhaps fix? From previous attempts where I don't create a new symbol (with controltemplate) for each Graphic, the same warning is output in visual studio, though only once for each symbol where I use this kind of binding. The following quote is a reminder of a suggestion from the post Location of PictureMarkerSymbol vs MarkerSymbol I was hoping to get some feedback on if it will be included soon or not. I'm looking into the links you sent me. It seems this is a thing more people would be interested in, and perhaps there could be a property on the MarkerSymbol for with an enum with the following values: Manual (uses manual offset values), CenterX (centers on the X axis), CenterY (centers on the Y axis), CenterBoth (center both X and Y). Pretty much like the SizeToContent property of a Window. Also, do you have an estimate for the next pre-release of 2.1? Or final release. I currently use the December build of 2.1. Bjørnar Sundsbø
... View more
01-11-2011
09:57 AM
|
0
|
6
|
841
|
|
POST
|
I haven't tried this, and it is just an idea from the top of my head. For the width and height of the Ellipse, you could try to create a converter as using the following binding:
<esriSymbols:MarkerSymbol x:Name="MarkerSymbol_EOL">
<esriSymbols:MarkerSymbol.ControlTemplate>
<ControlTemplate>
<Canvas>
<Ellipse Height="{Binding Path=Resolution, ElementName=MyMap}, Converter={StaticResource SizeConverter}, ConverterParameter={Binding ElementName=MyMap}"
...
SizeConverter takes in the resolution of the map which will trigger an update when the zoomlevel changes. As a parameter, pass in the map. Inside of the converter, try to use the maps MinimumResolution, MaximumResolution and Resolution to calculate the actual width and height for the ellipse. You probably might want to add some logic for levels so the symbol won't disappear or cover the whole map when zooming too far in or out. Bjørnar Sundsbø
... View more
12-08-2010
12:24 PM
|
0
|
0
|
654
|
|
POST
|
Thank you for reporting this. You must be using WMS service that is lower than v1.3. We'll try to get it fixed in future releases. Have you reported this to your issue tracker? I checked the December release, and this issue had not been resolved there.
... View more
12-07-2010
10:37 AM
|
0
|
0
|
904
|
|
POST
|
If I have one graphics visible in the visible extent, it works as it should. If multiple graphics are in the view, the graphics are not offset properly, and I can see them all jump when I change the label on one graphic. I assume the reason for this is that I use a SimpleRenderer for the layer, and it is the same instance of the MarkerSymbol used for all the Graphics. The offset applied to the Symbol is the last Graphic affected by the ArrangeOverride. I am curious in regards to any solution I apply here where no codebehind to duplicate the symbol or something similar will be affected by the dynamic offsett of the symbol (different offset for all graphics). I suppose I could create a new IRenderer where I create a new Symbol based on the Symbol property of the renderer, and return it from GetSymbol()
... View more
11-30-2010
01:52 PM
|
0
|
0
|
515
|
|
POST
|
The IRenderer was a wash. I was unable to attach the actual object to the ControlTemplate and initialize it with the datacontext. Hence, not able to get the width. Using the Custom Control approach, Since anything I arrange inside of this control are children of the controltemplate. I tried to get the ancestor from the Custom Control, which naturally is the internal GraphicElement. I then use reflection to get the GraphicElement and it's Symbol property. If it is a MarkerSymbol, set the X and Y offset. It seems to work, though I haven't yet tried to change the text of the label to see if it repositions correctly. Reflection adds an undesirable overhead, though it can be reduced by reflecting the type in a static constructor, and accessing the propertyInfos and such from ArrangeOverride. Hopefully this will not affect all the symbols on the layer (one long label causes all the other symbols to have the same offset). Will update on progress.
... View more
11-30-2010
12:53 PM
|
0
|
0
|
515
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | 05-09-2015 09:20 AM | |
| 1 | 05-09-2015 01:36 PM |
| Online Status |
Offline
|
| Date Last Visited |
11-11-2020
02:23 AM
|