关于VC++和OGR对shp和KML转换的问题

问题描述

各位求教:怎么用VC++和OGR实现空间信息的转换,主要处理点线面的坐标信息,并将shp的坐标转换为WGS84坐标?线只处理单线问题,获取每段折线起点及终点坐标并将各点添加到线中。面获取多边形数目,得到多边形,获得组成多边形的点数,获取各点坐标,将各点添加到线中,将线添加到多边形中。求以上代码怎么实现?点已经写出来了:OGRGeometry*poGeometry;poGeometry=poFeature->GetGeometryRef();switch(esriGeometryType){caseesriGeometryPoint://点信息转换{if(poGeometry!=NULL&&wkbFlatten(poGeometry->getGeometryType())==wkbPoint){OGRPoint*poPoint=(OGRPoint*)poGeometry;//获取x,y,z坐标值poPoint->getX();poPoint->getY();poPoint->getZ();}elsereturn;poGeometry=poPoint;}

解决方案

解决方案二:
OGR里面不是有个WKT可以描述空间对象信息嘛和KML都是明码格式,应该比较好转换吧
解决方案三:
你是说这个exporttowkt()类函数,它只是把格式转换成WKT,比较大众化的格式吧,具体的还是要判断几何类型来转换成相应的类型吧?
解决方案四:
有点难哟
解决方案五:
阅读ogr2ogr的源码
解决方案六:
呃,直接调用就可以了吧?加上AE空间转换好像容易点。GDAL15.DALL文件找不到是什么意思啊?
解决方案七:
这个可以转不?

时间: 2024-07-29 01:03:12

关于VC++和OGR对shp和KML转换的问题的相关文章

字符编码-vc++编码问题!把十六进制字符串转换成文字!

问题描述 vc++编码问题!把十六进制字符串转换成文字! 假设我有一个cstring a=""1A 2B"" 如何转换成文字并赋值给另外一个cstring? 解决方案 char temp[100];char src[100];strncpy(src (LPCTSTR)a 100);for (int i = 0; i < (a.GetLength() + 1)/3; i++){ temp[i] = (char)(func(src[i * 3]) * 16 + f

如何使用shp2pgsql 将shp格式的GIS数据导入到PostgreSQL

PostGIS 2.2.0dev手册文档中涉及到一些基本的数据,这些数据需要导入到数据库中.使用QGIS页面方式导入有一些问题.下面是导入过程 如果用QGIS方法,导入过程中,会有一些sql错误,这些错误会引起导入中断,实际上shp文件会转换成sql语句 并且在sql文件末尾才加上commit,如果中途中断就等于事务中断,没有提交. 为了让正常进行,我们需要使用shp2psql这个命令先生成sql语句,然后再对sql进行改造,中间加上若干commit语句,然后使用psql命令执行 step1:服

VC中句柄、指针、ID之间的转换

win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量. 从句柄到指针 CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached. pWnd->Attach(hWnd); //Attaches a Windows window to a CWnd object 从指针到句柄

KVIP考勤系统

最近用VC重写了一个几年前用PowerBuiler写的软件.软件功能并不多,主要是我模仿PB做了几个通用基类,还有这几年收集的一些东东,以下是程序中使用到的主要的几个类: 1.ADOxxxx是别人写的一个数据库类,具体怎么用去问作者吧. 2.CPreGraphic是实现绘制的类,DrawText()等 3.CPrePrint是控制打印机的类,CPrintDialog等 4.CDataWin是实现功能的主要类,它把VC在IDE介面中设计的窗口转换成报表 5.CDlgDoc //简单页 6.CLis

C++开发文章收藏

基础知识 C标准函数集锦 标准C I/O函数 sizeof  用法 正确使用内存 有关c++  string类 堆和栈的区别[再转] C++中的异常(exception) API总结和断点函数 字符集和编码知识 高位优先与低位优先 do...while(0)的妙用 理解虚基类.虚函数与纯虚函数的概念 C之修炼 C代码优化方案 C++代码优化方法总结 VC:CString用法整理(转载)  VC的若干实用小技巧  (如何干净的删除一个类) 指针 C++部分操作符 C++中const用法总结 VC定

使用C#调用GDAL的OGR读取s57文件,中文乱码问题

问题描述 由于工作需要,本人需要解析电子海图s57文件,经过一个阶段的学习,本人打算采用gdal/ogr来解析,本人是做C#开发的,对于C++不是很了解,解析的时候实现的是gdal/ogr对C#的接口,采用ogrinfo.cs文件进行解析,结果发现,基本的属性都能查询出来,但是,由于s57文件中包含中文文字,解析出来的内容却不是中文,而是乱码.本人想通过编码转换,转成中文文字,但是都不行,最好的状态发现前面的文字是正确的,而后面的不正确,例如"十万吨级锚地",最后通过转成Unicode

gdal中文乱码-GDAL11.1版本不支持中文路径,读取shp文件属性字段出现乱码

问题描述 GDAL11.1版本不支持中文路径,读取shp文件属性字段出现乱码 首先读取带有中文路径的shp文件,代码如下: string strShpFullName = @"G:学习资料ArcGIS空间数据ATShpBoundaryChina_Boundary.shp"; //注册Ogr Ogr.RegisterAll(); OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO"

代码-vc 6.0 error c2491 报错啊,头大

问题描述 vc 6.0 error c2491 报错啊,头大 简单又奇怪的问题又来了... debug版完全正常:release版报错c2491. definition of dllimport function not allowed. (我是接手的别人的项目,项目工程代码里没有看到有dllimport 或者是其他明显的问题啊). 解决方案 检查一下你Release版本跟Debug版本的工程配置,尤其预编译宏的设置. 应该有宏定义不一致,导致dllexport,dllimport的导入 解决方

环境-vc++6.0内关于s=(i++)*(i++)的问题

问题描述 vc++6.0内关于s=(i++)*(i++)的问题 int i = 0: s = (i++)*(i++) printf("%d",s): 这个结果应该是多少?我个人分析应该是2,第一个i++使用的是1 然后i的值应该变成2然后第二个i使用的是2 然后i变成3 结果s的值应该是2 但是在vc++6.0的环境下运行结果为什么是1呢?新手求解. 解决方案 这个问题问了无数遍,我想这么告诉你. 就C++语言来说,这个是语言未定义行为,所谓语言未定义行为,就是在语言规范中没有规定遇到