@@ -134,13 +134,99 @@ public void TestSTMakePointM()
134134 {
135135 using ( var db = new PostGisTestDataConnection ( TestDatabaseConnectionString ) )
136136 {
137- db . TestGeometries . Value ( g => g . Id , 1 ) . Value ( p => p . Geometry , ( ) => GeometryConstructors . STMakePointM ( 10 , 20 , - 999 ) ) . Insert ( ) ;
137+ db . TestGeometries
138+ . Value ( g => g . Id , 1 )
139+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STMakePointM ( 10 , 20 , - 999 ) )
140+ . Insert ( ) ;
138141
139142 var point1 = db . TestGeometries . Where ( g => g . Id == 1 ) ;
140143 Assert . AreEqual ( 10 , point1 . Select ( g => g . Geometry . STX ( ) ) . Single ( ) , 0.1 ) ;
141144 Assert . AreEqual ( 20 , point1 . Select ( g => g . Geometry . STY ( ) ) . Single ( ) , 0.1 ) ;
142145 Assert . AreEqual ( - 999 , point1 . Select ( g => g . Geometry . STM ( ) ) . Single ( ) , 0.1 ) ;
143146 }
144147 }
148+
149+ [ Test ]
150+ public void TestSTMakePolygon ( )
151+ {
152+ const string Wkt1 = "LINESTRING(75.15 29.53 1,77 29 1,77.6 29.5 1, 75.15 29.53 1)" ;
153+ const string Wkt2 = "LINESTRINGM(75.15 29.53 1,77 29 1,77.6 29.5 2, 75.15 29.53 2)" ;
154+
155+ using ( var db = new PostGisTestDataConnection ( TestDatabaseConnectionString ) )
156+ {
157+ db . TestGeometries
158+ . Value ( g => g . Id , 1 )
159+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STMakePolygon ( GeometryInput . STGeomFromText ( Wkt1 ) ) )
160+ . Insert ( ) ;
161+
162+ db . TestGeometries
163+ . Value ( g => g . Id , 2 )
164+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STMakePolygon ( GeometryInput . STGeomFromText ( Wkt2 ) ) )
165+ . Insert ( ) ;
166+
167+ var result1 = db . TestGeometries . Where ( g => g . Id == 1 ) ;
168+ Assert . AreEqual ( "POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))" ,
169+ result1 . Select ( g => g . Geometry . STAsEWKT ( ) ) . Single ( ) ) ;
170+
171+ var result2 = db . TestGeometries . Where ( g => g . Id == 2 ) ;
172+ Assert . AreEqual ( "POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))" ,
173+ result2 . Select ( g => g . Geometry . STAsEWKT ( ) ) . Single ( ) ) ;
174+ }
175+ }
176+
177+ [ Test ]
178+ public void TestSTPolygon ( )
179+ {
180+ const string Wkt1 = "LINESTRING(75 29, 77 29, 77 29, 75 29)" ;
181+ const string Wkt2 = "LINESTRING(75 29 1, 77 29 2, 77 29 3, 75 29 1)" ;
182+
183+ using ( var db = new PostGisTestDataConnection ( TestDatabaseConnectionString ) )
184+ {
185+ db . TestGeometries
186+ . Value ( g => g . Id , 1 )
187+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STPolygon ( GeometryInput . STGeomFromText ( Wkt1 ) , SRID4326 ) )
188+ . Insert ( ) ;
189+
190+ db . TestGeometries
191+ . Value ( g => g . Id , 2 )
192+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STPolygon ( GeometryInput . STGeomFromText ( Wkt2 ) , SRID4326 ) )
193+ . Insert ( ) ;
194+
195+ var result1 = db . TestGeometries . Where ( g => g . Id == 1 ) ;
196+ Assert . AreEqual ( "POLYGON((75 29,77 29,77 29,75 29))" ,
197+ result1 . Select ( g => g . Geometry . STAsText ( ) ) . Single ( ) ) ;
198+
199+ var result2 = db . TestGeometries . Where ( g => g . Id == 2 ) ;
200+ Assert . AreEqual ( "SRID=4326;POLYGON((75 29 1,77 29 2,77 29 3,75 29 1))" ,
201+ result2 . Select ( g => g . Geometry . STAsEWKT ( ) ) . Single ( ) ) ;
202+ }
203+ }
204+
205+ [ Test ]
206+ public void TestSTTileEnvelope ( )
207+ {
208+ using ( var db = new PostGisTestDataConnection ( TestDatabaseConnectionString ) )
209+ {
210+ db . TestGeometries
211+ . Value ( g => g . Id , 1 )
212+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STTileEnvelope ( 2 , 1 , 1 ) )
213+ . Insert ( ) ;
214+
215+ db . TestGeometries
216+ . Value ( g => g . Id , 2 )
217+ . Value ( p => p . Geometry , ( ) => GeometryConstructors . STTileEnvelope ( 3 , 1 , 1 , GeometryConstructors . STMakeEnvelope ( - 180 , - 90 , 180 , 90 , SRID4326 ) ) )
218+ . Insert ( ) ;
219+
220+ var result1 = db . TestGeometries . Where ( g => g . Id == 1 ) ;
221+ Assert . AreEqual ( "POLYGON((-10018754.1713945 0,-10018754.1713945 10018754.1713945,0 10018754.1713945,0 0,-10018754.1713945 0))" ,
222+ result1 . Select ( g => g . Geometry . STAsText ( ) ) . Single ( ) ) ;
223+ Assert . AreEqual ( 3857 ,
224+ result1 . Select ( g => g . Geometry . STSrId ( ) ) . Single ( ) ) ;
225+
226+ var result2 = db . TestGeometries . Where ( g => g . Id == 2 ) ;
227+ Assert . AreEqual ( "POLYGON((-135 45,-135 67.5,-90 67.5,-90 45,-135 45))" ,
228+ result2 . Select ( g => g . Geometry . STAsText ( ) ) . Single ( ) ) ;
229+ }
230+ }
145231 }
146- }
232+ }
0 commit comments