zoukankan      html  css  js  c++  java
  • qt环境下Mapx组建的编程---------regoin

    #include "widget.h"
    #include "ui_widget.h"
    
    #include <QPushButton>
    #include <QToolBar>
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        map(nullptr),
        pCMapXPoint(nullptr),pCMapXPoint1(nullptr),pCMapXPoint2(nullptr),
        pCMapFeaFactory(nullptr),
        pCMapXFeature(nullptr),
        pCMapStyle(nullptr),
        pCMapLayers(nullptr),
        pCMapLayer(nullptr),
    
        pCMapLine(nullptr),
        pCMapPoints(nullptr),
        pCMapParts(nullptr),
    
        pCMapArc(nullptr),
    
        pCMapXFeatureRegoin(nullptr),
        //坐标的变化
        pCMapXCoordSys(nullptr),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
        this->resize(1000,800);
    
        QPushButton *pButton = new QPushButton("tool",this);
        pButton->resize(70,23);
    
        //建立一个地图
        map = new MapSpace::Map("",this);
        //设置大小属性
        map->move(QPoint(10,25));
        map->resize(QSize(size().width()-20,size().height()-20));
    
        map->SetCurrentTool(MapSpace::ToolConstants::miPanTool);//鼠标工具
        map->setProperty("MousewheelSupport",2);//支持滚轮
     /* 显示一个小图标(旗子模样)*/
        pCMapLayers = map->Layers();
        pCMapLayers->AddGeoSetLayers("C:/mapx/MapX4/Maps/Captial.gst");
        pCMapLayer = pCMapLayers->CreateLayer("test");
    
    
        pCMapFeaFactory = map->FeatureFactory();
    
    
    
        //划一个区域。regoin
        pCMapXFeatureRegoin = pCMapFeaFactory->CreateRegion();//创建一个区域feature
        pCMapPoints = new MapSpace::CMapXPoints;
        pCMapPoints->setControl("MapX.Points.4");
        pCMapParts = pCMapXFeatureRegoin->Parts();
        pCMapXPoint = pCMapPoints->AddXY(120.07372, 29.35792);
        pCMapXPoint1 = pCMapPoints->AddXY(120.07270, 29.35780);
        pCMapXPoint2 = pCMapPoints->AddXY(120.07000, 29.35000);
    
        pCMapStyle = pCMapXFeatureRegoin->Style();
        //pCMapStyle->setControl("Mapx.Style.4");
        //pCMapStyle->SetRegionBackColor(200);
        //pCMapStyle->SetLineColor(117);
        pCMapStyle->SetRegionBorderWidthUnit(MapSpace::StyleUnitConstants::miStyleUnitTenthsOfPoint);
        pCMapStyle->SetRegionBorderWidth(35);//边界线条宽度,与上方函数一起使用
        pCMapStyle->SetRegionBorderColor(243);//边界颜色
        pCMapStyle->SetRegionColor(123);//背景颜色
       // pCMapStyle->SetRegionStyle(MapSpace::miPenSolid);
        pCMapStyle->SetRegionPattern(MapSpace::miPatternCross);
        //pCMapStyle->SetRegionTransparent(true);//用于至少两个图元之间
    
        pCMapParts->Add(pCMapPoints->asVariant().value<IDispatch*>());
        pCMapLayer->AddFeature(pCMapXFeatureRegoin->asVariant().value<IDispatch*>());
        map->ZoomTo(200,120.06272, 29.35522);
    }
    在加上圆形的图元
     1 void MainWindow::CMapxInit(){
     2     widget = new QAxWidget(this);
     3     widget->setControl(QString::fromUtf8("{9D6ED188-5910-11D2-98A6-00A0C9742CCA}"));
     4     widget->resize(size().width(),size().height());
     5 
     6     pCMapX = new CMapX(widget->asVariant().value<IDispatch*>());
     7     pCMapXLayer = pCMapX->Layers()->CreateLayer("aaa");
     8 
     9     pCMapXFeatureFactory = pCMapX->FeatureFactory();
    10     pCMapXFeaturePoint = pCMapXFeatureFactory->CreateSymbol();
    11 
    12     pCMapXPoint = pCMapXFeaturePoint->Point();
    13     pCMapXPoint->Set(120.06872,29.35692);
    14     //算出外接矩形的两个角坐标,一个在X轴上,一个在Y轴上
    15 
    16     pCMapXFeatureCircularRegion = pCMapXFeatureFactory->CreateCircularRegion(miCircleTypeMap,pCMapXPoint->asVariant().value<IDispatch*>(),1,0,1000);
    17     pStyle =  pCMapXFeatureCircularRegion->Style();
    18     pStyle->SetRegionColor(QColor(255,0,0));
    19 
    20     pCMapXLayer->AddFeature(pCMapXFeatureCircularRegion->asVariant().value<IDispatch*>());
    21 
    22     pCMapX->ZoomTo(10,120.06872,29.35692);
    23 }
    
    
    
     
    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    电商-订单设计(2)
    学生-课程-成绩-教师表的设计
    电商-订单设计(1)
    WCF-错误集合002
    调用 WebService 请求因 HTTP 状态 407 失败
    SQLSERVER 中的事务嵌套
    sqlserver 中的异常捕获
    c# 和 sqlserver 中的事务
    ADO_NET 数据库连接字符串大全
    break循环和continue循环
  • 原文地址:https://www.cnblogs.com/first-semon/p/5894039.html
Copyright © 2011-2022 走看看