Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 public GisHandTool(GisViewer v)
 {
     viewer = v;
 }
Exemplo n.º 6
0
    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);
    }