Documentation
¶
Overview ¶
Package udbx4go provides a Go implementation of the UDBX (Universal Spatial Database Extension) reader/writer library. UDBX is a spatial data format based on SQLite.
Basic Usage ¶
Opening an existing UDBX file:
ds, err := udbx4go.Open("data.udbx")
if err != nil {
log.Fatal(err)
}
defer ds.Close()
Creating a new UDBX file:
ds, err := udbx4go.Create("newdata.udbx")
if err != nil {
log.Fatal(err)
}
defer ds.Close()
Dataset Types ¶
UDBX supports multiple dataset types:
- Point: 2D point features
- Line: 2D line features
- Region: 2D polygon features
- PointZ: 3D point features
- LineZ: 3D line features
- RegionZ: 3D polygon features
- Tabular: Non-spatial tables
- Text: Text annotation features
- CAD: CAD geometry features
Geometry Model ¶
The library uses a GeoJSON-like geometry model:
- PointGeometry: {"type": "Point", "coordinates": [x, y]}
- MultiLineStringGeometry: {"type": "MultiLineString", "coordinates": [...]}
- MultiPolygonGeometry: {"type": "MultiPolygon", "coordinates": [...]}
Error Handling ¶
All errors implement the UdbxError interface with a Code() method:
- FormatError: Invalid UDBX format
- NotFoundError: Dataset or feature not found
- UnsupportedError: Unsupported operation
- ConstraintError: Data constraint violation
- IOError: File I/O error
Example:
dataset, err := ds.GetDataset("cities")
if err != nil {
if errors.Is(err, udbx4go.ErrNotFound) {
// Handle not found
}
}
Specification Compliance ¶
This library follows the udbx4spec cross-language specification for compatibility with Java (udbx4j) and TypeScript (udbx4ts) implementations.
Index ¶
- Constants
- Variables
- type CadFillStyle
- type CadGeometry
- type CadLineGeometry
- type CadLineStyle
- type CadMarkerStyle
- type CadPointGeometry
- type CadRegionGeometry
- type CadStyle
- type Color
- type DataSource
- func (ds *DataSource) Close() error
- func (ds *DataSource) CreateCadDataset(name string, fields []*types.FieldInfo) (*dataset.CadDataset, error)
- func (ds *DataSource) CreateLineDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.LineDataset, error)
- func (ds *DataSource) CreateLineZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.LineZDataset, error)
- func (ds *DataSource) CreatePointDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.PointDataset, error)
- func (ds *DataSource) CreatePointZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.PointZDataset, error)
- func (ds *DataSource) CreateRegionDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.RegionDataset, error)
- func (ds *DataSource) CreateRegionZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.RegionZDataset, error)
- func (ds *DataSource) CreateTabularDataset(name string, fields []*types.FieldInfo) (*dataset.TabularDataset, error)
- func (ds *DataSource) CreateTextDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.TextDataset, error)
- func (ds *DataSource) GetCadDataset(name string) (*dataset.CadDataset, error)
- func (ds *DataSource) GetDataset(name string) (dataset.Dataset, error)
- func (ds *DataSource) GetLineDataset(name string) (*dataset.LineDataset, error)
- func (ds *DataSource) GetPointDataset(name string) (*dataset.PointDataset, error)
- func (ds *DataSource) GetRegionDataset(name string) (*dataset.RegionDataset, error)
- func (ds *DataSource) GetTabularDataset(name string) (*dataset.TabularDataset, error)
- func (ds *DataSource) GetTextDataset(name string) (*dataset.TextDataset, error)
- func (ds *DataSource) ListDatasets() ([]*types.DatasetInfo, error)
- type DatasetInfo
- type DatasetKind
- type Feature
- type FeatureChanges
- type FieldInfo
- type FieldType
- type Geometry
- type MultiLineStringGeometry
- type MultiPolygonGeometry
- type PointGeometry
- type QueryOptions
- type TabularRecord
- type TextGeometry
- type TextStyle
- type TextSubText
- type UdbxError
Constants ¶
const ( DatasetKindTabular = types.DatasetKindTabular DatasetKindPoint = types.DatasetKindPoint DatasetKindLine = types.DatasetKindLine DatasetKindRegion = types.DatasetKindRegion DatasetKindText = types.DatasetKindText DatasetKindPointZ = types.DatasetKindPointZ DatasetKindLineZ = types.DatasetKindLineZ DatasetKindRegionZ = types.DatasetKindRegionZ DatasetKindCAD = types.DatasetKindCAD )
DatasetKind constants.
const ( FieldTypeBoolean = types.FieldTypeBoolean FieldTypeByte = types.FieldTypeByte FieldTypeInt16 = types.FieldTypeInt16 FieldTypeInt32 = types.FieldTypeInt32 FieldTypeInt64 = types.FieldTypeInt64 FieldTypeSingle = types.FieldTypeSingle FieldTypeDouble = types.FieldTypeDouble FieldTypeDate = types.FieldTypeDate FieldTypeBinary = types.FieldTypeBinary FieldTypeGeometry = types.FieldTypeGeometry FieldTypeChar = types.FieldTypeChar FieldTypeNText = types.FieldTypeNText FieldTypeText = types.FieldTypeText FieldTypeTime = types.FieldTypeTime )
FieldType constants.
Variables ¶
var ( IsFormatError = errors.IsFormatError IsNotFound = errors.IsNotFound IsUnsupported = errors.IsUnsupported IsConstraintViolation = errors.IsConstraintViolation IsIOError = errors.IsIOError IsUdbxError = errors.IsUdbxError )
Error checking functions.
var ( ErrNotFound = errors.ErrNotFound ErrFormat = errors.ErrFormat ErrUnsupported = errors.ErrUnsupported ErrConstraint = errors.ErrConstraint ErrIO = errors.ErrIO )
Sentinel errors.
Functions ¶
This section is empty.
Types ¶
type CadFillStyle ¶
type CadFillStyle = types.CadFillStyle
CadFillStyle represents a CAD fill style.
type CadGeometry ¶
type CadGeometry = types.CadGeometry
CadGeometry represents a minimal CAD GeoHeader geometry.
type CadLineGeometry ¶
type CadLineGeometry = types.CadLineGeometry
CadLineGeometry represents a CAD line geometry.
type CadLineStyle ¶
type CadLineStyle = types.CadLineStyle
CadLineStyle represents a CAD line style.
type CadMarkerStyle ¶
type CadMarkerStyle = types.CadMarkerStyle
CadMarkerStyle represents a CAD marker style.
type CadPointGeometry ¶
type CadPointGeometry = types.CadPointGeometry
CadPointGeometry represents a CAD point geometry.
type CadRegionGeometry ¶
type CadRegionGeometry = types.CadRegionGeometry
CadRegionGeometry represents a CAD region geometry.
type DataSource ¶
type DataSource struct {
// contains filtered or unexported fields
}
DataSource represents a UDBX data source.
func (*DataSource) CreateCadDataset ¶
func (ds *DataSource) CreateCadDataset(name string, fields []*types.FieldInfo) (*dataset.CadDataset, error)
CreateCadDataset creates a new CAD GeoHeader dataset.
func (*DataSource) CreateLineDataset ¶
func (ds *DataSource) CreateLineDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.LineDataset, error)
CreateLineDataset creates a new 2D line dataset.
func (*DataSource) CreateLineZDataset ¶
func (ds *DataSource) CreateLineZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.LineZDataset, error)
CreateLineZDataset creates a new 3D line dataset.
func (*DataSource) CreatePointDataset ¶
func (ds *DataSource) CreatePointDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.PointDataset, error)
CreatePointDataset creates a new 2D point dataset.
func (*DataSource) CreatePointZDataset ¶
func (ds *DataSource) CreatePointZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.PointZDataset, error)
CreatePointZDataset creates a new 3D point dataset.
func (*DataSource) CreateRegionDataset ¶
func (ds *DataSource) CreateRegionDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.RegionDataset, error)
CreateRegionDataset creates a new 2D region dataset.
func (*DataSource) CreateRegionZDataset ¶
func (ds *DataSource) CreateRegionZDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.RegionZDataset, error)
CreateRegionZDataset creates a new 3D region dataset.
func (*DataSource) CreateTabularDataset ¶
func (ds *DataSource) CreateTabularDataset(name string, fields []*types.FieldInfo) (*dataset.TabularDataset, error)
CreateTabularDataset creates a new tabular dataset.
func (*DataSource) CreateTextDataset ¶
func (ds *DataSource) CreateTextDataset(name string, srid int, fields []*types.FieldInfo) (*dataset.TextDataset, error)
CreateTextDataset creates a new Text / GeoText dataset.
func (*DataSource) GetCadDataset ¶
func (ds *DataSource) GetCadDataset(name string) (*dataset.CadDataset, error)
GetCadDataset returns a CAD dataset by name.
func (*DataSource) GetDataset ¶
func (ds *DataSource) GetDataset(name string) (dataset.Dataset, error)
GetDataset returns a dataset by name (generic interface).
func (*DataSource) GetLineDataset ¶
func (ds *DataSource) GetLineDataset(name string) (*dataset.LineDataset, error)
GetLineDataset returns a line dataset by name.
func (*DataSource) GetPointDataset ¶
func (ds *DataSource) GetPointDataset(name string) (*dataset.PointDataset, error)
GetPointDataset returns a point dataset by name.
func (*DataSource) GetRegionDataset ¶
func (ds *DataSource) GetRegionDataset(name string) (*dataset.RegionDataset, error)
GetRegionDataset returns a region dataset by name.
func (*DataSource) GetTabularDataset ¶
func (ds *DataSource) GetTabularDataset(name string) (*dataset.TabularDataset, error)
GetTabularDataset returns a tabular dataset by name.
func (*DataSource) GetTextDataset ¶
func (ds *DataSource) GetTextDataset(name string) (*dataset.TextDataset, error)
GetTextDataset returns a Text dataset by name.
func (*DataSource) ListDatasets ¶
func (ds *DataSource) ListDatasets() ([]*types.DatasetInfo, error)
ListDatasets returns a list of all datasets in the data source.
type FeatureChanges ¶
type FeatureChanges = dataset.FeatureChanges
FeatureChanges holds geometry and attribute changes for vector dataset updates.
type MultiLineStringGeometry ¶
type MultiLineStringGeometry = types.MultiLineStringGeometry
MultiLineStringGeometry represents a MultiLineString geometry.
type MultiPolygonGeometry ¶
type MultiPolygonGeometry = types.MultiPolygonGeometry
MultiPolygonGeometry represents a MultiPolygon geometry.
type PointGeometry ¶
type PointGeometry = types.PointGeometry
PointGeometry represents a Point geometry.
type QueryOptions ¶
type QueryOptions = types.QueryOptions
QueryOptions provides options for querying features.
type TabularRecord ¶
type TabularRecord = types.TabularRecord
TabularRecord represents a non-spatial record.
type TextGeometry ¶
type TextGeometry = types.TextGeometry
TextGeometry represents a UDBX GeoText geometry.
type TextSubText ¶
type TextSubText = types.TextSubText
TextSubText represents a GeoText sub-text object.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
udbx4go-example
command
|
|
|
udbx4go-roundtrip-fixture
command
|
|
|
internal
|
|
|
codec
Package codec provides binary codecs for UDBX geometry formats.
|
Package codec provides binary codecs for UDBX geometry formats. |
|
dataset
Package dataset provides UDBX dataset implementations.
|
Package dataset provides UDBX dataset implementations. |
|
schema
Package schema provides UDBX database schema initialization.
|
Package schema provides UDBX database schema initialization. |
|
system
Package system provides DAOs for UDBX system tables.
|
Package system provides DAOs for UDBX system tables. |
|
pkg
|
|
|
errors
Package errors provides UDBX-specific error types.
|
Package errors provides UDBX-specific error types. |
|
types
Package types provides core type definitions for udbx4go.
|
Package types provides core type definitions for udbx4go. |