GIS analysis and interactive mapping widgets for Orange
Project description
Orange GIS
Orange GIS is an Orange add-on for loading, transforming, analysing, and
visualising geospatial data. The distribution name is orange-gis; its Python
package is orangecontrib.orange_gis because Python module names cannot contain
hyphens.
Installation
Build or download orange_gis-0.3.0-py3-none-any.whl, then install it through
Orange's Options → Add-ons interface. The package declares its Python
dependencies, so a separate Conda or Miniconda setup step is not part of the
installation procedure.
For development, run pip with the Python interpreter that belongs to the target Orange installation:
<orange-python> -m pip install -e ".[dev]"
Orange GIS 0.3 requires Python 3.11 or newer and Orange 3.39 or newer. The current release target is Orange 3.40.
Map architecture
Interactive maps remain embedded in the Orange widget with QWebEngineView.
That browser component is still necessary to render Leaflet/Folium HTML inside
Orange; the browser-to-Python Qt WebChannel bridge is not.
One in-process HTTP service is shared by all open map widgets:
- The first map widget starts a server bound to
127.0.0.1on a random port. - Every widget receives a private session ID and random token.
QWebEngineViewloads the map over HTTP instead of receiving it throughsetHtml().- Interactive marker events return as token-protected JSON POST requests.
- Closing the last map widget schedules automatic server shutdown.
- Orange shutdown immediately closes the server.
There is no server subprocess, console window, iframe wrapper, temporary HTML file, or Qt WebChannel object. Loading the document as an HTTP response also removes the data-URL size path that affected large generated maps.
Package layout
orangecontrib.orange_gis.geo: shared GeoDataFrame validation and CRS helpersorangecontrib.orange_gis.web: loopback server, map sessions, and web panelorangecontrib.orange_gis.widgets: 30 Orange widgets and packaged resourcestests: server lifecycle, metadata, source-integrity, and Orange Table tests
All Qt imports go through AnyQt. GIS operations use explicit GeoDataFrame, NetworkX graph, or Orange Table signal types, and result-producing text widgets retain the source table before appending their result columns.
OpenAI toponym extraction
The extraction widget uses the OpenAI Responses API and strict JSON-schema
output. Its default model is gpt-5.6-sol, while the model field remains
editable. API keys are kept only in the widget's in-memory password field or
read from OPENAI_API_KEY; they are not stored in Orange settings.
Build and validation
<orange-python> -m pip wheel --no-deps --no-build-isolation --wheel-dir dist .
<orange-python> -m pytest
The source tree intentionally excludes generated maps, caches, build directories, and unused prototype assets.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orange_gis-0.3.0.tar.gz.
File metadata
- Download URL: orange_gis-0.3.0.tar.gz
- Upload date:
- Size: 285.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ca11c0cc07d3e3be80e149dd97cb56fcda695e63adc3084c90cebdb49134d7a
|
|
| MD5 |
04ccaca957dcc93d879c06c164cd7ada
|
|
| BLAKE2b-256 |
f99e357dbe9b313f3a95c97406c02b7d4053d4d16c247d77eb7f665da951cc3e
|
File details
Details for the file orange_gis-0.3.0-py3-none-any.whl.
File metadata
- Download URL: orange_gis-0.3.0-py3-none-any.whl
- Upload date:
- Size: 312.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0afd654861ece64f1dc5b69dff67889d011da8e495a98f8825c45505a9e6002a
|
|
| MD5 |
c6eb841a0b4053aa4a461c52a892f593
|
|
| BLAKE2b-256 |
7d2b94020b2fef9a90a1badc8569343d2927f7bdba48887156def59021c4fa0d
|