qt环境下Mapx组建的编程---------regoin

Posted first_semon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}

以上是关于qt环境下Mapx组建的编程---------regoin的主要内容,如果未能解决你的问题,请参考以下文章

qt 环境下mapx组件的鼠标跟踪

qt 环境下mapx组件打包后编译产生c2248和c2512错误

qt之mapx组件编程

Qt编程之mapx组件编程

qt环境下地图数据的导入与显示

qt环境下地图数据的导入与显示