public void ViewToMap(GisViewer v) { var min = v.ViewToMap(MinX, MinY); var max = v.ViewToMap(MaxX, MaxY); MinX = min.x; MinY = min.y; MaxX = max.x; MaxY = max.y; }
public void Redraw(GisViewer v) { lineRenderer.Reset(); props.Radius = 1.5f * (float)v.GetResolution(); foreach (var item in lst) { var geo = item.fea.GetGeometryRef().Clone(); v.TransformGeometry2View(ref geo); DrawGeometry(geo); geo.Dispose(); } lineRenderer.Apply(); }
public void Init(FastLineRenderer defaultRenderer, FastLineRenderer selectionRenderer) { Ogr.RegisterAll(); model = new GisModel(); viewer = new GisViewer(); viewer.Init(); fastrenderer = new GisRenderer(); fastrenderer.Init(defaultRenderer, 0.02f); ss = new GisSelectionSet(); ss.Init(selectionRenderer, 0.2f); GisOperatingToolSet.SetHost(this); optool = new GisOperatingToolSet(); optool.Init(viewer); }
public void Init(GisViewer v) { viewer = v; GisOperatingTool.SetHost(this); mapTools = new Dictionary <OperatingToolType, GisOperatingTool>(); mapTools.Add(OperatingToolType.GISHand, new GisHandTool(viewer)); mapTools.Add(OperatingToolType.GISPolyline, new GisPolylineTool()); mapTools.Add(OperatingToolType.GISPolygon, new GisPolygonTool()); mapTools.Add(OperatingToolType.GISPoint, new GisPointTool()); mapTools.Add(OperatingToolType.GISBoxSelect, new GisBoxSelect()); mapTools.Add(OperatingToolType.GISPointSelect, new GisPointSelect()); mapTools.Add(OperatingToolType.GISCircleSelect, new GisCircleSelect()); mapTools.Add(OperatingToolType.GISPolygonSelect, new GisPolygonSelect()); SetCurrentType(OperatingToolType.GISHand); sqtype = SpatialRelation_TYPE.hhhwSRT_Intersect; }
public GisHandTool(GisViewer v) { viewer = v; }
public static GameObject CreateModel(GisViewer viewer, Transform parent, Feature fea) { string dlmcx = "1";//fea.GetFieldAsString("DLMCX"); int dlmxctype = int.Parse(dlmcx) - 1; /* * 建筑基底 1 * 绿地 2 * 马路牙 3 * 人行道 4 * 水面 5 * 水泥路 6 * 停车位 7 * 装饰路 8 */ var geom = fea.GetGeometryRef(); // fea.GetGeometryRef().Buffer(1, 1).Simplify(0.5); viewer.TransformGeometry2View(ref geom); float ypos = 0; switch (dlmxctype) { case 0: ypos = UnityEngine.Random.Range(50.0f, 100.0f); ypos = UnityEngine.Random.Range(5.0f, 10.0f); break; case 1: ypos = 5; break; case 2: ypos = 8; break; case 3: ypos = 4; break; case 4: ypos = 3; break; case 5: ypos = 6; break; case 6: ypos = 6; break; case 7: ypos = 6; break; default: break; } // 创建顶面 var name = "fea_" + fea.GetFID().ToString(); GameObject go = new GameObject(name); go.transform.parent = parent; wkbGeometryType t = Ogr.GT_Flatten(geom.GetGeometryType()); switch (t) { case wkbGeometryType.wkbUnknown: break; case wkbGeometryType.wkbPoint: break; case wkbGeometryType.wkbPolygon: { Geometry linestring = geom.GetGeometryRef(0); AttachModel(go, linestring, ypos, dlmxctype); } break; case wkbGeometryType.wkbLineString: { AttachModel(go, geom, ypos, dlmxctype); } break; default: break; } geom.Dispose(); return(go); }