Skip to main content

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())

Metadata

Release files for protobuf-gis 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for protobuf-gis 1.0.3
File Size Uploaded
protobuf-gis-1.0.3.tar.gz 5.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for protobuf-gis 1.0.3
File Interpreter ABI Platform
protobuf_gis-1.0.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 13.6 kB

Release files / protobuf-gis-1.0.3.tar.gz

Download URL protobuf-gis-1.0.3.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
28d6f2b88b1ecc13ca8210c4bde83bd6e559c3932f479ee978fcfaa72c38e235
BLAKE2b-256 checksum
How to use checksums
28d9454a680442644b97851af5787f0f1a83d7a36413b5412932bf57741957f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / protobuf_gis-1.0.3-py2.py3-none-any.whl

Download URL protobuf_gis-1.0.3-py2.py3-none-any.whl
Size 8.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
cd778c6c0f18cbad61f6bd3560d8d6f53564000d0620ed310019607f44691ff3
BLAKE2b-256 checksum
How to use checksums
3b5bffe42f73f15ed97a1fbc6b8e8ae86ad0d74a5981c7695f50b6a09a87a147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page