学习中的小冯子 2024-06-30 01:16 采纳率: 100%
浏览 6
已结题

Arcgis Add in

Arcgis add in(语言C#)进行插件开发,使用CharacterMarkerSymbol创建的字体符号添加显示的时候不能所有比例尺都显示
1000的时候能够正常显示。

img


1000以下就不显示了。

img


创建及添加代码如下:

            IMarkerElement pMarkerElement = new MarkerElementClass();
            ICharacterMarkerSymbol characterMarkerSymbol = new CharacterMarkerSymbolClass();
            characterMarkerSymbol.CharacterIndex = 111;

            stdole.IFontDisp font = characterMarkerSymbol.Font;
            font.Name = "ESRI Default Marker";
            font.Size = 18;
            characterMarkerSymbol.Angle = -90;
            IRgbColor color = new RgbColorClass() { Red = 0, Green = 0, Blue = 255 }; // 红色
            characterMarkerSymbol.Color = color;
            characterMarkerSymbol.Size = 12;
            pMarkerElement.Symbol = characterMarkerSymbol;  

            characterMarkerSymbol.Angle = FJ_PSJD;
            pt.Project(projected35);
            pMarkerElement.Symbol = characterMarkerSymbol;

            pElement1 = pMarkerElement as IElement;
            pElement1.Geometry = pt;
            pElement1.Locked = true;
            igc1 = map as IGraphicsContainer;
            igc1.AddElement(pElement1, 0);


            
            IActiveView activeView = mxd.ActiveView;
            activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
            this.pictureBox1.Image = Class1.SaveImage(imagePathList[index]);

有知道原因的帮忙看一下如何修改,谢谢

补充一下,在此之前我使用 ArrowMarkerSymbol arcmap自定义的箭头符号创建标注都是正常的。

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-30 01:16
    关注

    引自免费微信小程序:皆我百晓生

    在ArcGIS中使用C#进行Add-In开发时,遇到字体符号在不同比例尺下显示不完全的问题,可能是由于符号尺寸与地图比例尺之间的关联没有正确设置。下面是一些建议的修改和解决方案:

    1. 比例尺与符号尺寸的关联: 确保字体符号的大小与地图的比例尺相适应。当比例尺变化时,可能需要动态地调整字体符号的大小。可以使用比例尺的缩放因子来计算适当的符号尺寸。
    2. 角度设置: 你已经设置了characterMarkerSymbol.Angle = -90,但请确保这是否适用于所有情况。在不同的比例尺下,可能需要调整符号的角度以确保其正确显示。
    3. 使用数据驱动的比例尺适应性: 如果可能的话,可以使用数据驱动的方法来确定符号的大小和位置,这样它们可以自动适应不同的比例尺。
    4. 检查字体样式: 确保使用的字体在所有比例尺下都可用并且清晰可见。有时某些字体在缩小或放大时可能不清晰。
    5. 检查地图视图刷新: 在添加元素后,确保正确刷新地图视图。你已经使用了activeView.PartialRefresh,但可能需要确保刷新的是正确的部分(例如,图形部分)。
    6. 代码完整性检查: 请确保代码中没有遗漏任何关键部分,特别是与符号创建和地图元素添加相关的部分。确保所有对象和变量都已正确初始化并赋值。

    关于你的代码片段,一些需要注意的地方:

    • 确保pt(点)对象被正确初始化并赋予了合适的坐标值。
    • FJ_PSJD是什么?它是角度还是其他值?确保它被正确赋值。
    • projected35是什么投影?确保它与地图的投影相匹配。
    • 在设置符号属性之后,再次使用之前,确保不要重复设置相同的属性(例如,颜色、大小等),这可能会导致不一致的结果。

    如果问题仍然存在,建议详细记录每个比例尺下的具体表现,以便更好地定位问题所在。此外,可以考虑查看ArcGIS的官方文档或寻求ArcGIS社区的帮助,以获取更专业的解答。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 修改了问题 6月30日
  • 创建了问题 6月30日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!