GIS ProtoBuf module
Project description
Installation
pip install protobuf-gis
Additional functions
All messages has function toGeoJSON that returns a GeoJSON representation of a message.
Messages
Point
syntax = "proto3";
import "gis/protobuf/point.proto";
package test;
message Test {
gis.protobuf.Point2D point2d = 1;
gis.protobuf.Point3D point3d = 2;
gis.protobuf.MultiPoint2D multi_point2d = 3;
gis.protobuf.MultiPoint3D multi_point3d = 4;
}
Point2D
Structure with two fields of type float: x and y.
GeoJSON representation of this message is
{
'type': 'Point',
'coordinates': [x, y]
}
Point3D
Structure with three fields of type float: x, y and z.
GeoJSON representation of this message is
{
'type': 'Point',
'coordinates': [x, y, z]
}
MultiPoint2D
Structure with one repeated field of type gis.protobuf.Point2D: point.
GeoJSON representation of this message is
{
'type': 'MultiPoint',
'coordinates': [[x1, y1], [x2, y2]]
}
MultiPoint3D
Structure with one repeated field of type gis.protobuf.Point3D: point.
GeoJSON representation of this message is
{
'type': 'MultiPoint',
'coordinates': [[x1, y1, z1], [x2, y2, z2]]
}
LineString
syntax = "proto3";
import "gis/protobuf/linestring.proto";
package test;
message Test {
gis.protobuf.LineString2D line_string2d = 1;
gis.protobuf.LineString3D line_string3d = 2;
gis.protobuf.MultiLineString2D multi_line_string2d = 3;
gis.protobuf.MultiLineString3D multi_line_string3d = 4;
}
LineString2D
Structure with one repeated field of type gis.protobuf.Point2D: point.
GeoJSON representation of this message is
{
'type': 'LineString',
'coordinates': [[x1, y1], [x2, y2]]
}
LineString3D
Structure with one repeated field of type gis.protobuf.Point3D: point.
GeoJSON representation of this message is
{
'type': 'LineString',
'coordinates': [[x1, y1, z1], [x2, y2, z2]]
}
MultiLineString2D
Structure with one repeated field of type gis.protobuf.LineString2D: line_string.
GeoJSON representation of this message is
{
'type': 'MultiLineString',
'coordinates': [[[x1, y1], [x2, y2]], [[x3, y3], [x4, y4]]]
}
MultiLineString3D
Structure with one repeated field of type gis.protobuf.LineString3D: line_string.
GeoJSON representation of this message is
{
'type': 'MultiLineString',
'coordinates': [[[x1, y1, z1], [x2, y2, z2]], [[x3, y3, z3], [x4, y4, z4]]]
}
Polygon
syntax = "proto3";
import "gis/protobuf/point.proto";
package test;
message Test {
gis.protobuf.Polygon2D polugon2d = 1;
gis.protobuf.Polygon3D polugon3d = 2;
gis.protobuf.MultiPolygon2D multi_polugon2d = 3;
gis.protobuf.MultiPolygon3D multi_polugon3d = 4;
}
Polygon2D
Structure with one repeated field of type gis.protobuf.Point2D: point.
GeoJSON representation of this message is
{
'type': 'Polygon',
'coordinates': [[[x1, y1], [x2, y2]]]
}
Polygon3D
Structure with one repeated field of type gis.protobuf.Point3D: point.
GeoJSON representation of this message is
{
'type': 'Polygon',
'coordinates': [[[x1, y1, z1], [x2, y2, z2]]]
}
MultiPolygon2D
Structure with one repeated field of type gis.protobuf.Polygon2D: polygon.
GeoJSON representation of this message is
{
'type': 'MultiPolygon',
'coordinates': [[[[x1, y1], [x2, y2]]], [[[x3, y3], [x4, y4]]]]
}
MultiPolygon3D
Structure with one repeated field of type gis.protobuf.Polygon3D: polygon.
GeoJSON representation of this message is
{
'type': 'MultiPolygon',
'coordinates': [[[[x1, y1, z1], [x2, y2, z2]]], [[[x3, y3, z3], [x4, y4, z4]]]]
}
Usage
In proto/test.proto file:
syntax = "proto3";
import "gis/protobuf/point.proto";
package test;
message Test {
gis.protobuf.Point2D point = 1;
}
Build:
protoc --python_out=. -I /usr/include/ -I . proto/test.proto
Code:
from .proto.test_pb import Test
from gis.protobuf import Point2D
test = Test(point=Point2D(x=10, y=20))
print(test.point.toGeoJSON())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file protobuf-gis-1.0.3.tar.gz
.
File metadata
- Download URL: protobuf-gis-1.0.3.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28d6f2b88b1ecc13ca8210c4bde83bd6e559c3932f479ee978fcfaa72c38e235 |
|
MD5 | 258a2c96d47e7381dc344a6e55bb4a92 |
|
BLAKE2b-256 | 28d9454a680442644b97851af5787f0f1a83d7a36413b5412932bf57741957f8 |
File details
Details for the file protobuf_gis-1.0.3-py2.py3-none-any.whl
.
File metadata
- Download URL: protobuf_gis-1.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd778c6c0f18cbad61f6bd3560d8d6f53564000d0620ed310019607f44691ff3 |
|
MD5 | 49f388882103fb7007e02617ea0eb6fc |
|
BLAKE2b-256 | 3b5bffe42f73f15ed97a1fbc6b8e8ae86ad0d74a5981c7695f50b6a09a87a147 |