在Python中读写CZML
项目描述
简介
############
这是一个开源的Python库,用于读取和写入Cesium_的CZML_文件,Cesium_是WebGL地球建模引擎。
.. _CZML: https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Guide
.. _Cesium: http://cesiumjs.org/
需求
------------
* pygeoif: https://github.com/cleder/pygeoif
* pytz: https://pypi.python.org/pypi/pytz
测试
-----
要运行测试(在czml目录中):
> python setup.py test
czml不断与*Travis CI*测试
.. image:: https://api.travis-ci.org/cleder/czml.png
:target: https://travis-ci.org/cleder/czml
.. image:: https://coveralls.io/repos/cleder/czml/badge.png?branch=master
:target: https://coveralls.io/r/cleder/czml?branch=master
使用方法和示例
------------------
**读取CZML**
将CZML文件读取到可变文档对象中可以通过初始化一个CZML文档,然后将文件内容读取到文档的`loads()`方法中实现,如下所示:
导入库
from czml import czml
读取现有的CZML文件
filename = 'example.czml'
with open(filename, 'r') as example
doc = czml.CZML()
doc.loads(example.read())
**写入CZML**
使用此Python库编写CZML的一般方法是为文档对象定义,定义数据包并将其附加到文档中,然后使用`write()`方法将文档写入文件:
导入库
from czml import czml
初始化文档
doc = czml.CZML()
创建并附加文档数据包
packet1 = czml.CZMLPacket(id='document',version='1.0')
doc.packets.append(packet1)
创建并附加一个标牌数据包
packet2 = czml.CZMLPacket(id='billboard')
bb = czml.Billboard(scale=0.7, show=True)
bb.image = 'https:///img.png'
bb.color = {'rgba': [0, 255, 127, 55]}
packet2.billboard = bb
doc.packets.append(packet2)
将CZML文档写入文件
filename = "example.czml"
doc.write(filename)
支持CZML组件
-------------------------
此库中的组件开发是为了遵循`CZML内容文档`_。支持的组件和子组件在`docs/COMPONENTS.md`_中列出。
.. _CZML内容文档: https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Packet
.. _docs/COMPONENTS.md: https://github.com/cleder/czml/blob/master/docs/COMPONENTS.md
v 0.3.3 (2016-11-30)
-------------------
- 在多边形和椭圆上添加了对outlineWidth的支持 [Christopher Clark (Frencil)]
- 允许传递引用 [Tim O'Shea (osh)]
- 允许将kwargs传递给dumps [Tim O'Shea (osh)]
v 0.3.2 (2015/03/23)
--------------------
- 添加了czml.write()方法
- 更新README中的损坏的写入示例,使用write()方法
- 在README中添加了读取示例
- 清理了一些CZMLPacket和其他框架(load/data/init)方法
v 0.3.1 (2015/03/19)
--------------------
- 在README中添加了使用示例
- 添加了docs/COMPONENTS.md
- 0.3版本的微小清理
v 0.3 (2015/03/09)
------------------
- 用Positions替换VertexPositions [Christopher Clark (Frencil)]
- 重建二维对象类和针对当前CZML的测试 [Christopher Clark (Frencil)]
- 添加/更新所有已记录的子类材料(Grid、Image、Stripe、SolidColor、PolylineGlow、PolylineOutline)[Christopher Clark (Frencil)]
- 添加文档对象支持(包括版本和时钟)[Christopher Clark (Frencil)]
- 限制支持到Python 2.7和3.3+ [Christopher Clark (Frencil)]
v 0.2 (未发布)
------------------
- 修复了Number类中的错误 [Carl Fischer (Carl4)]
- 添加了Radii、Orientation、Path、Ellipsoid、Cone、Ellipse [Carl Fischer (Carl4)]
v 0.1 (2013/04/05)
------------------
- 首次发布 [Christian Lederman (cleder)]
############
这是一个开源的Python库,用于读取和写入Cesium_的CZML_文件,Cesium_是WebGL地球建模引擎。
.. _CZML: https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Guide
.. _Cesium: http://cesiumjs.org/
需求
------------
* pygeoif: https://github.com/cleder/pygeoif
* pytz: https://pypi.python.org/pypi/pytz
测试
-----
要运行测试(在czml目录中):
> python setup.py test
czml不断与*Travis CI*测试
.. image:: https://api.travis-ci.org/cleder/czml.png
:target: https://travis-ci.org/cleder/czml
.. image:: https://coveralls.io/repos/cleder/czml/badge.png?branch=master
:target: https://coveralls.io/r/cleder/czml?branch=master
使用方法和示例
------------------
**读取CZML**
将CZML文件读取到可变文档对象中可以通过初始化一个CZML文档,然后将文件内容读取到文档的`loads()`方法中实现,如下所示:
导入库
from czml import czml
读取现有的CZML文件
filename = 'example.czml'
with open(filename, 'r') as example
doc = czml.CZML()
doc.loads(example.read())
**写入CZML**
使用此Python库编写CZML的一般方法是为文档对象定义,定义数据包并将其附加到文档中,然后使用`write()`方法将文档写入文件:
导入库
from czml import czml
初始化文档
doc = czml.CZML()
创建并附加文档数据包
packet1 = czml.CZMLPacket(id='document',version='1.0')
doc.packets.append(packet1)
创建并附加一个标牌数据包
packet2 = czml.CZMLPacket(id='billboard')
bb = czml.Billboard(scale=0.7, show=True)
bb.image = 'https:///img.png'
bb.color = {'rgba': [0, 255, 127, 55]}
packet2.billboard = bb
doc.packets.append(packet2)
将CZML文档写入文件
filename = "example.czml"
doc.write(filename)
支持CZML组件
-------------------------
此库中的组件开发是为了遵循`CZML内容文档`_。支持的组件和子组件在`docs/COMPONENTS.md`_中列出。
.. _CZML内容文档: https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Packet
.. _docs/COMPONENTS.md: https://github.com/cleder/czml/blob/master/docs/COMPONENTS.md
v 0.3.3 (2016-11-30)
-------------------
- 在多边形和椭圆上添加了对outlineWidth的支持 [Christopher Clark (Frencil)]
- 允许传递引用 [Tim O'Shea (osh)]
- 允许将kwargs传递给dumps [Tim O'Shea (osh)]
v 0.3.2 (2015/03/23)
--------------------
- 添加了czml.write()方法
- 更新README中的损坏的写入示例,使用write()方法
- 在README中添加了读取示例
- 清理了一些CZMLPacket和其他框架(load/data/init)方法
v 0.3.1 (2015/03/19)
--------------------
- 在README中添加了使用示例
- 添加了docs/COMPONENTS.md
- 0.3版本的微小清理
v 0.3 (2015/03/09)
------------------
- 用Positions替换VertexPositions [Christopher Clark (Frencil)]
- 重建二维对象类和针对当前CZML的测试 [Christopher Clark (Frencil)]
- 添加/更新所有已记录的子类材料(Grid、Image、Stripe、SolidColor、PolylineGlow、PolylineOutline)[Christopher Clark (Frencil)]
- 添加文档对象支持(包括版本和时钟)[Christopher Clark (Frencil)]
- 限制支持到Python 2.7和3.3+ [Christopher Clark (Frencil)]
v 0.2 (未发布)
------------------
- 修复了Number类中的错误 [Carl Fischer (Carl4)]
- 添加了Radii、Orientation、Path、Ellipsoid、Cone、Ellipse [Carl Fischer (Carl4)]
v 0.1 (2013/04/05)
------------------
- 首次发布 [Christian Lederman (cleder)]