ArcGIS Runtime in Rust 🗺️
🗺️ _~^~^~_ 🔧
\) / o o \ (/
'_ - _'
/ '-----' \
NOTE: This Runtime is still under development, please report any bugs or issues to help us make this runtime more reliable!
Welcome to ArcGIS Rust! This project is a Rust-based geospatial intelligence library inspired by ArcGIS Runtime. It provides core geospatial types, rendering capabilities, and task execution for geoprocessing and locator tasks.
Table of Contents
Introduction
This project aims to provide a comprehensive geospatial intelligence library in Rust. It includes:
- Core geospatial types (Point, Polygon, Envelope, etc.)
- Feature layers for managing geographic features
- Map view rendering capabilities using
wgpu - Task execution for geoprocessing and locator tasks using
reqwest
Installation
To use this library in your project, add the following to your Cargo.toml:
[]
= { = "https://github.com/dfridkin/arcgis-rust-runtime.git" }
= "0.23.0"
= "0.12.0"
= "0.26.0"
= { = "0.11", = ["json"] }
= { = "1", = ["full"] }
= { = "1.0", = ["derive"] }
= "1.0"
Usage
Examples
Creating and Using Geospatial Types
use *;
use point;
Executing a Geoprocessing Task
use GeoprocessingTask;
use tokio;
async
API Specifications
Core Module
Point
Represents a 2D point with x and y coordinates.
Envelope
Represents a rectangular envelope defined by its minimum and maximum coordinates.
Intersection
Calculate the intersection of two geometries.
use ;
let poly1 = polygon!;
let poly2 = polygon!;
let intersection = run_intersection;
println!;
Union
Merge multiple geometries into a single geometry.
use ;
let poly1 = polygon!;
let poly2 = polygon!;
let union = run_union;
println!;
Boundaries
Retrieve the boundary of a geometry.
use ;
let poly = polygon!;
let boundaries = calculate_boundaries;
println!;
Data Module
Feature
Represents a geographic feature with geometry and attributes.
FeatureLayer
Manages a collection of features.
Rendering Module
MapView
Manages the rendering of a map view.
Layer
Trait for defining a renderable layer.
Tasks Module
GeoprocessingTask
Executes geoprocessing tasks.
LocatorTask
Executes geocoding tasks.
Contributing
We welcome contributions to make this project even more awesome! To contribute, please follow these steps:
Fork the repository.
Create a new branch (git checkout -b feature-branch).
Make your changes.
Commit your changes (git commit -m 'Add new feature').
Push to the branch (git push origin feature-branch).
Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Happy coding, and may your Rust adventures be filled with joy and discovery! 🦀❤️