2011-07-25 79 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文件,對不起。沒有使用太多。