作者:承诺盛金_999 | 来源:互联网 | 2023-10-10 12:42
我用C#做MapX5二次开发,用CreateText方法创建的文本图元,如果内容为非汉字,则可全部显示,如果内容为汉字,则只能显示出5-6个字,请教有哪位知道这是为什么?
我用 C# 做 MapX5 二次开发,用 CreateText 方法创建的文本图元,如果内容为非汉字,则可全部显示,如果内容为汉字,则只能显示出5-6个字,请教有哪位知道这是为什么?
7 个解决方案
你能把你生成图元的代码给我看看吗?我怎么也生成不了图元在地图上显示出来,谢谢
你生成图元前,要创建图层,创建图层时要指定坐标系统,如果不指定就什么也看不到,我以前也遇到过,指定了坐标系统就好了
lyr = axMap1.Layers.CreateLayer(tableName, System.windos.form.application.startup, 1, 2, axMap1.DisplayCoordSys);
你看这样对吗
你首先要对 axMap1.DisplayCoordSys 赋值,下面是设置自定义坐标的代码
MapXLib.CoordSys myCoordSys=new MapXLib.CoordSys();
MapXLib.Rectangle myBounds=new MapXLib.Rectangle();
MapXLib.Datum mydatum =new MapXLib.Datum();
MapXLib.AffineTransform myAffine =new MapXLib.AffineTransform();
myBounds.Set(grid.right, grid.top, grid.left, grid.bottom);
mydatum.Set(28, 0, 0, 0, 0, 0, 0, 0, 0);
myAffine.Set(MapXLib.MapUnitConstants.miUnitInch, 1, 0, 0, 0, 1, 0);
myCoordSys.Set(MapXLib.CoordSysTypeConstants.miTransverseMercator, mydatum,
7, 0, 0, 0, 0, 0, 0, 0, 0, 0, myBounds,myAffine);
然后你再把创建的这个赋值给
axMap1.DisplayCoordSys = myCoordSys;