GeoView is a library for displaying and interacting with geographical objects and cartographic layers in a user interface.
GeoView’s architecture is designed to work with Bloc using the Alexandrie library as graphical backend. Thanks to its integration with Bloc, GeoView also works within Toplo UI views.
-
Multiple levels of user-facing APIs
GeoView provides several API layers to suit different abstraction levels:- High-level API
Work directly with geographic data using real-world units like latitude/longitude and meters. - Intermediate-level API
Provides access to cartesian coordinates (x,y,z) for spatial logic and control. - Low-level API
Works in display/device coordinates (pixels, points), ideal for low-level rendering customization.
- High-level API
-
Fully customizable rendering
Visual appearance is completely decoupled from rendering technology, allowing flexible styling.
GeoView includes a library of ready-to-use geographic objects, such as:
- Circles
- Lines
- Points
- Polygons
- Labels
- And more (non-exhaustive list)
These built-in components are designed to cover common geospatial visualization needs and can be extended or customized.
In addition, GeoView provides a layer-based system to organize and manage rendering. Layers are a flexible mechanism that:
- Allow grouping of any kind of geographic or custom object
- Control visibility, rendering order, and interactions independently
- Are not limited to built-in objects — you can use layers for custom components or specialized rendering logic
- Support splitting the rendering of a single object type across multiple layers
(e.g., you can render position icons in one layer and their corresponding labels in another, to better manage z-order or interaction logic)
This approach gives developers fine-grained control over how geographical content is displayed and interacted with.
-
Simplified symbology management
Define and apply visual styles (e.g., color, icons) to geographic objects easily and consistently. -
Support for multiple map projections
Allows working with different geographic projections.
Note: The map data provider must support the selected projection. -
Picking API
Enable object selection and interaction through pointer events. -
Optional integration with Molecule
Seamlessly plug into the Molecule component framework if desired.
GeoView is in active development but already powers many applications involving geospatial data.
To install GeoView with all features and dependencies, simply execute the following script in your Pharo image:
Metacello new
baseline: 'GeoView';
repository: 'github://ThalesGroup/GeoView:main';
onConflictUseIncoming;
loadIf you prefer to install only the core version of GeoView (without Molecule component framework integration), use the following script:
Metacello new
baseline: 'GeoView';
repository: 'github://ThalesGroup/GeoView:main';
onConflictUseIncoming;
load: 'Core'Core :
Default/Full :
Note: Bloc and Alexandrie will soon be integrated into Pharo, at which point this dependency will be removed. GeoView is using the /ThalesGroup fork of Bloc and Alexandrie. By using this way, we have the possibility to avoid block updates and integrate changes at our own pace. You can use the latest Bloc and Alexandrie version from pharo-graphics but at your own risks!
This project is licensed under the MIT License - see the LICENSE file for details.


