结合C++和GDAL实现shapefile(shp)文件的创建和写入
工具:vs2012+GDAL 2.0
包含头文件:
#include "ogrsf_frmts.h"
int main()
{
const char *pszDriverName = "ESRI Shapefile";
GDALDriver *poDriver;
GDALAllRegister();
poDriver = GetGDALDriverManager()->GetDriverByName(pszDriverName );
if( poDriver == NULL )
{
printf( "%s driver not available.\n", pszDriverName );
return ;
}
GDALDataset *poDS; poDS = poDriver->Create("d:/newShp.shp", , , , GDT_Unknown, NULL ); //创建shp文件
if( poDS == NULL )
{
printf( "Creation of output file failed.\n" );
return ;
}
OGRLayer *poLayer;
poLayer = poDS->CreateLayer( "point_out", NULL, wkbPoint, NULL );
if( poLayer == NULL )
{
printf( "Layer creation failed.\n" );
return ;
}
OGRFieldDefn idField("ID",OFTReal);
OGRFieldDefn firstField("NAME",OFTInteger);
OGRFieldDefn secondField("X",OFTReal);
OGRFieldDefn thirdField("Y",OFTReal);
idField.SetWidth();
firstField.SetWidth();
secondField.SetWidth();
thirdField.SetWidth();
poLayer->CreateField(&idField);
poLayer->CreateField(&firstField);
poLayer->CreateField(&secondField);
poLayer->CreateField(&thirdField); int x, y;
int a=,b=;
for(int i=;i<=;i++)
{
OGRFeature *poFeature;
poFeature = OGRFeature::CreateFeature( poLayer->GetLayerDefn() );
poFeature->SetField("ID",i);
poFeature->SetField("NAME",i);
x=(rand() % (b-a))+ a;
y=(rand() % (b-a))+ a;
poFeature->SetField("X",x);
poFeature->SetField("Y",y);
OGRPoint pt;
pt.setX( x );
pt.setY( y );
poFeature->SetGeometry( &pt );
if( poLayer->CreateFeature( poFeature ) != OGRERR_NONE )
{
printf( "Failed to create feature in shapefile.\n" );
return ;
}
OGRFeature::DestroyFeature( poFeature );
}
GDALClose( poDS );
return ;
}
这样,就会在d盘根目录生成一个newShp.shp的文件,用arcgis打开,显示如下
结合C++和GDAL实现shapefile(shp)文件的创建和写入的更多相关文章
- GDAL显示线性shp文件
http://pan.baidu.com/s/1qWIDphU (工程文件在vs2008中编写) 1.使用到的技术 GDAL:读取矢量数据 GDI: 绘制矢量数据 2.详细解释 GDI绘图: ...
- 【转】c# winform 创建文件,把值写入文件,读取文件里的值,修改文件的值,对文件的创建,写入,修改
创建文件和读取文件的值 #region 判断文件是否存在,不存在则创建,否则读取值显示到窗体 public FormMain() { InitializeComponent(); //ReadFile ...
- 用shell脚本写出检测/tmp/size.log文件,如果存在显示它的内容,不存在则创建一个文件将创建时间写入
1 #!/bin/bash 2 if [ -d "/tmp" ]; then 3 echo "/tmp is exists" 4 else 5 mkdir /t ...
- Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
Gdal是用来读写栅格与矢量数据的,在Gdal官网,可以下载相关的资源进行平台的编译.其实Arcgis底层也是用Gdal来读取shp文件的,那在Android中可以直接读写shp文件吗,是可以的.这里 ...
- -05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作
2011-07-05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作 ARCAMP软件要进行地统计计算的文件后格式后缀名必须为.shp的文件,网上介绍的方法复杂难懂,那么制作.shp ...
- 结合C++和GDAL实现shapefile(shp)文件的读取
工具:vs2012+GDAL 2.0 数据:中国省界SHP文件bou2_4p.shp 可点击下载 包含头文件: #include "ogrsf_frmts.h" 代码: int ...
- 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 ...
- 运用shapefile.js解析Shp文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
随机推荐
- (第五章)java面向对象之this的作用总结
this关键字总是指向调用该方法的对象. this可以代表任何对象,当this出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的对象只能是当前类的(在那个类中就是那个类), ...
- Spring web.xml配置文件解析
概要解析
- 2013MPD上海6.23 PM 光耀:读心术,用户心理的产品之道
创新的前提是:制度与组织的创新!!!!!!!!!!!!!! 光耀:腾讯互联网业务产品经理(腾讯公司互联网业务系统产品经理.在电子商务.社会化媒体等方面有深入研究.参与腾讯多个重要项目产品工作) 什么是 ...
- java运算符总结
1.算数运算符:+.-.*./.%(加减乘除取余) 2.自增自减:++.-- 3.赋值运算符:=.+=.-=.*=./= 4.关系运算符:>.<.>=.<=.==.!= 逻辑运 ...
- POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格
第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工 ...
- 烂泥:【解决】ubuntu使用远程NFS报错
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 今天在ubuntu系统上使用远程NFS,发现一直报错无法使用. 查看NFS挂载命令没有错误,命令如下: mount -t nfs 192.168.1.1 ...
- 仅IE6中链接A的href为javascript协议时不能在当前页面跳转
切页面时有时用链接A来替代按钮,这样做有几个好处 鼠标放上时默认有手状效果(不用添加cursor:pointer) 可以添加低版本IE都支持的伪类 如果点击时页面要整体刷新,即跳转,这时IE6则不尽人 ...
- maven搭建详解
1, 下载 官方下载地址: maven_download, 最新版 apache-maven-3.0.5-bin.tar.gz 官方地址: maven 2, 解压 tar zxvf a ...
- Error during installing HAXM, VT-X not working 在安装HAXM错误,开始不工作
最佳答案 (Best Answer) Some antivirus options prevent Haxm installation. ie: Avast : settings (parametre ...
- 关于hadoop 配置文件的一些实验
机器配置如下,两台机器,nn2,nn2,搭建基于QJM的高可用集群,zk集群. 如果我在yarn-site.xml中配置的nodemanager的可用资源过少,其他配置如果不一致,那么就会造成提交的j ...