public void Intersect(CPPOGREnvelope sOther) { if (Intersects(sOther)) { if (IsInit()) { MinX = Math.Max(MinX, sOther.MinX); MaxX = Math.Min(MaxX, sOther.MaxX); MinY = Math.Max(MinY, sOther.MinY); MaxY = Math.Min(MaxY, sOther.MaxY); } else { MinX = sOther.MinX; MaxX = sOther.MaxX; MinY = sOther.MinY; MaxY = sOther.MaxY; } } else { MinX = double.MinValue; MaxX = -double.MaxValue; MinY = double.MaxValue; MaxY = -double.MaxValue; } }
public void Merge(CPPOGREnvelope sOther) { MinX = Math.Min(MinX, sOther.MinX); MaxX = Math.Max(MaxX, sOther.MaxX); MinY = Math.Min(MinY, sOther.MinY); MaxY = Math.Max(MaxY, sOther.MaxY); }
public List <NoteData> SpatialQuery(CPPOGREnvelope env) { var r = new List <NoteData>(); Enyim.Collections.Envelope e = new Enyim.Collections.Envelope(env.MinX, env.MinY, env.MaxX, env.MaxY); spatialquery.Find(e, true, ref r); return(r); }
public void ResetResolution(CPPOGREnvelope m, CPPOGREnvelope v) { view = v; map = m; double RoH = map.GetHeight() / view.GetHeight(); double RoW = map.GetWidth() / view.GetWidth(); resolution = RoH > RoW ? RoH : RoW; }
public void FullExtent() { var env = model.GetEnvelpoe(); CPPOGREnvelope viewsize = new CPPOGREnvelope(0, 0, Screen.width, Screen.height); viewer.ResetResolution(utils.ECEnvlope2CPP(env), viewsize); viewer.Init(); model.SetSpatialFilterRect(env); viewer.ResetStandardRate(); }
public static CPPOGREnvelope GetViewerEnvelope() { CPPOGREnvelope env = new CPPOGREnvelope(); env.MinX = 0; env.MaxX = Screen.width; env.MinY = 0; env.MaxY = Screen.height; return(env); }
public static CPPOGREnvelope GetOrthographicCameraEnvelope() { var pos = Camera.main.transform.position; var wh = GetCameraWH(); CPPOGREnvelope env = new CPPOGREnvelope(); env.MinX = pos.x - wh.x * 0.5f; env.MaxX = env.MinX + wh.x; env.MinY = pos.y - wh.y * 0.5f; env.MaxY = env.MinY + wh.y; return(env); }
void SurfaceSpatialQuery(List <Vector2D> lst, SpatialRelation_TYPE t) { Geometry poly = new Geometry(wkbGeometryType.wkbPolygon); Geometry lr = new Geometry(wkbGeometryType.wkbLinearRing); foreach (var item in lst) { lr.AddPoint_2D(item.x, item.y); } lr.CloseRings(); poly.AddGeometryDirectly(lr); Envelope ogrenv = new Envelope(); poly.GetEnvelope(ogrenv); CPPOGREnvelope env = new CPPOGREnvelope(); env.MinX = ogrenv.MinX; env.MinY = ogrenv.MinY; env.MaxX = ogrenv.MaxX; env.MaxY = ogrenv.MaxY; var r = model.SpatialQuery(env); ogrenv.Dispose(); foreach (var item in r) { var other = item.fea.GetGeometryRef(); bool r2 = false; if (t == SpatialRelation_TYPE.hhhwSRT_Intersect) { r2 = utils.Intersects(poly, other); } else if (t == SpatialRelation_TYPE.hhhwSRT_Within) { r2 = utils.Within(poly, other); } if (r2) { ss.Add(item); } } poly.Dispose(); }
void PointSpatialQuery(Vector2D pt) { CPPOGREnvelope env = new CPPOGREnvelope(); env.MinX = pt.x; env.MinY = pt.y; env.MaxX = pt.x; env.MaxY = pt.y; var r = model.SpatialQuery(env); Geometry point = new Geometry(wkbGeometryType.wkbPoint); point.SetPoint_2D(0, pt.x, pt.y); foreach (var item in r) { var other = item.fea.GetGeometryRef(); bool r2 = utils.Within(other, point); if (r2) { ss.Add(item); } } point.Dispose(); }
public bool Contains(CPPOGREnvelope other) { return(MinX <= other.MinX && MinY <= other.MinY && MaxX >= other.MaxX && MaxY >= other.MaxY); }
public bool Intersects(CPPOGREnvelope other) { return(MinX <= other.MaxX && MaxX >= other.MinX && MinY <= other.MaxY && MaxY >= other.MinY); }