mpx程序from 阿明

1、MapX折线图元的画法

    CMapXPoints pts;
    CMapXPoint pt;
    CMapXStyle sty;
    CMapXFeature f,newobj,newobj1,newobj2;

    if(!pts.CreateDispatch(pts.GetClsid()))
    {
        TRACE0("Failed to create Points collection");
        return;
    }
    if(!pt.CreateDispatch(pt.GetClsid()))
    {
        TRACE0("Failed to create Point collection");
        return;
    }
    if(!newobj.CreateDispatch(newobj.GetClsid()))
    {
        TRACE0("Failed to create Feature collection");
        return;
    }

        Position position;
        double x,y,mapLat,mapLon;
        for(lisPosIt=lisPos.begin();lisPosIt!=lisPos.end();lisPosIt++)
        {
            position=*lisPosIt;
            x=position.z/1000.0;
            y=position.x/1000.0;
            XYToLL(y,x,&mapLon,&mapLat);  //将普通坐标转化经纬度坐标。
            pt.Set(mapLon,mapLat);   //设置点的坐标(默认经纬度)。
            pts.Add(pt);   //将点加入点集。
        }
        newobj.Attach(m_ctrlMapX.GetDispatch());  //将图元与地图绑定。
        newobj.SetType(miFeatureTypeLine);  //设置图元类型为折线图元
        newobj.GetParts().Add(pts);    //将点集pts加入图元

        sty=newobj.GetStyle();  //得到图元的风格,下面设置各种图元的风格。
        sty.SetLineStyle(57);   //设置折线风格,可查看开发手册。
        sty.SetLineColor(miColorGreen); //设置折线颜色
        sty.SetLineWidthUnit(miStyleUnitPixel);  //设置折线宽度单位为像素
        sty.SetLineWidth(2);  //设置折线宽为2像素

        f=m_RoadLayer.AddFeature(newobj);
        CString m_keyValue=f.GetFeatureKey(); //此行设置加入折线图元的键值,该键值是该图元在图层中的唯一性标识,再想取得图元并更改的话可以调用m_RoadLayer.GetFeatureByKey(m_keyValue)来获得。
        m_RoadLayer.Invalidate();  //重绘图层。

建议:义超,对于动态绘制尾迹,应该可以用如下方法,有一个点时用上面的方法创建一个只有一个点的折线图元并加入图层,每次需要加入新的点绘制新的轨迹时,
先通过键值获得刚加入的图元:CMapXFeature fea=m_RoadLayer.GetFeatureByKey(m_keyValue);
再调用fea.GetParts().Item(1).Add(pt)加入新的轨迹点pt,再调用m_RoadLayer.Invalidate(),这样不需要擦掉原先绘制的点,每次往图元中加入的新的点既可,效率应该还行,你可以试试。
fea.GetParts().Item(1)是获得该折线图元中的第一个点集,一个折线图元中只有一条折线的话,这样就可以获得。

2、MapX多边形图元的画法与上面一样,只要将newobj.SetType(miFeatureTypeLine)中的参数改成miFeatureTypeRegion就行了,注意点的顺利为多边形顺时针或逆时针顺序。
另外多边形图元的style属性和线性图元的有些区别,具体的可以查看开发文档中style的属性。例子如下:
    for(int i=0;i<5;i++)
    {
        position=b[i];
        x=position.z;
        y=position.x;
        XYToLL(x,y,&mapLon1,&mapLat1);
        pt.Set(mapLon1,mapLat1);
        pts.Add(pt);
    }
    newobj2.Attach(m_ctrlMapX.GetDispatch());
    newobj2.SetType(miFeatureTypeRegion);
    newobj2.GetParts().Add(pts);
    sty=newobj2.GetStyle();
    sty.SetRegionBorderWidth(2);
    sty.SetRegionPattern(8);
    sty.SetRegionColor(miColorGreen);
    sty.SetRegionTransparent(TRUE);
    f=m_RoadLayer.AddFeature(newobj2);
    m_RoadLayer.Invalidate();

3、MapX点图元的画法
    CMapXFeature fLan;
    if(!fLan.CreateDispatch(fLan.GetClsid()))
    {
        TRACE0("Failed to Create Feature object");
        return;
    }
    fLan.Attach(m_ctrlMapX.GetDispatch());
    fLan.SetType(miFeatureTypeSymbol);   //设置图元类型为符号图元(点图元)
    double malpx,malpy;
    XYToLL(133,90,&malpx,&malpy);
    fLan.GetPoint().Set(malpx,malpy);  //设置点图元的位置
    fLan.GetStyle().SetSymbolType(miSymbolTypeBitmap);  //设置点图元的表现形式为位图(还可以用字符表现)
    fLan.GetStyle().SetSymbolBitmapSize(20);   //设置显示的位图大小为20
    fLan.GetStyle().SetSymbolBitmapTransparent(TRUE);  //设置位图为透明背景
    fLan.GetStyle().SetSymbolBitmapName("敌坦克.bmp");  //设置位图名
    CMapXFeature res = m_tankLayer.AddFeature(fLan);
    CString m_LanKeyValue=res.GetFeatureKey();
    m_tankLayer.Invalidate();

另外,图元可以平移,例如调用f.Offset(x,y)可以将整个图元平移,但我没有找到图元的旋转功能……

内容概要:《中文大模型基准测评2025年上半年报告》由SuperCLUE团队发布,详细评估了2025年上半年中文大模型的发展状况。报告涵盖了大模型的关键进展、国内外大模型全景图及差距、专项测评基准介绍等。通过SuperCLUE基准,对45个国内外代表性大模型进行了六大任务(数学推理、科学推理、代码生成、智能体Agent、精确指令遵循、幻觉控制)的综合测评。结果显示,海外模型如o3、o4-mini(high)在推理任务上表现突出,而国内模型如Doubao-Seed-1.6-thinking-250715在智能体Agent和幻觉控制任务上表现出色。此外,报告还分析了模型性价比、效能区间分布,并对代表性模型如Doubao-Seed-1.6-thinking-250715、DeepSeek-R1-0528、GLM-4.5等进行了详细介绍。整体来看,国内大模型在特定任务上已接近国际顶尖水平,但在综合推理能力上仍有提升空间。 适用人群:对大模型技术感兴趣的科研人员、工程师、产品经理及投资者。 使用场景及目标:①了解2025年上半年中文大模型的发展现状与趋势;②评估国内外大模型在不同任务上的表现差异;③为技术选型和性能优化提供参考依据。 其他说明:报告提供了详细的测评方法、评分标准及结果分析,确保评估的科学性和公正性。此外,SuperCLUE团队还发布了多个专项测评基准,涵盖多模态、文本、推理等多个领域,为业界提供全面的测评服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值