Dari dulu saya selalu bertanya-tanya, gimana yah caranya bikin spatial object di .NET, supaya bisa di-insert ke SQL Server 2008. Selama ini sample code yang saya temui, seperti SpatialViewer hanya menunjukkan konversi spatial object yang dibuat pada sebuah drawing area menjadi SQL statement. Lalu SQL itu di-copy, paste di SSMS untuk kemudian di-execute. Hal ini tentunya almost impossible dilakukan di dunia nyata.
Ternyata caranya sangat mudah. Pertama, kita harus punya Microsoft SQL Server Management Objects yang bisa diunduh disini.
Selanjutnya setelah terpasang tambahkan reference Microsoft.SQLServer.Types.dll ke project yang kita buat. Object geometry berada dalam class SqlGeometry sedangkan object Geography dalam SqlGeography. Dan berikut adalah contoh membuat sebuah polygon.
Microsoft.SqlServer.Types.SqlGeometry geometry = new Microsoft.SqlServer.Types.SqlGeometry();
Microsoft.SqlServer.Types.SqlGeometryBuilder builder = new Microsoft.SqlServer.Types.SqlGeometryBuilder();
builder.SetSrid(4326);
builder.BeginGeometry(Microsoft.SqlServer.Types.OpenGisGeometryType.Polygon);
builder.BeginFigure(10, 10);
builder.AddLine(120, 10);
builder.AddLine(120, 120);
builder.AddLine(10, 120);
builder.AddLine(10, 10);
builder.EndFigure();
builder.EndGeometry();
geometry = builder.ConstructedGeometry;