云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > VC+AO

VC+AO

  • 62 次阅读
  • 3 次下载
  • 2025/12/12 3:43:13

1 [VC+AE 系列] 实现对图层的标注、简单渲染

?

标注图层:

1. void CAOTestView::OnCartoLabel() 2. {

3. // TODO: Add your command handler code here 4.

5. HRESULT hr;

6. IMapPtr pMap= m_ctrlMap.GetMap(); //m_ctrlMap是MapControl的控件变量 7. ILayerPtr ipLayer=NULL;

8. pMap->get_Layer(m_ctrlMap.GetLayerCount()-1,&ipLayer); //获取最后的图层 9.

10. ILabelEngineLayerPropertiesPtr pLBProp; 11. IAnnotateLayerPropertiesPtr pALProp;

12. IAnnotateLayerPropertiesCollectionPtr pALProps; 13. IGeoFeatureLayerPtr pGeoFeatLyr= ipLayer; 14.

15. if(NULL==pGeoFeatLyr)

16. return ;

17. hr=pGeoFeatLyr->get_AnnotationProperties(&pALProps); 18. hr=pALProps->QueryItem(0,&pALProp,NULL,NULL); 19. if(NULL==(pLBProp=pALProp)) 20. return ;

21. pLBProp->put_IsExpressionSimple(VARIANT_TRUE);

22. pLBProp->put_Expression((_bstr_t)\设置标注字段,大家拷过去时要改下字段名 23.

24. //创建标注符号

25. IFormattedTextSymbolPtr pFormatTxtSym(CLSID_TextSymbol); 26. 27.

28. /////////////////自己设置符号的样式/////////////////////// 29. // //设置标注的字体

30. // IFontPtr pFont(__uuidof(StdFont));;

31. // pFont->put_Name((_bstr_t) \字体集 32. // CY cy;

33. // cy.Hi = 10 * 72; 34. // cy.Lo = 8 * 72; 35. // pFont->put_Size(cy); 36. // pFont->put_Bold(TRUE);

37. // pFormatTxtSym->put_Font((IFontDispPtr)pFont) ; 38. //

39. // //设置标注的颜色 40. // IColorPtr pColor;

41. // pFormatTxtSym->get_Color(&pColor); 42. // hr=pColor->put_RGB(RGB(0,120,0));//深绿色 43. // if(FAILED(hr)) return;

44. // hr=pFormatTxtSym->put_Color(pColor); 45.

46. /////////////////从样式库文件中获取符号的样式///////////////////////// 47. IStyleGalleryItemPtr pSGitem=NULL;

48. IEnumStyleGalleryItemPtr pEnumSGitem;

49. IStyleGalleryPtr pStyleGall(CLSID_ServerStyleGallery); 50. IStyleGalleryStoragePtr pSGstorage(pStyleGall);

51. CString strStyleFile=\52. CString strStyleClass=\53.

54. //获取样式文件

55. pSGstorage->put_TargetFile((_bstr_t)strStyleFile);

56. pStyleGall->get_Items((_bstr_t)strStyleClass,(_bstr_t)strStyleFile, 57. (_bstr_t)\58. if (NULL==pEnumSGitem) 59. {

60. MessageBox(\获取样式集失败!\61. return; 62. } 63.

64. BSTR bsName;

65. pEnumSGitem->Reset(); 66. pEnumSGitem->Next(&pSGitem); 67.

68. if (NULL==pSGitem) 69. {

70. MessageBox(\获取样式项失败!\71. return; 72. }

73. IUnknownPtr pUnk;

74. pSGitem->get_Item(&pUnk); 75. if (NULL==(pFormatTxtSym=pUnk)) 76. { 77. return; 78. } 79.

80. pLBProp->putref_Symbol(pFormatTxtSym);

81. pGeoFeatLyr->put_DisplayAnnotation(VARIANT_TRUE);//显示标注 82.

83. IActiveViewPtr pAV=m_ctrlMap.GetActiveView(); 84. pAV->Refresh(); 85. } 复制代码

?

渲染图层

渲染前:

渲染后:

搜索更多关于: VC+AO 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1 [VC+AE 系列] 实现对图层的标注、简单渲染 ? 标注图层: 1. void CAOTestView::OnCartoLabel() 2. { 3. // TODO: Add your command handler code here 4. 5. HRESULT hr; 6. IMapPtr pMap= m_ctrlMap.GetMap(); //m_ctrlMap是MapControl的控件变量 7. ILayerPtr ipLayer=NULL; 8. pMap->get_Layer(m_ctrlMap.GetLayerCount()-1,&ipLayer); //获取最后的图层 9. 10. ILabelEngineLayerPr

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com