Add point, line and polygon modes
Here, we can add basic point, linestring, polygon modes with buttons and clear button to remove all features.
Firstly, import TerraDrawPointMode, TerraDrawLineStringMode and TerraDrawPolygonMode in script tag. Note that we are removing TerraDrawRectangleMode from the imports.
Then, update the declaration of the draw variable. By using $state(), the variable becomes reactive.
import {
TerraDraw,
TerraDrawPointMode,
TerraDrawLineStringMode,
TerraDrawPolygonMode
} from 'terra-draw';
let draw: TerraDraw | undefined = $state();
Update the modes: array in the initialization of TerraDraw object to include the new drawing modes.
draw = new TerraDraw({
adapter: new TerraDrawMapLibreGLAdapter({ map }),
modes: [
new TerraDrawPointMode(),
new TerraDrawLineStringMode(),
new TerraDrawPolygonMode()
]
});
Then, remove draw.setMode("rectangle"); from the last section so that we don't automtaically start with any drawing tool.
onMount(() => {
map.once('load', () => {
// Start drawing
draw.start();
- draw.setMode("rectangle");
})
})