PyGlobe Documentation
Overview
PyGlobe is a PySide6 / PyOpenGL widget for showing a 3D Globe.

Installation
- NOTE: This has been tested with python 3.13 on Mac OS 15.6 and Ubuntu 24.04
- Optional CONDA setup:
conda create --name pyglobe python=3.13
conda activate pyglove
- Install:
pip install -e .
- NOTE: Will install pyside6, pyopengl, numpy, requests, pillow
Example
Example at example/example.py
Usage
Include in your project
from pyglobe import globe
class MyWidget(QWidget):
def __init__(self):
super().__init__()
vbox = QVBoxLayout()
self.setLayout(vbox)
globe = GlobeWidget()
vbox.addWidget(globe)
Listen for Signals
self.globe.infoSig.connect(self.myfunc)
self.globe.sigObjectClicked.connect(self.print_object)
def myfunc(self, info:dict):
print (f"Got info: {info}")
def print_object(self, obj:SceneObject):
print (f"You clicked on {obj.label}")
Add an object to the map
track_points = [
(12.3601, 12.0589, 0),
]
for i in range(12):
track_points.append( ( track_points[0][0] + i * 0.2,
track_points[0][1] + i * 0.2,
0) )
self.track = scene.PolyLineSceneObject(
'Track',
points_wgs84=track_points,
color=(0.0, 0.0, 0.0), # Yellow
width=8.0,
altitude_offset=2000, # earth curvature
pick_radius=25000
)
self.globe.add_object(self.track)
Move the map object
polyline_points = self.track.points_wgs84
new_points = []
for point in polyline_points:
newpoint = (point[0] - 0.1, point[1] - 0.1, point[2] )
new_points.append(newpoint)
self.track.set_points(new_points)
self.point.set_pos(self.point.lat -0.1, self.point.lon - 0.1, self.point.alt)