forked from MapComplete/MapComplete
Fix various bugs
This commit is contained in:
parent
30f4be183e
commit
5284f198d8
26 changed files with 339 additions and 119 deletions
|
@ -93,7 +93,7 @@ export default class Histogram<T> extends VariableUiElement {
|
|||
keys.sort()
|
||||
break;
|
||||
case "name-rev":
|
||||
keys.sort().reverse()
|
||||
keys.sort().reverse(/*Copy of array, inplace reverse if fine*/)
|
||||
break;
|
||||
case "count":
|
||||
keys.sort((k0, k1) => counts.get(k0) - counts.get(k1))
|
||||
|
|
|
@ -543,9 +543,9 @@ class LengthTextField extends TextFieldDef {
|
|||
// Bit of a hack: we project the centerpoint to the closes point on the road - if available
|
||||
if (options?.feature !== undefined && options.feature.geometry.type !== "Point") {
|
||||
const lonlat = <[number, number]>[...options.location]
|
||||
lonlat.reverse()
|
||||
lonlat.reverse(/*Changes a clone, this is safe */)
|
||||
options.location = <[number, number]>GeoOperations.nearestPoint(options.feature, lonlat).geometry.coordinates
|
||||
options.location.reverse()
|
||||
options.location.reverse(/*Changes a clone, this is safe */)
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -373,7 +373,7 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
{
|
||||
name: "max_snap_distance",
|
||||
doc: "If the imported object is a LineString or (Multi)Polygon, already existing OSM-points will be reused to construct the geometry of the newly imported way",
|
||||
defaultValue: "5"
|
||||
defaultValue: "0.05"
|
||||
},
|
||||
{
|
||||
name: "move_osm_point_if",
|
||||
|
@ -381,7 +381,7 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
}, {
|
||||
name: "max_move_distance",
|
||||
doc: "If an OSM-point is moved, the maximum amount of meters it is moved. Capped on 20m",
|
||||
defaultValue: "1"
|
||||
defaultValue: "0.05"
|
||||
}, {
|
||||
name: "snap_onto_layers",
|
||||
doc: "If no existing nearby point exists, but a line of a specified layer is closeby, snap to this layer instead",
|
||||
|
@ -406,24 +406,12 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
AbstractImportButton.importedIds.add(originalFeatureTags.data.id)
|
||||
const args = this.parseArgs(argument, originalFeatureTags)
|
||||
const feature = state.allElements.ContainingFeatures.get(id)
|
||||
console.log("Geometry to auto-import is:", feature)
|
||||
const geom = feature.geometry
|
||||
let coordinates: [number, number][]
|
||||
if (geom.type === "LineString") {
|
||||
coordinates = geom.coordinates
|
||||
} else if (geom.type === "Polygon") {
|
||||
coordinates = geom.coordinates[0]
|
||||
}
|
||||
|
||||
|
||||
const mergeConfigs = this.GetMergeConfig(args);
|
||||
|
||||
const action = this.CreateAction(
|
||||
const action = ImportWayButton.CreateAction(
|
||||
feature,
|
||||
args,
|
||||
<FeaturePipelineState>state,
|
||||
mergeConfigs,
|
||||
coordinates
|
||||
mergeConfigs
|
||||
)
|
||||
await state.changes.applyAction(action)
|
||||
}
|
||||
|
@ -455,18 +443,8 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
|
||||
|
||||
// Upload the way to OSM
|
||||
const geom = feature.geometry
|
||||
let coordinates: [number, number][]
|
||||
if (geom.type === "LineString") {
|
||||
coordinates = geom.coordinates
|
||||
} else if (geom.type === "Polygon") {
|
||||
coordinates = geom.coordinates[0]
|
||||
}
|
||||
const mergeConfigs = this.GetMergeConfig(args);
|
||||
|
||||
|
||||
let action = this.CreateAction(feature, args, state, mergeConfigs, coordinates);
|
||||
|
||||
let action = ImportWayButton.CreateAction(feature, args, state, mergeConfigs);
|
||||
return this.createConfirmPanelForWay(
|
||||
state,
|
||||
args,
|
||||
|
@ -508,14 +486,12 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
return mergeConfigs;
|
||||
}
|
||||
|
||||
private CreateAction(feature,
|
||||
private static CreateAction(feature,
|
||||
args: { max_snap_distance: string; snap_onto_layers: string; icon: string; text: string; tags: string; newTags: UIEventSource<any>; targetLayer: string },
|
||||
state: FeaturePipelineState,
|
||||
mergeConfigs: any[],
|
||||
coordinates: [number, number][]) {
|
||||
|
||||
mergeConfigs: any[]) {
|
||||
const coors = feature.geometry.coordinates
|
||||
if (feature.geometry.type === "Polygon" && coors.length > 1) {
|
||||
if ((feature.geometry.type === "Polygon" ) && coors.length > 1) {
|
||||
const outer = coors[0]
|
||||
const inner = [...coors]
|
||||
inner.splice(0, 1)
|
||||
|
@ -531,7 +507,7 @@ export class ImportWayButton extends AbstractImportButton implements AutoAction
|
|||
|
||||
return new CreateWayWithPointReuseAction(
|
||||
args.newTags.data,
|
||||
coordinates,
|
||||
coors,
|
||||
state,
|
||||
mergeConfigs
|
||||
)
|
||||
|
|
|
@ -28,7 +28,6 @@ export class LoginToggle extends VariableUiElement {
|
|||
const login = new LoginButton(text, state)
|
||||
super(
|
||||
state.osmConnection.loadingStatus.map(osmConnectionState => {
|
||||
console.trace("Current osm state is ", osmConnectionState)
|
||||
if(osmConnectionState === "loading"){
|
||||
return loading
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ export default class SplitRoadWizard extends Toggle {
|
|||
.filter(p => GeoOperations.distanceBetween(p[0].geometry.coordinates, coordinates) < 5)
|
||||
.map(p => p[1])
|
||||
.sort((a, b) => a - b)
|
||||
.reverse()
|
||||
.reverse(/*Copy/derived list, inplace reverse is fine*/)
|
||||
if (points.length > 0) {
|
||||
for (const point of points) {
|
||||
splitPoints.data.splice(point, 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue