BNA-阿特拉斯BNA

司机简称

BNA

Driver built-in by default

This driver is built-in by default

BNA格式是一种ASCII交换格式,用于由许多软件包支持的2D矢量数据。它只包含几何图形和每个记录的一些标识符。属性必须存储在外部文件中。它不支持任何坐标系信息。

OGR支持BNA读写。

OGR驱动程序支持读取和写入所有BNA功能类型:

  • 多边形

  • 线

  • 椭圆/圆

由于BNA格式缺乏形式化规范,因此可以有各种形式的BNA数据文件。OGR驱动程序尽最大努力解析BNA数据集,并支持单行或多行记录格式、带有2、3或4个标识符的记录等。如果BNA驱动程序无法正确解析BNA数据文件,请在GDAL跟踪系统上报告。

要识别为BNA,文件扩展名必须为“.BNA”。当读取一个BNA文件时,驱动程序将对其进行全面扫描,找出哪些层是可用的。如果文件名为foo.bna,则图层将命名为foo-points、foo-polygons、foo-line和foo-elliples。

BNA驱动程序支持读取带有孔或湖的多边形。它仅通过几何分析(包含、非相交测试)确定什么是孔或湖,并完全忽略多边形缠绕的概念(多边形边是顺时针还是逆时针描述)。GDAL必须在启用GEOS的情况下生成,才能使几何测试工作。在OGR简单特征模型中,多边形显示为多多边形。

椭圆和圆被离散为360点的多边形。

驱动程序功能

Supports Create()

This driver supports the GDALDriver::Create() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

创建问题

在导出时,所有层都写入一个BNA文件。当前不支持更新现有文件。

如果输出文件已经存在,则不会进行写入。必须先删除现有文件。

BNA writer支持以下创建选项(数据集选项):

  • LINEFORMAT :默认情况下,在创建新的.BNA文件时,它们是使用本地平台的行终止约定创建的(在win32上为CR/LF,在所有其他系统上为LF)。这可以通过使用LINEFORMAT图层创建选项来覆盖,该选项的值可以为 CRLF (DOS格式)或 LF (Unix格式)。

  • MULTILINE :默认情况下,BNA文件是以多行格式创建的(对于每个记录,第一行包含标识符和要遵循的坐标类型/数量)。以下几行包含一对坐标)。这可以通过使用多行覆盖=NO .

  • NB_IDS :BNA记录可以包含每个记录2到4个标识符。有些软件包只支持精确数量的标识符。可以用精确的值覆盖默认值(2): 234NB_SOURCE_FIELDS . NB_SOURCE_字段意味着输出文件将包含与写入的特征相同数量的标识符(夹在2和4之间)。

  • ELLIPSES_AS_ELLIPSES :编写多边形时,BNA编写器将尝试识别椭圆和圆。只有在以前从BNA文件中读取过该功能时,此功能才起作用。由于某些软件包不支持BNA数据文件中的省略号/圆圈,因此可以通过将省略号指定为省略号来告诉编写器=NO 不是这样导出它们,而是保持它们为多边形。

  • NB_PAIRS_PER_LINE :此选项可用于限制多行格式中每行的坐标对数。

  • COORDINATE_PRECISION :此选项可用于设置坐标的小数位数。默认值为10。

VSI虚拟文件系统API支持

驱动程序支持读取和写入由VSI虚拟文件系统API管理的文件,这些文件包括“常规”文件以及/vsizip/(读写)、/vsigzip/(读写)、/vsicurl/(只读)域中的文件。

还支持写入/dev/stdout或/vsistdout/。

例子

ogrinfo实用程序可用于转储BNA数据文件的内容:

ogrinfo -ro -al a_bna_file.bna

ogr2ogr实用程序可用于进行BNA到BNA的转换:

ogr2ogr -f BNA -dsco "NB_IDS=2" -dsco "ELLIPSES_AS_ELLIPSES=NO" output.bna input.bna

也见