Hi,
I take the Dynamic Layer example and i try to replace the points by the polylines.
internal
List<PolylineData> GetFeatures(
double
upperLeftLat,
double
upperLeftLong,
double
lowerRightLat,
double
lowerRightLong,
GeomType storeType)
{
try
{
PolylineData polyline1 =
new
PolylineData()
{
ShapeFill =
new
MapShapeFill()
{
Stroke =
new
SolidColorBrush(Colors.Red),
StrokeThickness = 2
}
};
LocationCollection pt =
new
LocationCollection
{
new
Location(44.6957539183824, 23.3327663758679),
new
Location(44.1429369264591, 24.7498095849434),
new
Location(44.5131732087098, 27.4611884843576),
new
Location(45.2073941930888, 27.9275176988258)
};
polyline1.Points = pt;
_listPolylineDatas.Add(polyline1);
return
_listPolylineDatas;
But i have an exception : {"Must create DependencySource on same Thread as the DependencyObject."}
Do you have an solution for this issue ?
Thank you
7 Answers, 1 is accepted
0
Julien
Top achievements
Rank 1
answered on 09 Feb 2016, 01:13 PM
The issue comes from this line : request.CompleteItemsRequest(list); Do you have a solution for the dynamic data ?
0
Hello Julien,
I wasn't able to reproduce the reported exception. However, keep in mind that the MapShapData object as PolylineData are designed to work asynchronously inside a VisualizationLayer. On the other hand the DynamicLayer works on a single thread which might causes the issue.
I recommend you to use MapShape along with the DynamicLayer or MapShapeData only with the VisualizationLayer. The VisualizationLayer is the new shapes rendering engine of the map which combines the old layers (VirtualizationLayer, DynamicLayer, InformationLayer). The new layer has improved performance and also few new features as reading shape files async and built-in selection.
Regards,
Martin
Telerik
I wasn't able to reproduce the reported exception. However, keep in mind that the MapShapData object as PolylineData are designed to work asynchronously inside a VisualizationLayer. On the other hand the DynamicLayer works on a single thread which might causes the issue.
I recommend you to use MapShape along with the DynamicLayer or MapShapeData only with the VisualizationLayer. The VisualizationLayer is the new shapes rendering engine of the map which combines the old layers (VirtualizationLayer, DynamicLayer, InformationLayer). The new layer has improved performance and also few new features as reading shape files async and built-in selection.
Regards,
Martin
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Julien
Top achievements
Rank 1
answered on 09 Feb 2016, 01:44 PM
OK. Can you share an example ?
Thx
0
Hello,
You can take a look at the Items Virtualization and Map Shapes Virtualization help articles. The UI Virtualization demo also will be helpful.
Regards,
Martin
Telerik
You can take a look at the Items Virtualization and Map Shapes Virtualization help articles. The UI Virtualization demo also will be helpful.
Regards,
Martin
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Julien
Top achievements
Rank 1
answered on 09 Feb 2016, 02:19 PM
Thank you Martin for your information.
internal
List<PolylineData> GetPolylineDatas(
double
upperLeftLat,
double
upperLeftLong,
double
lowerRightLat,
double
lowerRightLong,
GeomType storeType)
{
PolylineData polyline1 =
new
PolylineData()
{
ShapeFill =
new
MapShapeFill()
{
Stroke =
new
SolidColorBrush(Colors.Red),
StrokeThickness = 2
}
};
LocationCollection pt =
new
LocationCollection
{
new
Location(44.6957539183824, 23.3327663758679),
new
Location(44.1429369264591, 24.7498095849434),
new
Location(44.5131732087098, 27.4611884843576),
new
Location(45.2073941930888, 27.9275176988258)
};
polyline1.Points = pt;
_listPolylineDatas.Add(polyline1);
return
_listPolylineDatas;
After this function, i call SetPolylinesFeatures:
internal
void
SetPolylinesFeatures(List<PolylineData> list, MapItemsRequestEventArgs request)
{
request.CompleteItemsRequest(list);
}
And i have this issue: Must create DependencySource on same Thread as the DependencyObject
0
Julien
Top achievements
Rank 1
answered on 10 Feb 2016, 01:09 PM
Do you have a solution ?
Thank you
0
Hello Julien,
It seems that the reported exception is thrown because the ShapeFill of the PolylineData object is set before the polyline is rendered in the visualization layer. The ShapeFill property accepts an object of type MapShapeFill which is a dependency object bound in the template of the map shape data elements. As the error states you cannot create a DependencyObject (the UIElement that represents the shape) on a different thread than the one on which is created the dependency source (the MapShapeFill object). On the other hand the layer works with the MapShapeData objects in different threads which causes the issue.
To work this around you can avoid setting the MapShapeFill property of the MapShapeData elements and instead use the ShapeFill property of the VisualizationLayer. Also, you can take a look at the Graph Colorizer and Colorizer help articles.
Regards,
Martin
Telerik
It seems that the reported exception is thrown because the ShapeFill of the PolylineData object is set before the polyline is rendered in the visualization layer. The ShapeFill property accepts an object of type MapShapeFill which is a dependency object bound in the template of the map shape data elements. As the error states you cannot create a DependencyObject (the UIElement that represents the shape) on a different thread than the one on which is created the dependency source (the MapShapeFill object). On the other hand the layer works with the MapShapeData objects in different threads which causes the issue.
To work this around you can avoid setting the MapShapeFill property of the MapShapeData elements and instead use the ShapeFill property of the VisualizationLayer. Also, you can take a look at the Graph Colorizer and Colorizer help articles.
Regards,
Martin
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items