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. node工具之http-proxy-middleware

    简介 一个轻松的配置代理服务器的中间件,让Node.js代理变得简单 url路径 foo://example.com:8042/over/there?name=ferret#nose \_/ \___ ...

  2. ASP.NET Core[源码分析篇] - Authentication认证

    原文:ASP.NET Core[源码分析篇] - Authentication认证 追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务 ...

  3. Auto-increment 自动增长

    Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INCREMENT 字段 我们通常希望在每次插入新记录时,自动地创建主键字段的值. 我们可以在表中创建一个 auto- ...

  4. Mysql学习(二)之通过homebrew安装mysql后,为什么在系统偏好设置里没有mysql

    原因 用brew install packagename是用来安装命令行工具的,一般不可能影响到图形界面. mysql官方文档是通过dmg文件安装的: The MySQL Installation P ...

  5. uoj #46[清华集训2014]玄学

    uoj 因为询问是关于一段连续区间内的操作的,所以对操作构建线段树,这里每个点维护若干个不交的区间,每个区间\((l,r,a,b)\)表示区间\([l,r]\)内的数要变成\(ax+b\) 每次把新操 ...

  6. linux入门到高级

    目  录 1. Linux入门篇.................................................................................... ...

  7. Flask-migrate基本使用方法

    数据库迁移操作顺序: 1.python 文件 db init 2.根据需求修改模型 3.python flaskapp文件 db migrate -m"新版本名(注释)" 4.py ...

  8. Centos7:配置防火墙

    firewalld的基本使用 启动: systemctl start firewalld 关闭:systemctl stop firewalld 查看状态: systemctl status fire ...

  9. ELF文件格式理解

    ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西.以及都以什么样的格式去放这些东西.它自 ...

  10. 多线程编程-- part 8 CyclicBarrier

    CyclicBarrier简介 cuclicBarrier允许一组线程互相等待,直到到达某个公共屏障点(common barrier point).因为该barrier在释放等待线程后可以重用,所以称 ...