基于gdal市场开发商业计划书的商业软件有哪些

Select language: [English]
is a translator library for raster and vector geospatial data formats that is released under an
license by the . As a library, it presents a
to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing. The
page describes the April 2016 GDAL/OGR 2.1.0 release.
Traditionally GDAL used to design the raster part of the library, and OGR the vector part for Simple Features. Starting with GDAL 2.0, both sides have been more tightly integrated. You can still refer to the
if needed.
Download: ,
User Oriented Documentation
- Various user and developer contributed documentation and hints
- Ready to use binaries (executables)
(142 drivers) : , , , , , , , , ...
(84 drivers): , , , , , , , , , ...
: , , , , ...
: , , , ...
data models and architecture
(not vetted)
Developer Oriented Documentation
- source code
Raster topics:
(Reprojection, ...)
Vector topics:
Geographic Network Model topics:
API documentation
dialect and
Conference
is the leading annual
conference for free and open source geospatial software.
It will include
presentations related to GDAL/OGR, and some of the GDAL/OGR
development community will be attending.
It is the event for those
interested in GDAL/OGR, other FOSS geospatial technologies and the community
around them. The conference will be held in Bonn, Germany, August 24th - 26th, 2016.
Mailing List
A gdal-announce mailing list
is a low volume way of keeping track of major developments with the GDAL/OGR project.
mailing list can be used for discussion of development and user issues related to GDAL and related technologies. Subscriptions can be done, and archives reviewed . The mailing list is also available in read-only format by NNTP at
and by HTTP at . Archives since 2005 are searchable on .
Some GDAL/OGR users and developers can also often be found in the
IRC channel on irc.freenode.net.
Bug Reporting
GDAL bugs , and
using Trac.
GDAL In Other Languages
The list of bindings of GDAL in other languages is maintained on the .
Generated for GDAL by您现在的位置:
GDAL源码剖析与开发指南
&&&&GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。由于GDAL库支持超多的数据格式,目前几乎所有的GIS 和RS软件底层都使用GDAL来进行读写空间数据。
&&&&《GDAL源码剖析与开发指南》由李民录所著,GDAL源码剖析与开发指南基于GDAL源码剖析的编程开发指南,详细介绍了GDAL的基本功能和具体应用。
&&&&包括以下内容:
&&&&◎ GDAL库简介;
&&&&◎ GDAL/OGR库使用说明;
&&&&◎ GDAL数据格式及配置项说明;
&&&&◎ GDAL/OGR格式扩展;
&&&&◎ CPL库使用说明;
&&&&◎ GDAL库相关算法使用说明;
&&&&◎ GDAL工具使用说明。
&&&&适合地理信息系统和遥感等相关专业应用的开发人员阅读参考。本书中大部分的示例代码都是使用C/C++语言编写,有一定C/C++语言基础的读者能够快速上手开发相关应用。
&&&&GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。由于GDAL库支持很多的数据格式,目前几乎所有的GIS和RS软件底层都使用GDAL来读写空间数据。&&&&《GDAL源码剖析与开发指南》由李民录所著,是基于GDAL源码剖析的编程开发指南,共9章,分为三部分。第一部分是前5章,介绍了GDAL的基本功能,包括GDAL简介、ORG库、GDAL库以及GDAL的数据格式和配置项等;第二部分是第6章到第8章,是GDAL的高级使用说明,包括GDAL格式扩展、GDAL算法和CPL库;第三部分是第9章,介绍GDAL工具的使用。&&&&《GDAL源码剖析与开发指南》适合地理信息系统和遥感等相关专业应用的开发人员阅读参考。本书中大部分的示例代码都是使用C/C++语言编写,有一定C/C++语言基础的读者能够快速上手开发相关应用。
&&&&李民录,高级软件工程师。毕业于中国矿业大学地理信息系统专业,长期从事遥感图像处理相关的研发工作,熟练掌握对遥感图像数据从星上接收到生成专题图整个处理流程。熟悉常用的遥感图像处理软件和地理信息系统软件,同时对GDAL一库有着较深入的理解。2013年,作为社区博客之星,他接受了CSDN的专访。
&&&&GDAL一库支持很多数据格式,目前几乎所有的G1S和RS软件底层都使用GDAt一来读写空间数据。目前国内外关于GDA[一的图书非常少,比较权威的只有GDAL一官网的说明文档,导致用户缺少实用的参考资料来学习GDAL。针对这一现状,本书对GDAL一库进行了全面的介绍,配以详尽的实例说明,来帮助读者尽快掌握和领会GDAL强大的功能。
&&&&本书适合地理信息系统(GIS)和遥感(RS)等相关的专业人员阅读,尤其适合开发GIS或RS相关的系统的人员,如果会C/C++的话更好不过了。由于GDAL库是一个专业性比较强的库,需要使用者对空间数据有一定的了解,否则对于GDAI一库中空间坐标相关的内容会感到难以理解。
第1章&&GDAL简介&&1.1&&什么是GDAL&&1.2&&GDAL特点&&1.3&&GDAL支持的数据格式&&1.4&&GDAL源码下载&&1.5&&GDAL源码目录&&&&1.5.1&&文件夹说明&&&&1.5.2&&文件说明&&1.6&&GDAL编译&&&&1.6.1&&常规编译&&&&1.6.2&&自定义编译&&&&1.6.3&&编译其他方面&&1.7&&SWIG编译&&&&1.7.1&&SWIG简介&&&&1.7.2&&编译C#版本GDAL&&&&1.7.3&&编译Python版本GDAL&&&&1.7.4&&编译Java版本GDAL&&1.8&&GDAL帮助文档生成&&&&1.8.1&&Doxygen简介&&&&1.8.2&&生成GDAL开发帮助文档&&1.9&&简单的调用&&&&1.9.1&&C++使用GDAL&&&&1.9.2&&C#使用GDAL&&&&1.9.3&&Python使用GDAL&&&&1.9.4&&Java使用GDAL&&&&1.9.5&&调试GDAL源代码第2章&&OGR空间参考&&2.1&&空间参考简介&&&&2.1.1&&大地水准面&&&&2.1.2&&地球椭球体&&&&2.1.3&&基准面&&&&2.1.4&&地图投影&&2.2&&OGR空间参考&&&&2.2.1&&OGR空间参考简介&&&&2.2.2&&OGR空间参考说明&&2.3&&OGR空间参考坐标转换&&2.4&&OGR空间参考类说明&&&&2.4.1&&OGRSpatialReference类&&&&2.4.2&&OGRCoordinateTransformation类&&2.5&&OGR空间参考使用示例&&&&2.5.1&&C++使用&&&&2.5.2&&C#使用&&&&2.5.3&&Python使用&&&&2.5.4&&Java使用第3章&&OGR库说明&&3.1&&OGR体系结构&&&&3.1.1&&Geometry(几何对象)&&&&3.1.2&&Spatial Reference(空间参考)&&&&3.1.3&&Feature/Feature Definition(要素/要素定义)&&&&3.1.4&&Layer(图层)&&&&3.1.5&&Data Source(数据源)&&&&3.1.6&&Drivers(格式驱动)&&3.2&&OGR常用类说明&&&&3.2.1&&OGRSFDriver类说明&&&&3.2.2&&OGRSFDriverRegistrar类说明&&&&3.2.3&&OGRDataSource类说明&&&&3.2.4&&OGRLayer类说明&&&&3.2.5&&OGRGeometry相关类说明&&&&3.2.6&&OGRFieldDefn类说明&&&&3.2.7&&OGRFeatureDefn类说明&&&&3.2.8&&OGRFeature类说明&&&&3.2.9&&其他说明&&3.3&&SQL说明&&&&3.3.1&&SELECT子句&&&&3.3.2&&WHERE子句&&&&3.3.3&&ORDER BY子句&&&&3.3.4&&JOIN子句&&&&3.3.5&&UNION ALL子句&&&&3.3.6&&特殊字段&&&&3.3.7&&索引与表&&&&3.3.8&&ExecuteSQL()&&&&3.3.9&&Non-OGR SQL&&3.4&&OGR使用示例&&&&3.4.1&&C++使用&&&&3.4.2&&C#使用&&&&3.4.3&&Python使用&&&&3.4.4&&Java使用第4章&&GDAL库说明&&4.1&&GDAL数据集总体概况&&&&4.1.1&&数据集(Dataset)&&&&4.1.2&&坐标系统(Coordinate System)&&&&4.1.3&&元数据(Metadata)&&&&4.1.4&&子数据集域(Subdatasets Domain)&&&&4.1.5&&图像结构域(Image_Structure Domain)&&&&4.1.6&&RPC域(RPC Domain)&&&&4.1.7&&XML域(XML:Domains)&&&&4.1.8&&栅格波段(Raster Band)&&&&4.1.9&&颜色表(Color Table)&&&&4.1.10&&快视图(Overviews)&&4.2&&GDAL常用类说明&&&&4.2.1&&GDALDriverManager类说明&&&&4.2.2&&GDALDriver类说明&&&&4.2.3&&GDALDataset类说明&&&&4.2.4&&GDALRasterBand类说明&&4.3&&GDAL元数据说明&&4.4&&RasterIO使用说明&&4.5&&图像金字塔&&4.6&&颜色表说明&&4.7&&图像统计信息说明&&&&4.7.1&&直方图统计&&&&4.7.2&&极值计算&&&&4.7.3&&均值标准差计算&&4.8&&GDAL库使用示例&&&&4.8.1&&C++使用&&&&4.8.2&&C#使用&&&&4.8.3&&Python使用&&&&4.8.4&&Java使用第5章&&GDAL数据格式及配置项说明&&5.1&&常用图像格式使用说明&&&&5.1.1&&GeoTIFF格式&&&&5.1.2&&Erdas Imagine格式&&&&5.1.3&&PCI的PIX格式&&&&5.1.4&&ENVI的HDR格式&&&&5.1.5&&JPEG,PNG图像使用说明&&&&5.1.6&&MEM文件使用说明&&5.2&&GDAL对于HDF、NetCDF数据集读取&&&&5.2.1&&HDF格式使用说明&&&&5.2.2&&NetCDF格式使用说明&&5.3&&VRT文件格式说明&&&&5.3.1&&VRT格式说明&&&&5.3.2&&VRTRasterBand&&&&5.3.3&&VRT使用说明&&&&5.3.4&&编程创建VRT文件&&5.4&&网络WMS数据使用说明&&5.5&&GDAL配置选项说明&&&&5.5.1&&设置配置选项&&&&5.5.2&&通用选项&&&&5.5.3&&GDAL库选项&&&&5.5.4&&GeoTiff格式选项&&&&5.5.5&&GDAL/OGR网络选项&&&&5.5.6&&OGR库选项第6章&&GDAL格式扩展说明&&6.1&&栅格格式扩展&&&&6.1.1&&从Dataset继承&&&&6.1.2&&从RasterBand继承&&&&6.1.3&&栅格驱动(Driver)&&&&6.1.4&&添加驱动到GDAL库&&&&6.1.5&&添加地理参考信息&&&&6.1.6&&金字塔(快视图)&&&&6.1.7&&创建文件&&&&6.1.8&&RawDataset和RawRasterBand类&&&&6.1.9&&元数据和其他外部扩展&&6.2&&矢量格式扩展&&&&6.2.1&&实现OGRSFDriver类&&&&6.2.2&&从数据源中读取数据&&&&6.2.3&&读取图层&&6.3&&裸数据格式扩展第7章&&GDAL算法使用说明&&7.1&&GDAL算法处理基础&&&&7.1.1&&GDAL大图像处理策略&&&&7.1.2&&GDAL中进度信息说明&&7.2&&GDALWarp说明&&&&7.2.1&&GDALWarpOptions&&&&7.2.2&&GDALWarpOperation&&&&7.2.3&&GDALWarpAPI使用说明&&7.3&&图像重采样&&&&7.3.1&&使用RasterIO重采样&&&&7.3.2&&使用GDALWarp重采样&&7.4&&图像裁切&&&&7.4.1&&使用RasterIO裁切&&&&7.4.2&&使用GDALWarp裁切&&7.5&&图像镶嵌&&7.6&&GDALWarp坐标转换&&&&7.6.1&&GDALWarp坐标转换相关函数说明&&&&7.6.2&&GDALWarp坐标转换流程&&7.7&&图像重投影&&7.8&&图像校正&&&&7.8.1&&几何多项式校正(1~3次)&&&&7.8.2&&TPS校正&&&&7.8.3&&RPC校正&&&&7.8.4&&GeoLoc校正&&7.9&&图像坐标转换通用接口&&7.10&&3*3空间卷积运算&&7.11&&DEM地形分析&&&&7.11.1&&坡度坡向分析&&&&7.11.2&&地形指数&&&&7.11.3&&山体阴影&&&&7.11.4&&彩色渲染&&&&7.11.5&&立体彩色渲染&&7.12&&格网插值&&&&7.12.1&&计算数据指标&&&&7.12.2&&离散点数据插值&&&&7.12.3&&离散点数据插值示例&&7.13&&小碎斑去除&&7.14&&矢量栅格化&&7.15&&栅格矢量化&&7.16&&生成等高线第8章&&CPL库介绍&&8.1&&cpl_port.h&&&&8.1.1&&数据类型定义&&&&8.1.2&&常量和函数定义&&&&8.1.3&&LSB和MSB相互转换&&8.2&&cpl_error.h&&&&8.2.1&&常用的错误代码&&&&8.2.2&&错误处理函数&&8.3&&cpl_conv.h&&&&8.3.1&&GDAL库配置项读写&&&&8.3.2&&内存管理相关&&&&8.3.3&&文本文件读取相关&&&&8.3.4&&字符串与其他数据类型相关转换&&&&8.3.5&&应用程序与动态库相关&&&&8.3.6&&文件系统以及路径相关&&&&8.3.7&&度、分、秒与十进制度转换&&&&8.3.8&&ZIP压缩文件读写&&8.4&&cpl_http.h&&8.5&&cpl_minixml.h第9章&&GDAL工具使用说明&&9.1&&GDAL工具通用参数说明&&&&9.1.1&&通用命令行选项&&&&9.1.2&&创建文件通用选项&&9.2&&Exe工具使用说明&&&&9.2.1&&gdalinfo&&&&9.2.2&&gdal_translate&&&&9.2.3&&gdaladdo&&&&9.2.4&&gdalwarp&&&&9.2.5&&gdaltindex&&&&9.2.6&&gdalbuildvrt&&&&9.2.7&&gdal_contour&&&&9.2.8&&gdaldem&&&&9.2.9&&gdal_rasterize&&&&9.2.10&&gdaltransform&&&&9.2.11&&nearblack&&&&9.2.12&&gdal_grid&&&&9.2.13&&gdallocationinfo&&&&9.2.14&&gdalsrsinfo&&&&9.2.15&&gdal-config&&&&9.2.16&&gdalmanage&&&&9.2.17&&ogrinfo&&&&9.2.18&&ogr2ogr&&&&9.2.19&&ogrtindex&&9.3&&Python脚本工具使用说明&&&&9.3.1&&rgb2pct.py&&&&9.3.2&&pct2rgb.py&&&&9.3.3&&gdal_merge.py&&&&9.3.4&&gdal2tiles.py&&&&9.3.5&&gdal_retile.py&&&&9.3.6&&gdal_proximity.py&&&&9.3.7&&gdal_polygonize.py&&&&9.3.8&&gdal_sieve.py&&&&9.3.9&&gdal_fillnodata.py&&&&9.3.10&&gdalmove.py&&&&9.3.11&&gdal_edit.py附录  摘 要: 随着遥感应用技术的不断发展,对ESRI Shapefile格式图像文件的处理需求变得日益紧迫。目前能对它进行" />
免费阅读期刊
论文发表、论文指导
周一至周五
9:00&22:00
基于GDAL的ESRI Shapefile格式文件处理
&&&&&&本期共收录文章20篇
  摘 要: 随着遥感应用技术的不断发展,对ESRI Shapefile格式图像文件的处理需求变得日益紧迫。目前能对它进行处理的软件有很多,但是这些软件运行时占用大量系统资源,而直接将商业软件嵌入到自主开发的软件中也是不可取的。因此,能够在自主开发的遥感图像处理软件中实现对ESRI Shapefile格式文件的操作已经变得非常重要。通过对ESRI Shapefile格式的影像数据结构特征分析,提出基于GDAL实现ESRI Shapefile格式文件到png文件格式的转换和处理方法,包括地理信息获取、坐标系统转换和文件格式转换。通过试验验证了该方法的可行性。 中国论文网 /8/view-6193809.htm  关键词: GDAL; ESRI Shapefile格式; 地理信息获取; 坐标系统转换; 文件格式转换   中图分类号:TP399 文献标志码:A 文章编号:(-03   ESRI Shapefile file handling based on GDAL   Kong Shuaike1, Qiao Baojun1,2, Fu Zhengye1   (1. Department of Computer Science and Technology, Henan University, Kaifeng, Henan 475000, China; 2. Software Academy, Henan University)   Abstract: With the incessant development of remote sensing application technology, the demand for analyzing the image files of ESRI Shapefile becomes more and more. There are a lot of software available currently. However, these software take up redundant resources at runtime. It is inadvisable to directly embed the commercial software into the self-developed software. Therefore, it is become important to handle ESRI Shapefile format file with self-developed remote sensing image processing software. Through analysis on the image date and structure features of the ESRI Shapefile format, the conversion method of ESRI Shapefile files to png format based on GDAL is proposed, including acquiring geographic info, coordinate transformation and format conversion. The practice shows the feasibility of the method.   Key words: GDAL; ESRI Shapefile format; geographic information acquisition; coordinate transformation; format conversion   0 引言   地理信息系统是近年来新兴的一个集地理学、计算机技术、遥感技术和地图学于一体的综合系统,已广泛应用在城市、资源、环境、交通、人口、土地、灾害和规划管理等领域[1]。ESRI公司的Shapefile是用于存储非拓扑结构空间要素的一种数据格式,已成为GIS数据交换的一种标准格式[2]。ESRI Shapefile作为矢量文件的通用格式之一,很多商业化软件都具备对Shapefile文件的操作功能。地理信息系统软件ArcGIS作为中国地理信息界用户群体最大、应用最广的GIS技术平台之一[3],对Shapefile文件提供了很好的支持。然而在实际项目开发中,把功能庞大的ArcGIS嵌入到项目中是不现实的,此外,项目开发也需要摆脱对商业软件的依赖。因此灵活准确地处理ESRI Shapefile格式图像,就变得越来越重要。本文基于GDAL库实现了一种满足以上需求的方案。通过分析ESRI Shapefile文件格式,寻找获取图像信息、地理信息的方法;通过注册环境变量,调用GDAL的OGR库,就能够完成ESRI Shapefile文件的读取;通过了解更多的OGR库的知识,分析不同坐标系之间转换的可行性,最终不仅灵活实现了ESRI Shapefile格式图像的信息的获取,也实现了ESRI Shapefile文件格式向png格式的转换以及坐标系的转换。这些成果在实际项目开发中都有着重要的现实意义。   1 读取文件   ESRI Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。ESRI Shapefile文件格式采用编码效率较高的二进制格式,点的坐标采用双精度保存[4]。ESRI Shapefile文件系统由多个文件组成,每个完整的Shapefile文件至少由三个文件组成:SHP文件、SHX文件和DBF文件。SHP文件用于保存元素的几何实体;SHX文件保存几何体位置索引,记录每一个几何体在SHP文件之中的位置;dBASE(DBF文件)表包含了实体的属性数据。图形数据和属性数据通过索引号建立一一对应的关系[5]。有些ESRI Shapefile文件还包括PRJ文件,PRJ是投影文件, 包含着相关图幅的投影信息[6]。
  GDAL(Geospatial Data Abstraction Library)是一个基于X/MIT许可协议的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式,并拥有一系列命令行工具用于数据转换和处理。OGR是GDAL库的一部分,它提供对矢量数据的支持。OGR提供了对多种矢量数据格式的读写支持[7],包括ESRI Shapefile文件。在OGR中,不同的数据格式对应不同的驱动(Driver),OGR统一管理所有支持的驱动,使用驱动完成地理数据格式的读取与保存。由于ESRI Shapefile文件格式具有一定的复杂度,我们无法直接提取其属性信息,而利用GDAL库就可以很轻松地完成这一功能。   我们可以用以下代码获取ESRI Shapefile属性信息:   1 OSGeo.OGR.Ogr.RegisterAll();   2 Driver dr=Ogr.GetDriverByName("ESRI Shapefile");   3 DataSource orgDs=dr.Open(ShpFilePath, 0);   4 if (orgDs==null)   5 return;   6 Layer orgLayer=orgDs.GetLayerByIndex(0);   7 Envelope ex=new Envelope();   8 orgLayer.GetExtent(ex, 0);   9 string strShapeType=orgLayer.GetLayerDefn()   .GetGeomType().ToString();   10 Feature orgFr=orgLayer.GetFeature(0);   11 Geometry ogrGeo=orgFr.GetGeometryRef();   12 FieldType strType=orgFr.GetFieldType(0);   13 FeatureDefn pofeature=orgLayer.GetLayerDefn();   14 FieldDefn pofield=pofeature.GetFieldDefn(0);   15 OSGeo.OSR.SpatialReference Spatial1=ogrGeo   .GetSpatialReference();   16 Spatial1.ExportToWkt(out strReference);   17 ogrGeo.ExportToWkt(out strPoints);   为方便查看ESRI Shapefile文件的属性信息,将获取到的信息以xml文件的形式保存。图1是北京县域的Shapefile文件信息的部分截图。   2 坐标系统的转换   ESRI Shapefile文件保存的是地理空间资料,不可避免地涉及到地理坐标系统。坐标系统的定义基于地球椭球体,下面我们列举一些常用的坐标系统及其采用的地球椭球体。克拉索夫斯基椭球(1940Krassovsky):北京54坐标系采用的椭球。1975年I. U.G. G推荐椭球( 国际大地测量协会1975):西安80坐标系采用的椭球。WGS-84椭球(GPS全球定位系统椭球、17届国际大地测量协会):WGS-84坐标系椭球[8]。由于不同坐标系采用不同的球面坐标和投影算法,同一地理位置,在不同的坐标系统下,所显示出来的坐标值也不同。在应用程序中,我们需要将使用不同坐标系统的ESRI Shapefile文件,以统一的坐标系统,将坐标值显示出来。OGR库中的OGRSpatialReference和OGRCoordinateTransformation类提供了用来描绘坐标系统(投影和基准面)以及坐标系统相互之间转换的服务。OGRSpatialReference类用来创建一个坐标系统[9],CoordinateTransformation类用来在不同坐标系统间转换坐标。新的转换对象由OGRCoordinateTransformation()方法创建。创建后可用TransformPoint()方法来转换不同坐标系的点。以下代码完成不同坐标系下的坐标转换。   1 OSGeo.OGR.Ogr.RegisterAll();   2 Driver dr=Ogr.GetDriverByName("ESRI Shapefile");   3 DataSource orgDs=dr.Open(ShpFilePath, 0);   4 if (orgDs==null)   5 return;   6 Layer orgLayer=orgDs.GetLayerByIndex(0);   7 Feature orgFr=orgLayer.GetFeature(i);   8 Geometry ogrGeo=orgFr.GetGeometryRef();   9 OSGeo.OSR.SpatialReference sourceSpatial=ogrGeo   .GetSpatialReference();   10 OSGeo.OSR.SpatialReference targetSpatial=new   OSGeo.OSR.SpatialReference("");   11 Spatial.ImportFromProj4("+proj=longlat+ellps=WGS84   +no_defs");
  12 OSGeo.OSR.CoordinateTransformation tran=new OSGeo   .OSR.CoordinateTransformation(sourceSpatial,targetSpatial);   13 double[] da=new double[3];   14 tran.TransformPoint(da,x,y,z);   3 文件格式转换   3.1 格式转换   ESRI Shapefile文件是一种特殊的影像格式,无法用常用的看图工具正常打开,因此不方便使用和查看,但将ESRI Shapefile文件转换为png格式后就可以很方便地进行处理。在ESRI Shapefile文件格式简介中我们了解到,ESRI Shapefile文件将地理空间资料以坐标点串的形式存储起来,根据这些点串,我们可以利用C#语言中的Graphics类轻松地将该地理形状描绘出来。根据这一原理,可完成ESRI Shapefile影像格式向png格式的转换。利用ESRI Shapefile文件读取,获取ESRI Shapefile地理坐标点串。然而这里还有一个问题需要解决:如何将地理经纬度坐标转换为画布坐标。针对这一问题,本文做了以下操作:首先计算该ESRI Shapefile文件的边界盒大小,求出边界盒的宽度与高度,然后与画布的对应宽度与高度做比值运算,确定放大倍数,再计算ESRI Shapefile文件每个地理坐标点与边界盒左上角的偏移距离,由此确定该点在画布中的确切位置。转化算法如下:   PIONT-TRANSFORM(xmax,xmin,ymax,ymin,Point)   1 //计算边界盒宽度   2 width=Math.Abs(xmax-xmin);   3 //计算边界盒高度   4 height=Math.Abs(ymax-ymin)   5 //边界盒的宽高比   6 aspectRatio=width/height;   7 //画布的宽高比   8 canvasRatio=Width/Height;   9 //计算比例,使得shp几何图形可以保持原有比例在画布上最大化显示   10 scaleFactor=1.0;   11 if aspectRatio<canvasRatio   12 then scaleFactor=Height/height;   13 else   14 then scaleFactor=Width/width;   15 newPoint.X=(Point.X-xmin)*scaleFactor;   16 //注意画布y坐标轴与实际y坐标轴方向相反   17 newPoint.Y=(ymax-Point.Y )*scaleFactor;   18 return newPiont;   用此方法将ESRI Shapefile文件地理坐标点串全部转换为画布坐标后,只需用Graphics类的DrawCurve()方法画出图形,利用Bitmap的Save方法将其保存为png格式。   3.2 转化效果   对同一个北京县域的ESRI Shapefile文件,图2是在arcGis下看到的形状,图3是利用上述方法得到png图像。   对比图2与图3可以清晰地看出,对于同一个ESRI Shapefile文件,通过程序转换后的png图与arcgis下查看的到图像形状完全一样,图像没有失真。另外,可以通过该方法,将ESRI Shapefile文件图像形状以Image对象的形式显示在应用程序相应的控件中。   4 结束语   本文提出基于GDAL开源函数库对ESRI Shapefiles文件格式的处理,实现提取ESRI Shapefiles文件的详细属性信息,以及不同坐标系统之间的转换,将ESRI Shapefiles格式转换为易于查看的png格式,通过实验验证,获取到的ESRI Shapefiles文件属性信息详细、准确,转换后的png图像效果良好。通过这一成果,可以有效地摆脱应用程序对商业软件的依赖,将其应用在实际项目开发中有重要的现实意义。在坐标系统转换过程中,由于掌握的地理坐标系统的资料及个人能力有限,目前仅完成几种常用的坐标系统间的转换。今后我们将进一步研究地理坐标系统,提供更多坐标系统间的转换,提高坐标转换的精度及效率。   参考文献:   [1] 柳佳佳,栾晓岩.ShapeFile格式文件写入方法研究[J].测绘通报,   -92   [2] 佘远见,郭旭东,何挺.用于操作Shapefile的COM组件开发与应用[J].   测绘科学,):230-231   [3] 李秀梅,吴凡,徐殿成等.基于ArcGIS的校园图书馆三维建模研究[J].   计算机科学,2012.39(Z6):563-565   [4] 刘峰,张继贤,李海涛.SHP文件格式的研究与应用[J].测绘科学,   ):116-117   [5] 刘伟,张海荣.基于GML从DXF文件到SHP文件格式转换的研究与   开发[J].测绘科学,):177-178   [6] 蒋红燕,杨哲海.地理信息从SHP格式向SVG格式转换[J].测绘通报,   -76   [7] 徐杨,孙群,冯克忠等.基于OGR的交换格式数据驱动的设计与实现[J].   测绘通报,-56   [8] 梁世文,王春光,伊志永.ArcGIS坐标系统探讨[J].地理空间信息,   )152-154   [9] 付卫平,郭建文,刘鹏.基于Google Map API的矢量化Web平台[J].遥   感技术与应用,):863-867
转载请注明来源。原文地址:
【xzbu】郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们删除已转载的信息。
xzbu发布此信息目的在于传播更多信息,与本网站立场无关。xzbu不保证该信息(包括但不限于文字、数据及图表)准确性、真实性、完整性等。}

我要回帖

更多关于 商业智能开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信