void CmapwingisTest2View::OnToolsAdd32780()

{

TCHAR szFilters[]= _T("SHP Files (*.shp)|*.shp||");

CFileDialog fileDlg (TRUE,_T("shp"),_T("*.shp"),

OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);

if( fileDlg.DoModal ()!=IDOK )   return;

CString m_strFilePath = fileDlg.GetPathName();

if (_T("")!=m_strFilePath)

{

// 先删除所有图层

//m_map.RemoveAllLayers();

// 获取后缀名判断文件是tif图像还是shp文件

CString strExt = m_strFilePath.Right(3);

if (_T("shp")==strExt)

{

mapWindow::IShapefilePtr pshapefilebound;

pshapefilebound.CreateInstance(__uuidof(mapWindow::Shapefile));

pshapefilebound->Open(_bstr_t(m_strFilePath),false );

m_map.AddLayer( pshapefilebound,TRUE) ;

mapWindow::ILabelsPtr labels=pshapefilebound->GetLabels( );//?

labels->PutFontSize(12);

labels->PutFontBold(true);

labels->PutFontOutlineVisible(true);

labels->PutFontOutlineWidth(4);

mapWindow::ILabelCategoryPtr cat;

labels->AddCategory("Red");

long fieldIndex = 1;//默认首个列

CString str;

IFieldPtr Fields;

//pshapefilebound->GetField(0);

_variant_t var;

for (long i = 0; i < pshapefilebound->GetNumShapes() ; i++)

{

IShapePtr shp =  pshapefilebound->GetShape(i);

IPointPtr pt= shp->GetCenter(   );

var = pshapefilebound->GetCellValue(fieldIndex, i);

str = var.bstrVal; //需要判断本列是否为文本,待解决

labels->AddLabel( _bstr_t(str ),pt->Getx(),pt->Gety(),0,laCenter);

}

labels->put_Synchronized(true);

实现shape图层添加label的更多相关文章

  1. MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称

    MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称 在上文说了用自动站的数据经过插值绘制色斑图,这种一般是在geoserver上叠加图片呈现,但遇到后端导出图片,我们又想添加 ...

  2. java PDF添加图层,支持多页图层添加

     java PDF添加图层,支持多页图层添加 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

  3. arcgis jsapi接口入门系列(3):各种类型的图层添加

    这里说的tomcat切片,是指arcgis server切片后,把切片图片文件用tomcat发布(其他任意web服务器发布都行) //添加tomcat切片图层 addTomcatTileLayer: ...

  4. WPF 在绘图控件(Shape)中添加文字 [2018.7.15]

    原文:WPF 在绘图控件(Shape)中添加文字 [2018.7.15] Q:使用Shape的子类Ellipse画一个圆,如何在圆中添加文字? A:Shape类中不包含Text属性.可使用Shape类 ...

  5. 【转】ArcGIS Server 10.1 动态图层—添加栅格

    本文将介绍如何通过arcgisserver10.1动态图层添加栅格影像.与添加矢量数据不同的是,天际栅格用到了RasterDataSource接口,如下所示 <esri:DynamicLayer ...

  6. ArcGIS图层添加字段出现:“定义了过多字段”

    首先,我图层数据格式为mdb,也就是Access数据库 Access一个表最大支持255个字段,可是我的才添加第一个字段就出现"定义了过多字段"的错误 打开ArcMap添加字段也是 ...

  7. Winform添加Label

    Info from : http://www.csharpwin.com/csharpspace/6253r7952.shtml 本例子主要是介绍如何在 C#开发WinForm中加入一个组件,如果你想 ...

  8. js给图层添加动态样式

    需求:需要在视窗内随意点击对应位置,图层从上到下匀速运动到指定位置 html <img id="moveDot" class="moveDot" src= ...

  9. Qt button按钮添加Label标签播放GIF图片

    QPushButton btn = new QPushButton(); QVBoxLayout* layout = new QVBoxLayout(btn); QLabel* label = new ...

随机推荐

  1. 2019最新的IDEA的激活方式!!!

    第一步: 安装IDEAhttps://www.jetbrains.com/idea/ 选择要下载的版本Ultimate 第二步: 下载破解补丁链接:https://pan.baidu.com/s/1j ...

  2. ion-icon

    观察默认的使用 关于Ion-icon 图标的自定义,首先,看一看默认内置的图标的显示,是怎么来的 可以看到默认的路径为:/svg/ios-xxx.svg 自定义实现 那么这种路径是哪里来的,明显是an ...

  3. 03 python3常见内置函数

    数学相关 abs(a) : 求取绝对值.abs(-1) max(list) : 求取list最大值.max([1,2,3]) min(list) : 求取list最小值.min([1,2,3]) su ...

  4. js之运算符(算术运算符)

    Javascript中的运算符大多是由标点符号少数由关键字表示.可以根据其操作数的个数进行分类.大多数运算符是一个二元运算符,将两个表达式合成一个比较复杂的表达式.还有需要注意的一点是运算符的优先级, ...

  5. jenkins操作TreeView,展开合并

    双击treeview 双击选中的部分,使treeview展开合并 Opt() #include <GUIConstantsEx.au3> #include <GuiTreeView. ...

  6. DES加密解密 MD5加密解密

    #region MD5 加密 /// <summary> /// MD5加密静态方法 /// </summary> /// <param name="Encry ...

  7. python的isocalender()

    isocalender()返回指定日期的年,第几周,周几这三个值. 例子: import date date_time = datetime.date(2019, 5, 9) ret = date_t ...

  8. PAT Basic 1008 数组元素循环右移问题 (20 分)

    一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A​0​​A​1​​⋯A​N−1​​)变换为(A​N−M​​⋯A​N−1​​A ...

  9. xhost + command not found

    如下是一个示例: 原本我以为在没有联网的情况下.不能使用yum 的.可能是本地配置了yum 了吧也可以使用 1. [oracle@11GR2-test ~]$ export DISPLAY=192.1 ...

  10. .htaccess防盗链方法(文件、图片)

    http标准协议中有专门的字段记录referer,一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么. 因此所有防盗链方法都是基于这个Referer字段两种方法: ...