Documentation ¶
Index ¶
- func AttributeCount(sr SequentialReader) int
- func ShapesInZip(zipFilePath string) ([]string, error)
- type Attribute
- type Box
- type CharacterAttribute
- type DateAttribute
- type Field
- type FieldType
- type FloatAttribute
- type MultiPatch
- type MultiPoint
- type MultiPointM
- type MultiPointZ
- type Null
- type NumericAttribute
- type OptionFunc
- type Point
- type PointM
- type PointZ
- type PolyLine
- type PolyLineM
- type PolyLineZ
- type Polygon
- type PolygonM
- type PolygonZ
- type RawAttribute
- type Reader
- func (r *Reader) Attribute(n int) Attribute
- func (r *Reader) AttributeCount() int
- func (r *Reader) BBox() Box
- func (r *Reader) Close() error
- func (r *Reader) Err() error
- func (r *Reader) Fields() []Field
- func (r *Reader) Next() bool
- func (r *Reader) ReadAttribute(row int, field int) Attribute
- func (r *Reader) Shape() (int, Shape)
- type SequentialReader
- type Shape
- type ShapeType
- type Writer
- type ZipReader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AttributeCount ¶
func AttributeCount(sr SequentialReader) int
AttributeCount returns the number of fields of the database.
func ShapesInZip ¶
ShapesInZip returns a string-slice with the names (i.e. relatives paths in archive file tree) of all shapes that are in the ZIP archive at zipFilePath.
Types ¶
type Attribute ¶ added in v0.2.0
type Attribute interface { Name() string Value() interface{} }
func Attributes ¶
func Attributes(sr SequentialReader) []Attribute
Attributes returns all attributes of the shape that sr was last advanced to.
type Box ¶
type Box struct {
MinX, MinY, MaxX, MaxY float64
}
Box structure made up from four coordinates. This type is used to represent bounding boxes
func BBoxFromPoints ¶
BBoxFromPoints returns the bounding box calculated from points.
func (*Box) Extend ¶
Extend extends the box with coordinates from the provided box. This method calls Box.ExtendWithPoint twice with {MinX, MinY} and {MaxX, MaxY}
func (*Box) ExtendWithPoint ¶
ExtendWithPoint extends box with coordinates from point if they are outside the range of the current box.
type CharacterAttribute ¶ added in v0.2.0
type CharacterAttribute struct {
// contains filtered or unexported fields
}
func (*CharacterAttribute) Name ¶ added in v0.2.0
func (a *CharacterAttribute) Name() string
func (*CharacterAttribute) Value ¶ added in v0.2.0
func (a *CharacterAttribute) Value() interface{}
type DateAttribute ¶ added in v0.2.0
type DateAttribute struct {
// contains filtered or unexported fields
}
func (*DateAttribute) Name ¶ added in v0.2.0
func (a *DateAttribute) Name() string
func (*DateAttribute) Value ¶ added in v0.2.0
func (a *DateAttribute) Value() interface{}
type Field ¶
type Field struct { Name [11]byte Fieldtype FieldType Addr [4]byte // not used Size uint8 Precision uint8 Padding [14]byte }
Field representation of a field object in the DBF file
func DateField ¶
DateField feturns a Field that can be used in SetFields to initialize the DBF file. Used to store Date strings formatted as YYYYMMDD. Data wise this is the same as a StringField with length 8.
func FloatField ¶
FloatField returns a Field that can be used in SetFields to initialize the DBF file. Used to store floating points with precision in the DBF.
func NumberField ¶
NumberField returns a Field that can be used in SetFields to initialize the DBF file.
func StringField ¶
StringField returns a Field that can be used in SetFields to initialize the DBF file.
type FloatAttribute ¶ added in v0.2.0
type FloatAttribute NumericAttribute
type MultiPatch ¶
type MultiPatch struct { Box Box NumParts int32 NumPoints int32 Parts []int32 PartTypes []int32 Points []Point ZRange [2]float64 ZArray []float64 MRange [2]float64 MArray []float64 }
MultiPatch consists of a number of surfaces patches. Each surface path descries a surface. The surface patches of a MultiPatch are referred to as its parts, and the type of part controls how the order of vertices of an MultiPatch part is interpreted.
func (MultiPatch) BBox ¶
func (p MultiPatch) BBox() Box
BBox returns the bounding box of the MultiPatch feature
type MultiPoint ¶
MultiPoint is the shape that consists of multiple points.
func (MultiPoint) BBox ¶
func (p MultiPoint) BBox() Box
BBox returns the bounding box of the MultiPoint feature
type MultiPointM ¶
type MultiPointM struct { Box Box NumPoints int32 Points []Point MRange [2]float64 MArray []float64 }
MultiPointM is the collection of multiple points with measures.
func (MultiPointM) BBox ¶
func (p MultiPointM) BBox() Box
BBox eturns the bounding box of the MultiPointM feature
type MultiPointZ ¶
type MultiPointZ struct { Box Box NumPoints int32 Points []Point ZRange [2]float64 ZArray []float64 MRange [2]float64 MArray []float64 }
MultiPointZ consists of one ore more PointZ.
func (MultiPointZ) BBox ¶
func (p MultiPointZ) BBox() Box
BBox eturns the bounding box of the MultiPointZ feature.
type NumericAttribute ¶ added in v0.2.0
type NumericAttribute struct {
// contains filtered or unexported fields
}
func (*NumericAttribute) Name ¶ added in v0.2.0
func (a *NumericAttribute) Name() string
func (*NumericAttribute) Value ¶ added in v0.2.0
func (a *NumericAttribute) Value() interface{}
type OptionFunc ¶ added in v0.2.0
type OptionFunc func(*option)
OptionFunc used to set options
func WithDbfEncoding ¶ added in v0.2.0
func WithDbfEncoding(enc string) OptionFunc
WithDbfEncoding set the encoding of dbf file
type Point ¶
type Point struct {
X, Y float64
}
Point is the shape that consists of single a geometry point.
type PolyLine ¶
PolyLine is a shape type that consists of an ordered set of vertices that consists of one or more parts. A part is a connected sequence of two ore more points. Parts may or may not be connected to another and may or may not intersect each other.
func NewPolyLine ¶
NewPolyLine returns a pointer a new PolyLine created with the provided points. The inner slice should be the points that the parent part consists of.
type PolyLineM ¶
type PolyLineM struct { Box Box NumParts int32 NumPoints int32 Parts []int32 Points []Point MRange [2]float64 MArray []float64 }
PolyLineM is the polyline in which each point also has a measure.
type PolyLineZ ¶
type PolyLineZ struct { Box Box NumParts int32 NumPoints int32 Parts []int32 Points []Point ZRange [2]float64 ZArray []float64 MRange [2]float64 MArray []float64 }
PolyLineZ is a shape which consists of one or more parts. A part is a connected sequence of two or more points. Parts may or may not be connected and may or may not intersect one another.
type Polygon ¶
type Polygon PolyLine
Polygon is identical to the PolyLine struct. However the parts must form rings that may not intersect.
type RawAttribute ¶ added in v0.2.0
type RawAttribute struct {
// contains filtered or unexported fields
}
func (*RawAttribute) Name ¶ added in v0.2.0
func (a *RawAttribute) Name() string
func (*RawAttribute) Value ¶ added in v0.2.0
func (a *RawAttribute) Value() interface{}
type Reader ¶
type Reader struct { GeometryType ShapeType // contains filtered or unexported fields }
Reader provides a interface for reading Shapefiles. Calls to the Next method will iterate through the objects in the Shapefile. After a call to Next the object will be available through the Shape method.
func Open ¶
func Open(filename string, options ...OptionFunc) (*Reader, error)
Open opens a Shapefile for reading.
func (*Reader) Attribute ¶
Attribute returns value of the n-th attribute of the most recent feature that was read by a call to Next.
func (*Reader) AttributeCount ¶
AttributeCount returns number of records in the DBF table.
func (*Reader) Next ¶
Next reads in the next Shape in the Shapefile, which will then be available through the Shape method. It returns false when the reader has reached the end of the file or encounters an error.
func (*Reader) ReadAttribute ¶
ReadAttribute returns the attribute value at row for field in the DBF table. Both values starts at 0.
type SequentialReader ¶
type SequentialReader interface { // Close() frees the resources allocated by the SequentialReader. io.Closer // Next() tries to advance the reading by one shape and one attribute row // and returns true if the read operation could be performed without any // error. Next() bool // Shape returns the index and the last read shape. If the SequentialReader // encountered any errors, nil is returned for the Shape. Shape() (int, Shape) // Attribute returns the value of the n-th attribute in the current row. If // the SequentialReader encountered any errors, the empty string is // returned. Attribute(n int) Attribute // Fields returns the fields of the database. If the SequentialReader // encountered any errors, nil is returned. Fields() []Field // Err returns the last non-EOF error encountered. Err() error }
SequentialReader is the interface that allows reading shapes and attributes one after another. It also embeds io.Closer.
func SequentialReaderFromExt ¶
func SequentialReaderFromExt(shp, dbf io.ReadCloser, options ...OptionFunc) SequentialReader
SequentialReaderFromExt returns a new SequentialReader that interprets shp as a source of shapes whose attributes can be retrieved from dbf.
type Shape ¶
type Shape interface { BBox() Box // contains filtered or unexported methods }
Shape interface
type ShapeType ¶
type ShapeType int32
ShapeType is a identifier for the the type of shapes.
const ( NULL ShapeType = 0 POINT ShapeType = 1 POLYLINE ShapeType = 3 POLYGON ShapeType = 5 MULTIPOINT ShapeType = 8 POINTZ ShapeType = 11 POLYLINEZ ShapeType = 13 POLYGONZ ShapeType = 15 MULTIPOINTZ ShapeType = 18 POINTM ShapeType = 21 POLYLINEM ShapeType = 23 POLYGONM ShapeType = 25 MULTIPOINTM ShapeType = 28 MULTIPATCH ShapeType = 31 )
These are the possible shape types.
type Writer ¶
type Writer struct { GeometryType ShapeType // contains filtered or unexported fields }
Writer is the type that is used to write a new shapefile.
func Append ¶ added in v0.1.1
Append returns a Writer pointer that will append to the given shapefile and the first error that was encounted during creation of that Writer. The shapefile must have a valid index file.
func Create ¶
Create returns a point to new Writer and the first error that was encountered. In case an error occurred the returned Writer point will be nil This also creates a corresponding SHX file. It is important to use Close() when done because that method writes all the headers for each file (SHP, SHX and DBF). If filename does not end on ".shp" already, it will be treated as the basename for the file and the ".shp" extension will be appended to that name.
func (*Writer) Close ¶
func (w *Writer) Close()
Close closes the Writer. This must be used at the end of the transaction because it writes the correct headers to the SHP/SHX and DBF files before closing.
func (*Writer) SetFields ¶
SetFields sets field values in the DBF. This initializes the DBF file and should be used prior to writing any attributes.
func (*Writer) Write ¶
Write shape to the Shapefile. This also creates a record in the SHX file and DBF file (if it is initialized). Returns the index of the written object which can be used in WriteAttribute.
func (*Writer) WriteAttribute ¶
WriteAttribute writes value for field into the given row in the DBF. Row number should be the same as the order the Shape was written to the Shapefile. The field value corresponds to the field in the slice used in SetFields.
type ZipReader ¶
type ZipReader struct {
// contains filtered or unexported fields
}
ZipReader provides an interface for reading Shapefiles that are compressed in a ZIP archive.
func OpenShapeFromZip ¶
func OpenShapeFromZip(zipFilePath string, name string, options ...OptionFunc) (*ZipReader, error)
OpenShapeFromZip opens a shape file that is contained in a ZIP archive. The parameter name is name of the shape file. The name of the shapefile must be a relative path: it must not start with a drive letter (e.g. C:) or leading slash, and only forward slashes are allowed. These rules are the same as in https://golang.org/pkg/archive/zip/#FileHeader.
func OpenZip ¶
func OpenZip(zipFilePath string, options ...OptionFunc) (*ZipReader, error)
OpenZip opens a ZIP file that contains a single shapefile.
func (*ZipReader) Attribute ¶
Attribute returns the n-th field of the last row that was read. If there were any errors before, the empty string is returned.