Skip to content

Commit

Permalink
Merge pull request #6855 from TerriaJS/fix-2d-rectangle-drawing
Browse files Browse the repository at this point in the history
Fix rectangle drawing in 2D mode
  • Loading branch information
na9da authored Sep 3, 2023
2 parents f1cc09b + 68b6105 commit e4307ed
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 9 deletions.
3 changes: 2 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

#### next release (8.3.3)

- Fixes broken point dragging interaction for user drawing in 3d-mode.
- Fixed broken point dragging interaction for user drawing in 3D mode.
- Fixed rectangle drawing in 2D mode.
- Added EPSG:7855 to `Proj4Definitions`.
- [The next improvement]

Expand Down
3 changes: 1 addition & 2 deletions lib/Models/UserDrawing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,7 @@ export default class UserDrawing extends MappableMixin(
const scratchPosition = new Cartesian3();
this.mousePointEntity.position = new CallbackProperty(() => {
const cartographicMouseCoords =
this.terria.currentViewer.terria.currentViewer.mouseCoords
.cartographic;
this.terria.currentViewer.mouseCoords.cartographic;
let mousePosition = undefined;
if (cartographicMouseCoords) {
mousePosition = Ellipsoid.WGS84.cartographicToCartesian(
Expand Down
5 changes: 2 additions & 3 deletions lib/ReactViewModels/MouseCoords.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ export default class MouseCoords {
let errorBar;

if (globe.terrainProvider instanceof EllipsoidTerrainProvider) {
intersection.height = <any>undefined;
intersection.height = 0;
} else {
const barycentric = Intersections2D.computeBarycentricCoordinates(
intersection.longitude,
Expand Down Expand Up @@ -196,10 +196,9 @@ export default class MouseCoords {
const coordinates = Cartographic.fromDegrees(
latLng.lng,
latLng.lat,
undefined,
0,
scratchCartographic
);
coordinates.height = <any>undefined;
this.cartographicToFields(coordinates);
}

Expand Down
33 changes: 30 additions & 3 deletions test/Models/LeafletSpec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import L from "leaflet";
import { computed } from "mobx";
import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource";
import { action, computed, when } from "mobx";
import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem";
import CommonStrata from "../../lib/Models/Definition/CommonStrata";
import createStratumInstance from "../../lib/Models/Definition/createStratumInstance";
import Leaflet from "../../lib/Models/Leaflet";
import Terria from "../../lib/Models/Terria";
import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem";
import ViewerMode from "../../lib/Models/ViewerMode";
import { RectangleTraits } from "../../lib/Traits/TraitsClasses/MappableTraits";
import TerriaViewer from "../../lib/ViewModels/TerriaViewer";

Expand Down Expand Up @@ -154,4 +154,31 @@ describe("Leaflet Model", function () {
});
});
});

describe("mouseCoords", function () {
beforeEach(
action(async function () {
const container = document.createElement("div");
document.body.appendChild(container);
terria.mainViewer.attach(container);
terria.mainViewer.viewerMode = ViewerMode.Leaflet;
await when(() => terria.leaflet !== undefined);
})
);

it("correctly updates mouse coordinates on mouse move", function () {
const leaflet = terria.leaflet!;
expect(leaflet.mouseCoords.cartographic).toBeUndefined();
// A minimal stub event to get the test working
const stubMouseMoveEvent = {
originalEvent: new MouseEvent("mousemove", { clientX: 10, clientY: 10 })
};
leaflet.map.fireEvent("mousemove", stubMouseMoveEvent);
expect(leaflet.mouseCoords.cartographic).toBeDefined();
const { longitude, latitude, height } = leaflet.mouseCoords.cartographic!;
expect(longitude).not.toBeNaN();
expect(latitude).not.toBeNaN();
expect(height).toBe(0);
});
});
});

0 comments on commit e4307ed

Please sign in to comment.