Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

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

Release history Release notifications

This version
History Node

1.0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
protobuf_gis-1.0.3-py2.py3-none-any.whl (8.5 kB) Copy SHA256 hash SHA256 Wheel 3.6 Aug 13, 2017
protobuf-gis-1.0.3.tar.gz (5.1 kB) Copy SHA256 hash SHA256 Source None Aug 13, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page