如何利用C#+MapX编程实现添加符号图元并修改其样式等属性?
我想通过已知的经纬度坐标在MapX地图上创建符号图元,通过如下代码实现:……MapXLib.Stylesty=newMapXLib.StyleClass();MapXLi...
我想通过已知的经纬度坐标在MapX地图上创建符号图元,通过如下代码实现:
……
MapXLib.Style sty = new MapXLib.StyleClass();
MapXLib.Feature ftr = new MapXLib.FeatureClass();
ftr.Attach(axMap1.GetOcx());
ftr.Type = MapXLib.FeatureTypeConstants.miFeatureTypeSymbol;
sty.SymbolType = MapXLib.SymbolTypeConstants.miSymbolTypeBitmap;
……
已经实现了符号图元的创建,但是符号图元自动为一个“小黑旗”,设置它的如下属性也没起作用:
……
sty.SymbolCharacter
sty.SymbolBitmapSize
sty.SymbolBitmapColor
sty.SymbolBitmapTransparent
sty.SymbolBitmapName
……
请高手指导一下,我想改天它的诸如样式、颜色、大小等属性该如何实现呢? 展开
……
MapXLib.Style sty = new MapXLib.StyleClass();
MapXLib.Feature ftr = new MapXLib.FeatureClass();
ftr.Attach(axMap1.GetOcx());
ftr.Type = MapXLib.FeatureTypeConstants.miFeatureTypeSymbol;
sty.SymbolType = MapXLib.SymbolTypeConstants.miSymbolTypeBitmap;
……
已经实现了符号图元的创建,但是符号图元自动为一个“小黑旗”,设置它的如下属性也没起作用:
……
sty.SymbolCharacter
sty.SymbolBitmapSize
sty.SymbolBitmapColor
sty.SymbolBitmapTransparent
sty.SymbolBitmapName
……
请高手指导一下,我想改天它的诸如样式、颜色、大小等属性该如何实现呢? 展开
2个回答
展开全部
这是vc的,我每句都加了注释,你可以参考下
CMapXFeature ft;//创建图元对象
ft.CreateDispatch( ft.GetClsid( ) );
ft.Attach( m_ctrlMapX.GetDispatch( FALSE ) );//以上两句牵扯到组件知识,大概就是新建一个mapx对象就需要这样注册下
ft.SetType( miFeatureTypeLine );//图元样子,这里是线形的
ft.GetStyle( ).SetLineColor( 0xFF0000 );//颜色
ft.GetStyle( ).SetLineStyle( 1 );//线的形状
ft.GetStyle( ).SetLineWidth( 1 );//线宽
ft.GetParts( ).Add( pts );//既然是线性,需要至少两点来确定画线位置,这里的pts是CMapXPoints对象,在前面的程序里已经定义好了
看了你的代码,c#不是很懂,但是注意到像你设置了feature的style,但是style是要加到feature上的。vc里面会这样写
feature.SetStyle(style.m_lpDispatch);看看C#中feature对象的SetStyle方法
CMapXFeature ft;//创建图元对象
ft.CreateDispatch( ft.GetClsid( ) );
ft.Attach( m_ctrlMapX.GetDispatch( FALSE ) );//以上两句牵扯到组件知识,大概就是新建一个mapx对象就需要这样注册下
ft.SetType( miFeatureTypeLine );//图元样子,这里是线形的
ft.GetStyle( ).SetLineColor( 0xFF0000 );//颜色
ft.GetStyle( ).SetLineStyle( 1 );//线的形状
ft.GetStyle( ).SetLineWidth( 1 );//线宽
ft.GetParts( ).Add( pts );//既然是线性,需要至少两点来确定画线位置,这里的pts是CMapXPoints对象,在前面的程序里已经定义好了
看了你的代码,c#不是很懂,但是注意到像你设置了feature的style,但是style是要加到feature上的。vc里面会这样写
feature.SetStyle(style.m_lpDispatch);看看C#中feature对象的SetStyle方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询