gis原型模块

protobuf-gis的Python项目详细描述


安装

pip install protobuf-gis

附加功能

所有消息都有函数toGeoJSON,该函数返回消息的geojson表示。

消息

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;
}

点2d

具有两个类型为floatxy的字段的结构。

此消息的geojson表示为

{'type':'Point','coordinates':[x,y]}

点3d

具有类型为floatxyz的三个字段的结构。

此消息的geojson表示为

{'type':'Point','coordinates':[x,y,z]}

多点2d

一个重复字段类型为gis.protobuf.Point2Dpoint的结构。

此消息的geojson表示为

{'type':'MultiPoint','coordinates':[[x1,y1],[x2,y2]]}

多点3d

一个重复字段类型为gis.protobuf.Point3Dpoint的结构。

此消息的geojson表示为

{'type':'MultiPoint','coordinates':[[x1,y1,z1],[x2,y2,z2]]}

字符串

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;
}

行字符串2d

一个重复字段类型为gis.protobuf.Point2Dpoint的结构。

此消息的geojson表示为

{'type':'LineString','coordinates':[[x1,y1],[x2,y2]]}

linestring3d

一个重复字段类型为gis.protobuf.Point3Dpoint的结构。

此消息的geojson表示为

{'type':'LineString','coordinates':[[x1,y1,z1],[x2,y2,z2]]}

多行2d

一个重复字段类型为gis.protobuf.LineString2Dline_string的结构。

此消息的geojson表示为

{'type':'MultiLineString','coordinates':[[[x1,y1],[x2,y2]],[[x3,y3],[x4,y4]]]}

多行3d

一个重复字段类型为gis.protobuf.LineString3Dline_string的结构。

此消息的geojson表示为

{'type':'MultiLineString','coordinates':[[[x1,y1,z1],[x2,y2,z2]],[[x3,y3,z3],[x4,y4,z4]]]}

多边形

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;
}

多边形2d

一个重复字段类型为gis.protobuf.Point2Dpoint的结构。

此消息的geojson表示为

{'type':'Polygon','coordinates':[[[x1,y1],[x2,y2]]]}

Polygon3D

一个重复字段类型为gis.protobuf.Point3Dpoint的结构。

此消息的geojson表示为

{'type':'Polygon','coordinates':[[[x1,y1,z1],[x2,y2,z2]]]}

多多边形2d

一个重复字段类型为gis.protobuf.Polygon2Dpolygon的结构。

此消息的geojson表示为

{'type':'MultiPolygon','coordinates':[[[[x1,y1],[x2,y2]]],[[[x3,y3],[x4,y4]]]]}

多多边形3d

一个重复字段类型为gis.protobuf.Polygon3Dpolygon的结构。

此消息的geojson表示为

{'type':'MultiPolygon','coordinates':[[[[x1,y1,z1],[x2,y2,z2]]],[[[x3,y3,z3],[x4,y4,z4]]]]}

用法

proto/test.proto文件中:

syntax = "proto3";

import "gis/protobuf/point.proto";

package test;

message Test {
  gis.protobuf.Point2D point = 1;
}

生成:

protoc --python_out=. -I /usr/include/ -I . proto/test.proto

代码:

from.proto.test_pbimportTestfromgis.protobufimportPoint2Dtest=Test(point=Point2D(x=10,y=20))print(test.point.toGeoJSON())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用java的html并排表   如何修复Java(安卓)中的“找不到自由端口”错误   java为什么在以下代码中实现接口“onmapreadycallback”时出错?   java在Spring批处理中重置InMemory数据库   java非阻塞网络编程超时问题   安卓 Java:从UTF8字符串创建可绘制   java显示文本文件中包含的路径中的图像   gzipinputstream Java。伊奥。IOException:不是GZIP格式   java线程调度程序如何执行此代码?   java通过setFragmentResult将信息发送到另一个片段   java从任何地方进入活动   java如何使用SNMP4j开发用于搜索OID值的类   Java中的递归字符串索引超出范围错误(字符串索引超出范围异常)   缓存如何清除Java缓存中的特定文件?   java将构建任务添加到maven pom项目   java FileOutputStream非常慢   如果定义了父pom,则不会发生存储库url的java Maven属性替换