osm merge, optmisation

This commit is contained in:
2026-05-02 16:44:03 +05:30
parent 2139a908e6
commit ffb27eb17f
9 changed files with 2996 additions and 298 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -104,6 +104,10 @@ async fn apply_schema(pool: &SqlitePool) -> Result<()> {
let _ = sqlx::query("ALTER TABLE roads ADD COLUMN highway TEXT")
.execute(pool)
.await;
let _ =
sqlx::query("ALTER TABLE roads ADD COLUMN snap_ignored INTEGER NOT NULL DEFAULT 0")
.execute(pool)
.await;
sqlx::query(
"CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -181,15 +185,16 @@ async fn apply_schema(pool: &SqlitePool) -> Result<()> {
sqlx::query(
"CREATE TABLE IF NOT EXISTS roads (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
geojson TEXT NOT NULL,
min_lat REAL NOT NULL,
max_lat REAL NOT NULL,
min_lng REAL NOT NULL,
max_lng REAL NOT NULL,
oneway INTEGER NOT NULL DEFAULT 0,
highway TEXT
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
geojson TEXT NOT NULL,
min_lat REAL NOT NULL,
max_lat REAL NOT NULL,
min_lng REAL NOT NULL,
max_lng REAL NOT NULL,
oneway INTEGER NOT NULL DEFAULT 0,
highway TEXT,
snap_ignored INTEGER NOT NULL DEFAULT 0
)",
)
.execute(pool)
@@ -219,6 +224,18 @@ async fn apply_schema(pool: &SqlitePool) -> Result<()> {
.execute(pool)
.await?;
// Per-video metadata polylines persisted across sessions; survives app
// restarts, wiped only by reset_database or explicit clear.
sqlx::query(
"CREATE TABLE IF NOT EXISTS video_metadata (
video_name TEXT PRIMARY KEY,
track_json TEXT NOT NULL,
imported_at TEXT NOT NULL DEFAULT (datetime('now'))
)",
)
.execute(pool)
.await?;
sqlx::query(
"CREATE TABLE IF NOT EXISTS action_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,

View File

@@ -4,15 +4,18 @@ mod scope;
use commands::{
assets_bbox, delete_asset, delete_assets_by_video, get_assets_in_bbox, get_osm_roads,
get_scope_polygons, import_fixed_assets, import_kml_scope, import_osm_geojson,
get_scope_polygons, import_assets_auto, import_fixed_assets, import_kml_scope,
import_osm_geojson,
import_range_assets, list_assets, read_video_polylines_json, list_recent_actions, merge_polylines, reset_assets_to_original,
read_metadata_polyline, redo_action, reset_database, snap_assets_in_bbox,
add_class, auto_link_in_polygon, bulk_translate, clear_assets_by_type,
clear_osm_roads, clear_scope_polygons, data_source_counts, change_assets_side, clear_link, clear_manual_scope,
create_osm_road, create_user, delete_road_vertices, set_link, simplify_road,
delete_roads_by_highway, export_osm_roads, find_duplicate_clusters,
save_video_metadata, get_video_metadata, clear_video_metadata,
flip_road_direction, generate_osm_for_bbox, generate_osm_near_assets,
list_road_classes, merge_roads_by_name,
set_road_snap_ignored, osm_road_snapshot, restore_road_state,
list_road_classes, merge_roads_by_name, merge_roads_by_ids, quality_report, assets_coords_for_ids,
delete_assets_bulk, delete_osm_road, delete_user, export_assets,
list_asset_names, list_classes, list_users, list_video_names,
rename_assets, restore_assets, set_assets_by_video_in_scope,
@@ -45,6 +48,7 @@ pub fn run() {
.invoke_handler(tauri::generate_handler![
import_fixed_assets,
import_range_assets,
import_assets_auto,
list_assets,
get_assets_in_bbox,
update_asset_position,
@@ -87,11 +91,17 @@ pub fn run() {
delete_roads_by_highway,
list_road_classes,
merge_roads_by_name,
merge_roads_by_ids,
export_osm_roads,
generate_osm_for_bbox,
generate_osm_near_assets,
assets_bbox,
quality_report,
assets_coords_for_ids,
flip_road_direction,
set_road_snap_ignored,
osm_road_snapshot,
restore_road_state,
change_assets_side,
auto_link_in_polygon,
bulk_translate,
@@ -99,6 +109,9 @@ pub fn run() {
clear_osm_roads,
clear_scope_polygons,
data_source_counts,
save_video_metadata,
get_video_metadata,
clear_video_metadata,
set_link,
clear_link
])