Facile, mais ne le dites à personne…
10ans | 17 juillet 2009A la question :
transformer du wkt en shp dans une appli en vb pour arcview3.2
Voilà la réponse …secrète !
Le « secret » pour transformer du WKT en entités (dans notre cas en objets ESRI.MapObjects) passe par les expressions régulières disponibles avec la référence « Microsoft VBScript Regular Expression
5.5 » (« C:WINDOWSsystem32vbscript.dll ») normalement présente surwindows XP.Public Const CoordPattern =
« (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)) »
Public Const PointPattern = « ( » & CoordPattern & « ( + » &
CoordPattern & « ){1,2}) »‘———
‘ Methode : GetPoints
‘ Entrée : Une chaine WKT de Points
‘ Sortie : Une MatchCollection de points de type string
‘ Description : Extrait les points d’une chaine. Les points
peuvent
‘ être de type 2D ou 3D et les coordonnées sont
séparés
‘ par des espaces.
‘ Un Point 3D pourrait avoir cette forme : (10.0 15
0)
‘
Private Function GetPoints(ByVal Str As String) As MatchCollection
Dim Matches As MatchCollection
Dim Reg As New RegExp
Reg.Global = TrueReg.Pattern = PointPattern
Set Matches = Reg.Execute(Str)
Set GetPoints= Matches‘– On affiche les points
Dim Mtch As Match
For Each Mtch In Matches
Debug.Print « Point = » & Mtch.Value
Next
End FunctionA partir de cette collection de points il est facile de « reconstruire » une collection de Points MapObject, donc des lignes et des polygones.
Commentaires récents