zoukankan      html  css  js  c++  java
  • 为MapX的某个图层添加一个矩形


    代码如下:

    // x1, y1, x2, y2为在地图中选定的两个点坐标

    // 分别作为要绘制矩形框的左下角和右上角两个点

    x1 
    = 20741.798;

    x2 
    = 20739.798;

    y1 
    = 3401.866;

    y2 
    = 3409.866;

    pt.Set(x1, y1);

    pts.Add(pt);

    pt.Set(x1, y2);

    pts.Add(pt);

    pt.Set(x2, y2);

    pts.Add(pt);

    pt.Set(x2, y1);

    pts.Add(pt);

    sty 
    = m_MapXFeature.GetStyle();// 获取Style

    lyr 
    = m_ctrlMapX.GetLayers().Item("TEMP1");// 获取要添加的图层

    DrawRect(lyr, pts, sty);
    // 调用DrawRect函数绘制矩形框



    // DrawRect函数,绘制矩形框

    void DrawRect(CMapXLayer lyr, CMapXPoints pts, CMapXStyle sty)

    {

    try {

    CMapXFeatureFactory fac;

    CMapXFeature ftr, ftr2;

    COleVariant vtPts, vtSty;



    fac 
    = m_ctrlMapX.GetFeatureFactory();

    // Points Variant

    vtPts.vt 
    = VT_DISPATCH;

    vtPts.pdispVal 
    = pts.m_lpDispatch;

    vtPts.pdispVal
    ->AddRef();

    // Style Variant

    vtSty.vt 
    = VT_DISPATCH;

    vtSty.pdispVal 
    = sty.m_lpDispatch;

    vtSty.pdispVal
    ->AddRef();



    ftr 
    = fac.CreateRegion(vtPts, vtSty);

    ftr2 
    = lyr.AddFeature(ftr);

    ftr2.Update();

    lyr.Refresh();

    }
     catch (COleDispatchException *e) {

    e
    ->ReportError();

    e
    ->Delete();

    }
     catch (COleException *e) {

    e
    ->ReportError();

    e
    ->Delete();

    }


    }


  • 相关阅读:
    剑指offer——用两个栈实现队列
    根据前序和中序重建二叉树、后序和中序重建二叉树
    归并排序
    排序
    快速排序(java版)
    List
    单链表的基本操作
    集合
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/strinkbug/p/683806.html
Copyright © 2011-2022 走看看