使用 Terra-Draw 绘制几何图形
使用 Terra-Draw 插件绘制各种几何图形;
<!DOCTYPE html>
<html lang="en">
<head>
<title>使用 Terra-Draw 绘制几何图形</title>
<meta property="og:description" content="使用 Terra-Draw 插件绘制各种几何图形" />
<meta charset='utf-8'>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.5.0/dist/maplibre-gl.css' />
<script src='https://unpkg.com/maplibre-gl@5.5.0/dist/maplibre-gl.js'></script>
<style>
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/@watergis/maplibre-gl-terradraw@1.0.1/dist/maplibre-gl-terradraw.umd.js"></script>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@watergis/maplibre-gl-terradraw@1.0.1/dist/maplibre-gl-terradraw.css"
/>
<div id="map"></div>
<script>
const map = new maplibregl.Map({
container: 'map', // 容器id
style:
'https://api.maptiler.com/maps/streets/style.json?key=get_your_own_OpIi9ZULNHzrESv6T2vL', // 托管样式id
center: [-91.874, 42.76], // 初始位置
zoom: 12 // 初始缩放级别
});
// 默认情况下,所有terra-draw绘图模式都已启用。
// 如果需要,可以在构造函数选项中禁用某些模式。
const draw = new MaplibreTerradrawControl.MaplibreTerradrawControl({
modes: [
// 'render', 注释此行可以始终显示绘图工具
'point', // 点
'linestring', // 线段
'polygon', // 多边形
'rectangle', // 矩形
'circle', // 圆形
'freehand', // 自由绘制
'angled-rectangle', // 带角度的矩形
'sensor', // 传感器
'sector', // 扇形
'select', // 选择
'delete-selection', // 删除选择
'delete', // 删除
'download' // 下载
],
open: true, // 初始状态为打开
});
map.addControl(draw, 'top-left'); // 添加到地图的左上角
</script>
</body>
</html>