本文整理汇总了C#中SqlGeometry.STIsValid方法的典型用法代码示例。如果您正苦于以下问题:C# SqlGeometry.STIsValid方法的具体用法?C# SqlGeometry.STIsValid怎么用?C# SqlGeometry.STIsValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SqlGeometry
的用法示例。
在下文中一共展示了SqlGeometry.STIsValid方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: lineLocating
public lineLocating()
{
#region //这里用的是通用方法
ExcuteSqlScript es = new ExcuteSqlScript();
//es.insertSqltableIntoMapinfo(tableName);
es.createLocatingTable(tableName);
#endregion
eventsLookup = dc.EventLocating.ToLookup(e => e.events);
eventsKey = eventsLookup.Select(e => e.Key);
foreach (var p in eventsKey)
{
foreach (var q in eventsLookup[p])
{
// Console.WriteLine(".....{0}...{1}....{2}", q.events, 3 * Math.Pow(10, -8), q.SP_GEOMETRY.STArea());
//这里剔除天线高度为0的小区,避免定位干扰?
if (q.SP_GEOMETRY.STArea() >3 * Math.Pow(10, -8))
{
//Console.WriteLine("面接多少.....{0}....", q.SP_GEOMETRY.STArea());
mrPointsgeom = mrPointsgeom.STUnion(q.SP_GEOMETRY);
events = q.events;
}
}
redindex++;
if (redindex > 255) redindex = 0;
pencolor = redindex * 65535 + greenindex * 256 + blueindex;
pen = "Pen (1, 2," + pencolor.ToString() + ")";
mrPointsgeom = mrPointsgeom.STConvexHull().STCentroid().STPointN(1);
if (!mrPointsgeom.STIsValid()) continue;
tsgeog = SqlGeography.STGeomFromWKB(mrPointsgeom.STAsBinary(), 4326);
if (tsgeog.IsNull) continue;
tsgeog = SqlGeography.Point((double)tsgeog.Lat, (double)tsgeog.Long, 4326);
tsgeog = tsgeog.STBuffer(1);
mrLinesgeom = SqlGeometry.STGeomFromWKB(tsgeog.STAsBinary(), 4326);
Console.WriteLine(mrLinesgeom.STArea());
insertLocating2Sql(events, pen, mrLinesgeom);
}
}
示例2: ToSharpMapGeometry
public static SMGeometry ToSharpMapGeometry(SqlGeometry geometry, Factory factory)
{
if (geometry == null) return null;
var fact = factory ?? Services.CreateGeometryFactory((int) geometry.STSrid);
if (geometry.STIsEmpty())
return fact.CreateGeometryCollection(null);
if (!geometry.STIsValid())
geometry.MakeValid();
OpenGisGeometryType geometryType = (OpenGisGeometryType)Enum.Parse(typeof(OpenGisGeometryType), (string)geometry.STGeometryType());
switch (geometryType)
{
case OpenGisGeometryType.Point:
return SqlGeometryToSharpMapPoint(geometry, fact);
case OpenGisGeometryType.LineString:
return SqlGeometryToSharpMapLineString(geometry, fact);
case OpenGisGeometryType.Polygon:
return SqlGeometryToSharpMapPolygon(geometry, fact);
case OpenGisGeometryType.MultiPoint:
return SqlGeometryToSharpMapMultiPoint(geometry, fact);
case OpenGisGeometryType.MultiLineString:
return SqlGeometryToSharpMapMultiLineString(geometry, fact);
case OpenGisGeometryType.MultiPolygon:
return SqlGeometryToSharpMapMultiPolygon(geometry, fact);
case OpenGisGeometryType.GeometryCollection:
return SqlGeometryToSharpMapGeometryCollection(geometry, fact);
}
throw new ArgumentException(string.Format("Cannot convert SqlServer '{0}' to Sharpmap.Geometry", geometry.STGeometryType()), "geometry");
}
示例3: GetGeography
private static SqlGeography GetGeography(SqlGeometry ring)
{
if (ring.STIsValid()) ring = ring.MakeValid();
return SqlGeography.STGeomFromWKB(ring.STUnion(ring.STStartPoint()).STAsBinary(), 4326);
}