Suite

Bibliothèque .NET pour convertir KML en WKT ?

Bibliothèque .NET pour convertir KML en WKT ?


Quelqu'un connaît-il une bibliothèque OpenSource .NET gratuite que je pourrais utiliser pour convertir KML en WKT ?

Je sais que je peux utiliser des openlayers et qu'il existe de nombreuses possibilités JavaScript, mais je dois le faire en back-end.


Que diriez-vous d'utiliser les liaisons OGR .NET de GDAL ?

http://bjarte.com/post/gdal-in-csharp

et son pilote KML via libkml http://www.gdal.org/ogr/drv_libkml.html

Alternativement, vous pouvez utiliser libkml directement.


Votre autre option consiste à utiliser NetTopologySuite qui est un port de la version Java, il prend en charge la lecture/écriture WKT.

Nous avons ensuite pris le Kml xsd, en utilisant les outils ms fournis, l'avons converti en classes que le sérialiseur XML comprend, puis avons parcouru l'arbre en convertissant les nœuds qui nous intéressent en NTS IGeometry que le reste de notre système utilisait.


Depuis que j'utilise Post GIS, j'ai fini par le faire pour moi:

Si j'ai besoin de convertir deux fonctionnalités KML, je lui enverrai une sélection comme suit :

SELECTIONNER ST_AsText(ST_GeomFromKML('    120.801170655354,14.632489189195,0 120.782956111463,14.5427894930054,0 120.76474480255,14.4530886861418,0 120.925219414103,14.4220920136416,0 120.943496765891,14.5117984961193,0 120.961777812394,14.6015038368517,0 120.801170655354,14.632489189195,0 ')), ST_AsText(ST_GeomFromKML('    121.087312420981,14.6013782055702,0 121.071223131928,14.5142178677531,0 121.244070778376,14.4838207663532,0 121.260233278214,14.571006143522,0 121.087312420981,14.6013782055702,0 '))

Résultat:

"POLYGON ((120,801170655354 14.632489189195,120.782956111463 14.5427894930054,120.76474480255 14.4530886861418,120.925219414103 14.4220920136416,120.943496765891 14.5117984961193,120.961777812394 14.6015038368517,120.801170655354 14,632489189195))"; "POLYGON ((121,087312420981 14.6013782055702,121.071223131928 14.5142178677531,121.244070778376 14.4838207663532,121.260233278214 14.571006143522,121.087312420981 14,6013782055702))"

Voir la vidéo: Making KML With Google Earth