2011-07-25 5 views
1

J'ai quelques diagrammes basés sur XAML qui sont constitués de chemins incorporés dans des objets Canvas, par ex.Convertir les formats XAML aux formats ShapeFile ou 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> 

est-il un moyen/outil pour convertir le XAML soit un ShapeFile ou des données SqlGeometry? J'ai besoin de convertir comme je veux afficher le graphique dans un contrôle de carte tiers qui se lie uniquement aux données ShapeFiles ou SqlGeometry.

Toute aide serait appréciée.

+0

Besoin d'un peu plus d'informations. Je vois que vous voulez aller à une carte, les points sont-ils déjà des coordonnées lat/long? Êtes-vous dans un environnement client/serveur, ou strictement une application Silverlight? Avez-vous déjà les points séparément dans la mémoire, ou vous sont donnés les points de la toile? (c'est-à-dire sont-ils générés par l'utilisateur?) –

+0

Il s'agit strictement d'une application Silverlight. Nous utilisons le contrôle de carte Infragistics et voulons l'utiliser pour afficher divers diagrammes de lignes de train (actuellement conçus en XAML via Expression Blend), etc. Nous n'avons pas de coordonnées lat/long. Idéalement, nous voulons finir avec le fichier de forme équivalent afin que nous puissions utiliser le contrôle Infragistics. J'ai trouvé un article intéressant (http://channel9.msdn.com/Learn/Courses/SQL2008R2TrainingKit/SpatialSupport/UsingSpatialDataInManagedCodeLab/Exercise-1-Drawing-Spatial-Data) pour convertir Ink Stokes en types SqlGeometry, cependant, nos diagrammes utilisent des chemins et pas Strokes. –

Répondre

0

La première chose à faire serait d'extraire les points de chemin. Ensuite, vous devez produire votre forme.

POINTS: RENDRE cette stackoverflow answer décrit les modifier une forme, mais vous voyez comment obtenir les points d'un chemin.

CONSTRUCTION FORME:

SqlGeometry utilisation « Cant avec Silverlight:

Je pense qu'une partie de la réponse est que vous ne pouvez pas aller à SqlGeometry directement dans silverlight. Votre exemple utilise Microsoft.SqlServer.Types, qui n'a pas été créé pour l'environnement d'exécution Silverlight. Si vous alliez à un service ce ne serait pas un problème, le service pourrait utiliser le framework .NET complet et vous pouvez utiliser les points de chemin pour construire une chaîne de texte bien connue, puis aller directement à un sqlGeometry utilisant

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

meilleur mieux est d'essayer de créer un shapefile

Je crains que je ne peux pas vous aider à créer un shapefile, désolé. Je ne les ai pas beaucoup utilisés.

Questions connexes