@@ -134,13 +134,99 @@ public void TestSTMakePointM()
134
134
{
135
135
using ( var db = new PostGisTestDataConnection ( TestDatabaseConnectionString ) )
136
136
{
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 ( ) ;
138
141
139
142
var point1 = db . TestGeometries . Where ( g => g . Id == 1 ) ;
140
143
Assert . AreEqual ( 10 , point1 . Select ( g => g . Geometry . STX ( ) ) . Single ( ) , 0.1 ) ;
141
144
Assert . AreEqual ( 20 , point1 . Select ( g => g . Geometry . STY ( ) ) . Single ( ) , 0.1 ) ;
142
145
Assert . AreEqual ( - 999 , point1 . Select ( g => g . Geometry . STM ( ) ) . Single ( ) , 0.1 ) ;
143
146
}
144
147
}
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
+ }
145
231
}
146
- }
232
+ }
0 commit comments