This widget provides an interactive map for the Phoebus Control System Studio, allowing users to place markers and open related displays directly from the map interface.
- Java JDK 21 (must match your Phoebus installation version)
- Apache Maven 3.9+
- Phoebus 5.0.5+
- Map tile server (see below)
This widget requires a map tile server to function.
You can run a local tile server using Switch2OSM or a similar solution. The default configuration points to a local server:
private static final String host = "http://172.28.41.114/hot/";Tile URL format: {host}/{zoom}/{x}/{y}.png
The widget uses the maven-shade-plugin to package all external dependencies (Gluon Maps, Attach libraries) into a single "fat JAR":
mvn clean packageThe resulting JAR will be located at:
target/Map-Widget-0.13.0-SNAPSHOT.jar
This widget is designed as a plugin for Phoebus. For detailed deployment instructions, including custom launch scripts and classpath configuration, refer to the hello-widget README – the same principle applies: use a custom launcher script to include the widget JAR alongside the Phoebus product JAR.
- Display interactive maps powered by Gluon Maps
- Add, remove, and configure markers dynamically
- Each marker can be linked to a Phoebus display (
.bobfile) for quick navigation
The widget integrates the Gluon Maps library into the Phoebus display framework:
- Map Rendering: Uses
MapViewfrom Gluon Maps to render map tiles and handle pan/zoom interactions. - Markers: Markers are stored as structured properties in the widget model (
MapWidget.propCoords). Each marker contains:- Latitude and longitude
- Display name
- Path to a Phoebus display (
.bobfile) - Icon type (enum)
- Tile Retrieval: By default, the widget uses a local tile server (
LocalTileRetriever), but can be configured to use any tile source. - Interaction: Clicking a marker zooms to its location; double-clicking opens the associated display.
Based on the hello-widget template for Phoebus custom widgets.