http://pan.baidu.com/s/1qWIDphU (工程文件在vs2008中编写)
1、使用到的技术
GDAL:读取矢量数据
GDI: 绘制矢量数据
2、详细解释
GDI绘图:
void CDisplayShpDialogDlg::initialCDC(void)
{
m_slider_r.SetRange(,,FALSE); //对slider范围的设定
m_slider_g.SetRange(,,FALSE);
m_slider_b.SetRange(,,FALSE);
m_pDC = m_picDraw.GetDC(); //获取图形控件的DC
m_picDraw.GetClientRect(m_rectPicture); //获取图形控件的大小
}
GDAL数据读取:
void CDisplayShpDialogDlg::DrawShp()
{
//定义画笔的颜色
newPen.CreatePen(PS_SOLID,,RGB(m_slider_r.GetPos(),m_slider_g.GetPos(),m_slider_b.GetPos())); //给CDC设置会画时的画笔
pOldPen = m_pDC->SelectObject(&newPen); //将CDC与画笔关联起来 CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO" ); //使GDAL支持中文
OGRRegisterAll();
//打开数据
GDALDataset *poDS ; //定义一个图形数据集
poDS = (GDALDataset *)GDALOpenEx(m_filePathName.GetBuffer(),GDAL_OF_VECTOR,NULL,NULL,NULL); //打开矢量数据并返回指针给数据集
if (poDS==NULL)
{
MessageBox("Open Failed");
exit();
}
OGRLayer *poLayer = poDS->GetLayer(); //从数据集中获取图层
poLayer->GetExtent(envelope); //获取图层的坐标范围到envelop指向的内存中 poLayer->ResetReading();
OGRFeature *poFeature; //定义要素指针
while((poFeature = poLayer->GetNextFeature())!=NULL) //从图层中获取要素
{
OGRGeometry *poGeometry=poFeature->GetGeometryRef(); //从要素中获取几何图形
if (poGeometry!=NULL)
{
switch (wkbFlatten(poGeometry->getGeometryType())) //判别几何图形的类型
{case wkbLineString: //如果几何图形的类型为线状执行下面程序
OGRLineString *poLine = (OGRLineString*)poGeometry;
for(int i = ;i<poLine->getNumPoints();i++)
{
double staX = poLine->getX(i);
double staY = poLine->getY(i);
TransformCoordinate(&staX,&staY); //坐标转换
if(i==)
{
m_pDC->MoveTo(staX,staY); //使用CDC类进行绘图
}
else
{
m_pDC->LineTo(staX,staY);
}
}
OGRFeature::DestroyFeature( poFeature );
break;
}
} }
m_pDC->SelectObject(pOldPen);
newPen.DeleteObject();
}
GDAL显示线性shp文件的更多相关文章
-
Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
Gdal是用来读写栅格与矢量数据的,在Gdal官网,可以下载相关的资源进行平台的编译.其实Arcgis底层也是用Gdal来读取shp文件的,那在Android中可以直接读写shp文件吗,是可以的.这里 ...
-
结合C++和GDAL实现shapefile(shp)文件的创建和写入
工具:vs2012+GDAL 2.0 包含头文件: #include "ogrsf_frmts.h" int main() { const char *pszDriverName ...
-
结合C++和GDAL实现shapefile(shp)文件的读取
工具:vs2012+GDAL 2.0 数据:中国省界SHP文件bou2_4p.shp 可点击下载 包含头文件: #include "ogrsf_frmts.h" 代码: int ...
-
在matlab中实现遥感影像和shp文件的结合显示
clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...
-
GDAL 生成shp文件
附件:http://pan.baidu.com/s/1i3GPwrV(C#版GDAL接口.dll) 示例程序: http://pan.baidu.com/s/1jpIKQ (程序是在vs2008 x ...
-
C#、C++用GDAL读shp文件(转载)
C#.C++用GDAL读shp文件 C#用GDAL读shp文件 (2012-08-14 17:09:45) 标签: 杂谈 分类: c#方面的总结 1.目前使用开发环境为VS2008+GDAL1.81 ...
-
C#、AE开发入门之打开shp文件并显示
首先要建立好对应的对话框程序,并拖入axMapControl控件和axLisence控件,并设置一个按钮打开该文件 当然在使用前一定要绑定对应的ArcGis产品 static void Main() ...
-
Portal for ArcGIS上传shp文件中文乱码可能情况
环境: windows Server 2008:Portal for ArcGIS 10.2:ArcGIS for Server 10.2:PostgreSQL 9.2:ArcGIS for Desk ...
-
-05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作
2011-07-05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作 ARCAMP软件要进行地统计计算的文件后格式后缀名必须为.shp的文件,网上介绍的方法复杂难懂,那么制作.shp ...
随机推荐
-
logback配置详解4-实例配置
莫个银行项目中实际引用的logback实例,提供大家参考!!!! [html] view plaincopy <?xml version="1.0" encoding=&qu ...
-
【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数
lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...
-
My Notepad
I have spent near more two weeks to write this Notepad application. At this moment, I want to share ...
-
tomcat 192.168.1.110?不烦吗?
最近做一个在线播放器,因为要用到网络服务器做在线播放,又不想直接在本地用tomcat做实验,因为没有真实感. so,手边两台电脑,同时连在局域网. 客户端,笔记本,ip1:192.168.1.101 ...
-
求奇数偶数的和,,利用while循环
static void Main(string[] args) { while (true) { try ...
-
application/json IE 兼容问题
由于IE系列浏览器把application/json响应视为文件,并尝试下载在网上看了一下,大致了解,只要修改返回的内容的类型(ContentType)即可解决问题. 由于ajax请求,返回类型默认就 ...
-
fileziller 恢复 站点管理器 内的ftp帐号方法
由于系统坏了重装了系统,以前的fileziller中配置的服务器链接信息列表很多,新装fileziller后即使复制以前的安装目录过来,站点管理器内还是空荡荡的. 这些服务器链接的配置信息非常重要,如 ...
-
mayavi安装
Mayavi是python的一个包,提供方便的可视化方案.目前(20150809)Mayavi还没有py3的支持,以下安装环境在python 2.7.10下进行 安装Mayavi: 1. 通过pip ...
-
Fernflower 反编译.class文件
最近有些奇怪Intellij IDEA通过什么查看的源码,通过打开源码意外的发现如下注释 原来是通过Fernflower这个反编译工具w(゚Д゚)w. 使用Fernflower反编译出的代码相当友好, ...
-
fn:replace()函数
fn:replace()函数将字符串中所有指定的子串用另外的字符串替换. 语法 fn:replace()函数的语法如下: ${fn:replace(<原始字符串>, <被替换的字符串 ...