Improve GIS import and add measurement tools
This commit is contained in:
1 parent
ff2d4bccb6
commit
c8b8f21d8d
6 files changed
+793
-22
No files matched your search
@@ -157,6 +157,14 @@
|
||||
<span>Carica KML, KMZ o GeoJSON</span>
|
||||
<input id="gisFileInput" type="file" accept=".kml,.kmz,.geojson,.json,application/vnd.google-earth.kml+xml,application/vnd.google-earth.kmz,application/geo+json" />
|
||||
</label>
|
||||
<label class="toggle-line project-save-option">
|
||||
<input type="checkbox" checked="@ImportParcelsOnly" @onchange="ToggleImportParcelsOnly" />
|
||||
<span>KML/KMZ: importa solo le particelle</span>
|
||||
</label>
|
||||
<label class="toggle-line project-save-option">
|
||||
<input type="checkbox" checked="@ShowImportedMeasurements" @onchange="ToggleImportedMeasurements" />
|
||||
<span>Mostra misure dei file caricati</span>
|
||||
</label>
|
||||
<div class="button-row">
|
||||
<button @onclick="FitImportedLayers">Inquadra</button>
|
||||
<button class="secondary-command" @onclick="ClearImportedLayers">Pulisci</button>
|
||||
@@ -189,15 +197,26 @@
|
||||
</div>
|
||||
<div class="project-archive-state">@ProjectArchiveMessage</div>
|
||||
|
||||
<h2>POI e disegni</h2>
|
||||
<h2>Misura e disegna</h2>
|
||||
<div class="measurement-mode-grid" aria-label="Strumenti di misura">
|
||||
<button @onclick='() => StartMeasurementDrawing("area")'>Area</button>
|
||||
<button @onclick='() => StartMeasurementDrawing("distance")'>Distanza</button>
|
||||
<button @onclick='() => StartMeasurementDrawing("circle")'>Cerchio</button>
|
||||
</div>
|
||||
<label class="toggle-line project-save-option">
|
||||
<input type="checkbox" checked="@ShowDrawingMeasurements" @onchange="ToggleDrawingMeasurements" />
|
||||
<span>Mostra superficie, perimetro e lati</span>
|
||||
</label>
|
||||
<button class="secondary-command" aria-pressed="@DrawToolsVisible" @onclick="ToggleDrawTools">
|
||||
@(DrawToolsVisible ? "Nascondi strumenti completi" : "Mostra strumenti completi")
|
||||
</button>
|
||||
|
||||
<h2>POI</h2>
|
||||
<label>
|
||||
Nome POI
|
||||
<input @bind="PoiName" @bind:event="oninput" placeholder="Nome del punto" />
|
||||
</label>
|
||||
<button class="primary-command" @onclick="AddProjectMarker">Aggiungi POI al centro mappa</button>
|
||||
<button class="secondary-command" aria-pressed="@DrawToolsVisible" @onclick="ToggleDrawTools">
|
||||
@(DrawToolsVisible ? "Nascondi strumenti di disegno" : "Mostra strumenti di disegno")
|
||||
</button>
|
||||
<button class="danger-command" @onclick="ClearDrawings">Elimina disegni e POI</button>
|
||||
</section>
|
||||
}
|
||||
@@ -312,6 +331,9 @@
|
||||
private bool TrailEnabled { get; set; }
|
||||
private bool LayerPanelOpen { get; set; }
|
||||
private bool IncludeCadastralParcels { get; set; } = true;
|
||||
private bool ImportParcelsOnly { get; set; } = true;
|
||||
private bool ShowImportedMeasurements { get; set; }
|
||||
private bool ShowDrawingMeasurements { get; set; } = true;
|
||||
private bool ProjectBusy { get; set; }
|
||||
private CancellationTokenSource? CatalogCancellation { get; set; }
|
||||
private CancellationTokenSource? GpsLookupCancellation { get; set; }
|
||||
@@ -728,6 +750,36 @@
|
||||
private Task FitImportedLayers() => JS.InvokeVoidAsync("lmeMap.fitImported").AsTask();
|
||||
private Task ClearImportedLayers() => JS.InvokeVoidAsync("lmeMap.clearImported").AsTask();
|
||||
private Task AddProjectMarker() => JS.InvokeVoidAsync("lmeMap.addProjectMarker", PoiName).AsTask();
|
||||
|
||||
private async Task ToggleImportParcelsOnly(ChangeEventArgs args)
|
||||
{
|
||||
ImportParcelsOnly = (bool?)args.Value == true;
|
||||
await JS.InvokeVoidAsync("lmeMap.setImportParcelOnly", ImportParcelsOnly);
|
||||
}
|
||||
|
||||
private async Task ToggleImportedMeasurements(ChangeEventArgs args)
|
||||
{
|
||||
ShowImportedMeasurements = (bool?)args.Value == true;
|
||||
await JS.InvokeVoidAsync("lmeMap.setImportedMeasurementsVisible", ShowImportedMeasurements);
|
||||
}
|
||||
|
||||
private async Task ToggleDrawingMeasurements(ChangeEventArgs args)
|
||||
{
|
||||
ShowDrawingMeasurements = (bool?)args.Value == true;
|
||||
await JS.InvokeVoidAsync("lmeMap.setDrawingMeasurementsVisible", ShowDrawingMeasurements);
|
||||
}
|
||||
|
||||
private async Task StartMeasurementDrawing(string mode)
|
||||
{
|
||||
DrawToolsVisible = false;
|
||||
await JS.InvokeVoidAsync("lmeMap.setDrawToolsVisible", false);
|
||||
ActiveTab = "map";
|
||||
LayerPanelOpen = false;
|
||||
await Task.Delay(30);
|
||||
await JS.InvokeVoidAsync("lmeMap.resize");
|
||||
await JS.InvokeVoidAsync("lmeMap.startMeasurementDrawing", mode);
|
||||
}
|
||||
|
||||
private async Task ToggleDrawTools()
|
||||
{
|
||||
DrawToolsVisible = !DrawToolsVisible;
|
||||
|
||||
Reference in new issue
Block a user