GDAL 生成shp文件
附件:http://pan.baidu.com/s/1i3GPwrV(C#版GDAL接口.dll)
示例程序: http://pan.baidu.com/s/1jpIKQ (程序是在vs2008 x86下编写的,其中WKT数据是从数据库中获取的,程序中的界面没有任何的作用,直接点击执行即可)
1、环境配置
添加引用和头文件就可以使用了。
2、代码示例,c#调用gdal生产shp文件。
static void WriteVectorFileShp(String strVectorFile, String wkt, double area) //创建算法生产的边界矢量图
{
// 为了支持中文路径,请添加下面这句代码
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
// 为了使属性表字段支持中文,请添加下面这句
OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "");
// 注册所有的驱动
Ogr.RegisterAll(); //创建数据,创建ESRI的shp文件
string strDriverName = "ESRI Shapefile";
Driver oDriver = Ogr.GetDriverByName(strDriverName);
if (oDriver == null)
{
Debug.WriteLine("%s 驱动不可用!\n", strVectorFile);
return;
} // 步骤1、创建数据源
DataSource oDS = oDriver.CreateDataSource(strVectorFile, null);
if (oDS == null)
{
Debug.WriteLine("创建矢量文件【%s】失败!", strVectorFile);
return;
}
//步骤2、创建空间坐标系
OSGeo.OSR.SpatialReference oSRS = new OSGeo.OSR.SpatialReference("");
oSRS.SetWellKnownGeogCS("WGS84");
//步骤3、创建图层,并添加坐标系,创建一个多边形图层(wkbGeometryType.wkbUnknown,存放任意几何特征)
Layer oLayer = oDS.CreateLayer("TestPolygon", oSRS, wkbGeometryType.wkbUnknown, null);
if (oLayer == null)
{
Debug.WriteLine("图层创建失败!");
return;
} // 步骤4、下面创建属性表
FieldDefn oFieldPlotArea = new FieldDefn("PlotArea", FieldType.OFTString); // 先创建一个叫PlotArea的属性
oFieldPlotArea.SetWidth();
// 步骤5、将创建的属性表添加到图层中
oLayer.CreateField(oFieldPlotArea, );
//步骤6、定义一个特征要素oFeature(特征要素包含两个方面1.属性特征2.几何特征)
FeatureDefn oDefn = oLayer.GetLayerDefn();
Feature oFeature = new Feature(oDefn); //建立了一个特征要素并将指向图层oLayer的属性表
//步骤7、设置属性特征的值
oFeature.SetField(, area.ToString()); OSGeo.OGR.Geometry geomTriangle = OSGeo.OGR.Geometry.CreateFromWkt(wkt);//创建一个几何特征
//步骤8、设置几何特征
oFeature.SetGeometry(geomTriangle);
//步骤9、将特征要素添加到图层中
oLayer.CreateFeature(oFeature);
//Debug.WriteLine("数据集创建完成!");
}
WKT
POLYGON ((116.40773261182795 36.555299480545493, 116.40773261146948 36.555299489139742, 116.40773027146895 36.555377819139721, 116.40773027158551 36.55537784423705, 116.40773044158547 36.555382184237054, 116.40773044243686 36.555382198655138, 116.40773727111547 36.555468681927707, 116.40773694133803 36.555493495167283, 116.40773694180282 36.555493519006163, 116.40774177111638 36.555585835896657, 116.40774077137661 36.555636162777148, 116.40774077130489 36.55563617, 116.40774077130449 36.555688669999995, 116.40774077155113 36.555688683391054, 116.40774411155046 36.555779343391045, 116.40774412501702 36.555779429252262, 116.40774415857561 36.55577951145429, 116.40774421098901 36.555779586966615, 116.40774428032486 36.555779653005267, 116.40774436402701 36.555779707135606, 116.40774445900952 36.555779747361996, 116.4077445617707 36.55577977220139, 116.40774466852197 36.555779780738021, 116.40774477532773 36.555779772657189, 116.40774487825036 36.555779748256789, 116.40774497349534 36.555779708436411, 116.40774505755128 36.555779654664107, 116.4077451273193 36.555779588922341, 116.40774518022721 36.555779513634818, 116.40774521432441 36.555779431577179, 116.40774522835389 36.55577934577466, 116.40774705835356 36.555737185774653, 116.40774705826921 36.555737152388872, 116.40774272871791 36.555647821660123, 116.4077428886787 36.555585836690454, 116.40774438848156 36.555542012440306, 116.40774438826199 36.555541982269375, 116.40773972876654 36.555446492622629, 116.40773988866363 36.555427005140359, 116.40774088862004 36.555377177296748, 116.40774088785585 36.555377145330816, 116.40773456007933 36.55528400806763, 116.40773738640789 36.555258870719484, 116.40773738868464 36.555258827631221, 116.4077370586843 36.555208167631221, 116.40773705863404 36.555208163506975, 116.40773655863383 36.555180163506982, 116.40773654654753 36.555180076531009, 116.40773651385493 36.555179993079058, 116.40773646178864 36.555179916297483, 116.4077363923117 36.555179849081163, 116.4077363080436 36.555179793964335, 116.40773621216144 36.555179753025037, 116.40773610828025 36.5551797278068, 116.40773600031658 36.5551797192604, 116.40773589234097 36.555179727708072, 116.40773578842439 36.555179752831322, 116.40773569248478 36.555179793682917, 116.4077356081393 36.555179848722673, 116.40773553856799 36.555179915875406, 116.4077354863939 36.555179992609325, 116.40773545358411 36.555180076031334, 116.40773544137561 36.555180162996209, 116.40773344149484 36.555283986768309, 116.40773261182795 36.555299480545493))
GDAL 生成shp文件的更多相关文章
- C#、C++用GDAL读shp文件(转载)
C#.C++用GDAL读shp文件 C#用GDAL读shp文件 (2012-08-14 17:09:45) 标签: 杂谈 分类: c#方面的总结 1.目前使用开发环境为VS2008+GDAL1.81 ...
- (数据科学学习手札59)从抓取数据到生成shp文件并展示
一.简介 shp格式的文件是地理信息领域最常见的文件格式之一,很好的结合了矢量数据与对应的标量数据,而在Python中我们可以使用pyshp来完成创建shp文件的过程,本文将从如何从高德地图获取矢量信 ...
- python GDAL 读写shp文件
gdal包用于处理栅格数据,ogr用于处理矢量数据. 1 #!C:\Program Files\pythonxy\python\python.exe 2 #-*- coding:gb2312 -*- ...
- 翻译:利用GDAL生成cogeoff文件
翻译自: Introducing the AWS Lambda Tiler https://hi.stamen.com/stamen-aws-lambda-tiler-blog-post-76fc11 ...
- python gdal 修改shp文件的属性值
driver = ogr.GetDriverByName('ESRI Shapefile')datasource = driver.Open(shpFileName, 1)layer = dataso ...
- 结合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 ...
- Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
Gdal是用来读写栅格与矢量数据的,在Gdal官网,可以下载相关的资源进行平台的编译.其实Arcgis底层也是用Gdal来读取shp文件的,那在Android中可以直接读写shp文件吗,是可以的.这里 ...
- GeoJson的生成与解析,JSON解析,Java读写geojson,geotools读取shp文件,Geotools中Geometry对象与GeoJson的相互转换
GeoJson的生成与解析 一.wkt格式的geometry转成json格式 二.json格式转wkt格式 三.json格式的数据进行解析 四.Java读写geojson 五.geotools读取sh ...
随机推荐
- TRI 解题报告
题目大意: 在一个平面上有N(N <= 1000)个点,其中任意三点不共线,求这些点组成的三角形的面积和每和三角形内部含的点数的个数和. 数据范围: 20%的数据 N <= 50, 30% ...
- linux下python多版本共存
为何要安装python,linux下不是已经集成了python吗? 大多数linux系统都集成了python,但是他们的版本太低了.不能满足我们的需求,尤其是好多系统居然仍停留在 python2.6. ...
- Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in D:\inetpub\vhosts\zenpty.com\httpdocs\includes\database
打开php.ini配置文件,找到php_pdo_mysql.dll,如果前面有分号";"则表示该行被注释掉了,将分号去掉,保存,然后重启apache服务,重新访问页面,问题解决了.
- requirejs学习之-- 初始化(一)
为了规范在项目中使用的javascript代码,我们使用了requirejs框架. 初始阶段,我们在按钮的点击事件中调用创建的模块,代码如下: function button_click() { _t ...
- python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息
主要是通过os.popen读取命令输出实现的,os.popen启动新的进程,且将外部命令的输出作为文件类型对象返回.不能获得外部命令的返回值.既然是文件对象就可以直接用for in 来读取,代码如下: ...
- Android中动态更新TextView上的文字
示例代码: 1.新线程,定时更新文字 class testThread extends Thread{ public void run() { Message message = new Messag ...
- NOI十连测 第三测 T1
这么二逼的题考试的时候我想了好久,我真是太弱了... 首先,由于ans都乘上了i*(i-1)/2,实际上要求的就是每个数的所有可能出现次数*这个数的权值. 我们发现,每个数的本质是一样的,我们记一个s ...
- 基于stm32f103zet6的FAT16文件系统学习0(读SD卡扇区)
SD卡已经看了两天了,主要是因为测试出来的卡容量不对,所以一直找原因,最终还是发现了,总比不过是单位上面出现了问题,或许是之前没有接触到SD的缘故吧,所以对其中的一些寄存器很不了解,一切都是重新开始, ...
- bootstrap绿色大气后台模板下载[转]
From:http://www.oschina.net/code/snippet_2364127_48176 1. [图片] 2. [文件] 素材火官网后台模板下载.rar ~ 4MB 下载( ...
- UESTC_方老师的分身 II CDOJ 915
方老师的分身 II Time Limit: 10000/5000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...