diff --git a/src/adapters/leaflet.adapter.ts b/src/adapters/leaflet.adapter.ts index 4591ddbd..509362c1 100644 --- a/src/adapters/leaflet.adapter.ts +++ b/src/adapters/leaflet.adapter.ts @@ -18,12 +18,14 @@ export class TerraDrawLeafletAdapter extends TerraDrawAdapterBase { this._lib = config.lib; this._map = config.map; + this._container = this._map.getContainer(); } private _lib: typeof L; private _map: L.Map; private _layer: L.Layer | undefined; private _panes: Record = {}; + private _container: HTMLElement; /** * Creates a pane and its associated style sheet @@ -71,7 +73,7 @@ export class TerraDrawLeafletAdapter extends TerraDrawAdapterBase { * @returns The HTMLElement representing the map container. */ public getMapContainer() { - return this._map.getContainer(); + return this._container; } /** diff --git a/src/adapters/mapbox-gl.adapter.ts b/src/adapters/mapbox-gl.adapter.ts index 7a01d794..e22b5d31 100644 --- a/src/adapters/mapbox-gl.adapter.ts +++ b/src/adapters/mapbox-gl.adapter.ts @@ -18,9 +18,11 @@ export class TerraDrawMapboxGLAdapter extends TerraDrawAdapterBase { super(config); this._map = config.map; + this._container = this._map.getContainer(); } private _map: mapboxgl.Map; + private _container: HTMLElement; private _rendered: Record = {}; private _addGeoJSONSource(id: string, features: Feature[]) { @@ -180,7 +182,7 @@ export class TerraDrawMapboxGLAdapter extends TerraDrawAdapterBase { * @returns The HTMLElement representing the map container. */ public getMapContainer() { - return this._map.getContainer(); + return this._container; } /** @@ -330,6 +332,7 @@ export class TerraDrawMapboxGLAdapter extends TerraDrawAdapterBase { "LineString", linestrings as Feature[] ); + this._setGeoJSONLayerData( mode, "Polygon", diff --git a/src/adapters/openlayers.adapter.ts b/src/adapters/openlayers.adapter.ts index 795bf0bb..885d332b 100644 --- a/src/adapters/openlayers.adapter.ts +++ b/src/adapters/openlayers.adapter.ts @@ -41,12 +41,15 @@ export class TerraDrawOpenLayersAdapter extends TerraDrawAdapterBase { this._map = config.map; this._lib = config.lib; + this._container = this._map.getViewport(); + // TODO: Is this the best way to recieve keyboard events - this.getMapContainer().setAttribute("tabindex", "0"); + this._container.setAttribute("tabindex", "0"); } private _lib: InjectableOL; private _map: Map; + private _container: HTMLElement; private _projection = "EPSG:3857" as const; private _vectorSource: undefined | VectorSource; private _geoJSONReader: undefined | GeoJSON; @@ -175,7 +178,7 @@ export class TerraDrawOpenLayersAdapter extends TerraDrawAdapterBase { * @returns The HTMLElement representing the map container. */ public getMapContainer() { - return this._map.getViewport(); + return this._container; } /** diff --git a/src/modes/polygon/polygon.mode.ts b/src/modes/polygon/polygon.mode.ts index 7fb98983..d9047a50 100644 --- a/src/modes/polygon/polygon.mode.ts +++ b/src/modes/polygon/polygon.mode.ts @@ -177,7 +177,7 @@ export class TerraDrawPolygonMode extends TerraDrawBaseDrawMode updatedCoordinates = [ currentPolygonCoordinates[0], [event.lng, event.lat], - [event.lng, event.lat + offset], + [event.lng, event.lat - offset], currentPolygonCoordinates[0], ]; } else if (this.currentCoordinate === 2) {