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.
For usage instructions in Phoebus, see instructions.md or spanish version instrucciones.md .
- 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.