using System;
using OSGeo.OGR;
/**
*
Title: GDAL C# wkt2wkb example.
* Description: A sample app for demonstrating the usage of ExportToWkb.
* @author Tamas Szekeres (szekerest@gmail.com)
* @version 1.0
*/
///
/// A C# based sample for demonstrating the usage of ExportToWkb.
///
class WKT2WKB {
public static void usage()
{
Console.WriteLine("usage example: wkt2wkb \"POINT(47.0 19.2)\"");
System.Environment.Exit(-1);
}
public static void Main(string[] args) {
if (args.Length != 1) usage();
/* -------------------------------------------------------------------- */
/* Register format(s). */
/* -------------------------------------------------------------------- */
Ogr.RegisterAll();
Geometry geom = Geometry.CreateFromWkt(args[0]);
int wkbSize = geom.WkbSize();
if (wkbSize > 0)
{
byte[] wkb = new byte[wkbSize];
geom.ExportToWkb( wkb );
Console.WriteLine( "wkt-->wkb: " + BitConverter.ToString(wkb) );
// wkb --> wkt (reverse test)
Geometry geom2 = Geometry.CreateFromWkb(wkb);
string geom_wkt;
geom2.ExportToWkt(out geom_wkt);
Console.WriteLine( "wkb->wkt: " + geom_wkt );
}
// wkt -- gml transformation
string gml = geom.ExportToGML();
Console.WriteLine( "wkt->gml: " + gml );
Geometry geom3 = Geometry.CreateFromGML(gml);
string geom_wkt2;
geom3.ExportToWkt(out geom_wkt2);
Console.WriteLine( "gml->wkt: " + geom_wkt2 );
}
}