| Crates.io | fastgeotoolkit |
| lib.rs | fastgeotoolkit |
| version | 0.1.7 |
| created_at | 2025-08-02 02:27:45.909904+00 |
| updated_at | 2025-08-02 03:36:59.117032+00 |
| description | A novel high-performance geospatial analysis framework with advanced route density mapping algorithms |
| homepage | https://github.com/a0a7/fastgeotoolkit |
| repository | https://github.com/a0a7/fastgeotoolkit |
| max_upload_size | |
| id | 1778064 |
| size | 83,767 |
A novel high-performance geospatial analysis framework with advanced route density mapping algorithms.
Add this to your Cargo.toml:
[dependencies]
fastgeotoolkit = "0.1.3"
use fastgeotoolkit::{
process_gpx_files, decode_polyline,
calculate_track_statistics, find_track_intersections
};
// Process GPX files
let gpx_data = std::fs::read("track.gpx")?;
let result = process_gpx_files(&[gpx_data]);
// Decode polylines
let coords = decode_polyline("_p~iF~ps|U_ulLnnqC_mqNvxq`@");
// Calculate statistics
let stats = calculate_track_statistics(&coords);
println!("Distance: {:.2} km", stats.distance_km);
use fastgeotoolkit::{HeatmapResult, create_heatmap_from_tracks};
// Load multiple GPS tracks
let tracks = vec![
vec![[40.7128, -74.0060], [40.7589, -73.9851]], // NYC example
vec![[40.7505, -73.9934], [40.7831, -73.9712]], // Central Park
];
// Generate route density heatmap
let heatmap = create_heatmap_from_tracks(tracks);
println!("Max frequency: {}", heatmap.max_frequency);
for track in heatmap.tracks {
println!("Track with {} points, frequency: {}",
track.coordinates.len(), track.frequency);
}
Enable WebAssembly compilation:
[dependencies]
fastgeotoolkit = { version = "0.1.3", features = ["wasm"] }
process_gpx_files() - Parse and analyze GPX file datadecode_polyline() - Decode Google polyline formatprocess_polylines() - Batch process polyline datavalidate_coordinates() - Validate GPS coordinate arrayssimplify_track() - Reduce track point density while preserving shapecalculate_track_statistics() - Distance, bounds, and point count analysisfind_track_intersections() - Detect where multiple tracks intersectcluster_tracks_by_similarity() - Group similar routes togethercalculate_coverage_area() - Compute geographic coverage of track datacoordinates_to_geojson() - Export to GeoJSON formatexport_to_gpx() - Generate GPX files from coordinate datacoordinates_to_polyline() - Encode coordinates as polylinesfastGeoToolkit is optimized for processing large GPS datasets:
Our novel approach uses segment-based frequency analysis:
This approach provides more accurate route popularity visualization compared to simple point-based methods.
See the examples/ directory for comprehensive usage examples:
basic_usage.rs - Getting started with core functionsroute_density.rs - Advanced heatmap generationbatch_processing.rs - Processing multiple files efficientlyMIT License - see LICENSE file for details.
Contributions are welcome! Please see our Contributing Guide for details.
If you use fastGeoToolkit in academic research, please cite:
@software{fastgeotoolkit2024,
title={fastGeoToolkit: A Novel High-Performance Geospatial Analysis Framework with Advanced Route Density Mapping},
author={fastGeoToolkit Contributors},
year={2024},
url={https://github.com/a0a7/fastgeotoolkit},
version={0.1.3}
}