Skip to content
本页目录

类参考介绍

在使用Python API进行开发之前,有几个基础类以及他们的关系需要了解一下,包括:

1.应用程序类:TXGlobeControl

2.图层类:TXLayer

3.要素类:TXGeoMarker

4.样式类:TXMarkerStyle

5.工具类:TXCoordConvertUtility

应用程序类:TXGlobeControl

该类是应用程序句柄,在Python当中要操作正在运行的图新地球桌面端C++应用程序,需要先获得这样的一个句柄,才完成对应用程序或者说三维地图的操作。 比如添加图层,删除图层、刷新地图等

该类新建插件,会默认在run方法中作为全局变量进行初始化。

Python
# 定义run方法,程序的默认执行入口,方法名称及定义不可修改,否则插件无法正常启动
def run(app):
    # 定义三维地球对象
    global globe
    # 获取三维地球对象
    globe = TXGlobeControl(app)

图层类TXLayer

图层是应用程序数据组织的基本类型,不论是倾斜摄影、还是影像、地形、矢量数据都是以图层为单位进行管理,可以控制图层的显示隐藏,要素的管理(增、删、改、查)

该类可通过TXGlobe对象的AddLayer方法的返回值获取

并进行要素的管理

Python
layer_marker = globe.AddLayer('D:/marker.kml')
marker = TXGeoMarker()
# 设置marker的属性:坐标、文字、图标等
....
layer_marker.AddMarker(marker)

要素类(TXGeoMarker)

要素是点线面的类的实例,要素有多重类型,点、线、面、图像叠加层、文件夹等多种类型。此处以点对象(Marker)为例进行说明。

要素需要放到图层里面进行管理

要素由坐标和样式组成,需要通过样式类进行设置。

Python
marker = TXGeoMarker()
position = TXPoint(lon_value, lat_value, 0)
marker.SetPosition(position)
current_layer.AddMarker(marker)

样式类(TXMarkerStyle)

样式类,主要用于设定图层或者要素的样式风格,如点对象的图标,文字颜色;线对象的线宽、线型、颜色;面对象的填充色、边框等

Python
marker = TXGeoMarker()
position = TXPoint(lon_value, lat_value, 0)
marker.SetPosition(position)
current_style = TXMarkerStyle()
current_style.SetIconPath("D:\\部门工作档案\\2023年部门工作档案\\内部立项\\图新地球Python "
                          "API产品立项\\文档\\图新地球\\LocaSpaceViewer4.4.5.20230815\\LocaSpaceViewer4\\Resource"
                          "\\image\\line_green.png")
current_style.SetIconAlign(AlignMode_TopCenter)
current_style.SetIconScale(5.0)
current_text_style = TXTextStyle()
current_text_style.SetAlign(AlignMode_TopCenter)
current_style.SetTextStyle(current_text_style)
marker.SetText(name_value)
marker.SetStyle(current_style)
marker.SetName(name_value)
current_layer.AddMarker(marker)
globe.Refresh()

工具类(TXCoordConvertUtility)

工具类主要用于提供常用的GIS工具集合,如坐标转换、影像格式转换等 如按照投影文件,把平面坐标转为经纬度坐标

Python
data_pnt = TXPoint(528010.664, 3770581.344, 1644.805)
sys_pnt: TXPoint = TXPoint()
prj_file = r'C:\Users\15862\Desktop\测试.prj'
TXCoordConvertUtility.DataToSysPnt(data_pnt, sys_pnt, prj_file)