2011-07-25 47 views
1

我有一个由嵌在画布路径的一些基于XAML图表对象例如转换XAML到SHAPEFILE或SqlGeometry格式

<Canvas x:Name="c1" Width="55.2533" Height="18.2933" Canvas.Left="194.606" Canvas.Top="194.131"> 
<Path x:Name="Path_5" Width="8.02666" Height="13.44" Canvas.Left="0" Canvas.Top="0.559998" Stretch="Fill" Fill="#FF000000" Data="......etc"/> 
</Canvas> 

是否有方法/工具将XAML转换为ShapeFile或SqlGeometry数据?我需要进行转换,因为我想在仅绑定到ShapeFiles或SqlGeometry数据的第三方地图控件中显示图形。

任何帮助,将不胜感激。

+0

需要更多一点的信息。我看到你想要去一张地图,这些点已经是经纬度坐标了吗?你是在一个客户端/服务器环境中,还是严格的Silverlight应用程序?你是否已经单独记住了分数,或者你是否从画布中获得了分数? (即它们是否是用户生成的?) –

+0

这完全是一个Silverlight应用程序。我们正在使用Infragistics地图控件,并希望使用它来显示火车线的各种图表(目前通过Expression Blend在XAML中设计)等。我们没有纬度/经度坐标。理想情况下,我们希望以相同的形状文件结束,以便我们可以使用Infragistics控件。我发现一个有趣的文章(http://channel9.msdn.com/Learn/Courses/SQL2008R2TrainingKit/SpatialSupport/UsingSpatialDataInManagedCodeLab/Exercise-1-Drawing-Spatial-Data)油墨斯托克斯转换成SqlGeometry类型,然而,我们的图使用路径而不是笔画。 –

回答

0

做的第一件事是到提取路径点。然后你需要制作你的形状。

抵达几点:stackoverflow answer描述了改变形状,可是你看如何从路径获得积分。

建筑物形状:

俊男使用SqlGeometry使用Silverlight:

我想答案的一部分,是你不能去SqlGeometry直接在Silverlight。您的示例使用的Microsoft.SqlServer.Types不是为Silverlight运行时构建的。如果你要服务这将是没有问题的,该服务可以使用完整的.NET框架中您可以使用路径指向建立一个知名的文本字符串,然后用直接去sqlGeometry

SqlGeometry newGeom = SqlGeometry.STGeomFromText(wktstring,SRID).MakeValid();

最好的最好的是尝试创建一个shape文件

恐怕我不能帮你创建一个shape文件,对不起。没有使用太多。