| Crates.io | geello |
| lib.rs | geello |
| version | 0.2.0 |
| created_at | 2025-06-12 14:23:28.273925+00 |
| updated_at | 2025-07-03 10:42:31.134849+00 |
| description | A tool to render geo data |
| homepage | https://github.com/DeadPoetSpoon/geello |
| repository | https://github.com/DeadPoetSpoon/geello |
| max_upload_size | |
| id | 1709856 |
| size | 644,036 |
[!WARNING] Geello is a testing project in an alpha state.
Geello can be used as a library to render geo data into a texture.
Use RenderedGeometry::new() to create new geometry.
Read file or Create a RenderOption.
Set some options, like RenderRegion or Transform.
Get Vello values just like Vello.
Run one of functions below, or with _with_new_texture.
Use return value to draw on canvas or encode to file.
geello::render_to_texture(
geoms: &mut Vec<RenderedGeometry>,
device: &Device,
queue: &Queue,
renderer: &mut Renderer,
texture: &Texture,
transform: Affine,
option: &RenderOption,
)
geello::render_to_buffer(
geoms: &mut Vec<RenderedGeometry>,
device: &Device,
queue: &Queue,
renderer: &mut Renderer,
texture: &Texture,
transform: Affine,
option: &RenderOption,
)
Geello can be used as a server to provide map render (real-time/cache) services like WMTS/WMS.
cargo r --release --features server
// real-time
http://addr:port/wmts/real-time
// cache
http://addr:port/wmts/cache
//params
layers=${/path/to/json} // use `,` split multi layer, render as order
styles=${/path/to/render_option} // render_option to filter rendered geometry
x=${x}
y=${y}
z=${z}
format=${format} // like image/png or png
http://addr:port/wms
// params
layers=${/path/to/json} // use `,` split multi layer, render as order
styles=${/path/to/render_option} // render_option to filter rendered geometry
format=${format} // like image/png or png
width=${width}
height=${height}
bbox=${bbox}
Geello use web socket to handle real-time animation or dynamic data.
Such as a point that grows from small to large for representing importance.
Or a real-time route of a car.
ws://addr:port/ws/anim
// params
layers=${/path/to/json} // use `,` split multi layer, render as order
styles=${/path/to/render_option} // render_option to filter rendered geometry
format=${format} // like image/png or png
width=${width}
height=${height}
bbox=${bbox}
When run as server, Geello provides a web map example by open http://addr:port/map/index.html in browser.
Package Page: geello
Run the docker image:
[!WARNING] Need NVIDIA Container Toolkit installed
Some how docker need xhost to Xserver access, WGPU need that to use GPU otherwise will use CPU, find some issues and docs:
wgpu/issues/2123-1012233430: get the reason
wgpu/issues/2123-1428961445: answer the question
archlinux docs: how to enable Xserver access, need xhost installed
docker run --rm --gpus all -e "DISPLAY=:0.0" -e "GEELLO_ADDRESS=0.0.0.0" --mount type=bind,src=/tmp/.X11-unix,dst=/tmp/.X11-unix --device=/dev/dri:/dev/dri -p 8000:8000 ghcr.io/deadpoetspoon/geello:latest
Please!
The code is available under the MIT license.