Bezier Curve Editing Plugin
AMap.BezierCurveEditor Bezier Curve Editing Plugin supports modifying existing curves or dynamically drawing curves directly on the map, adjusting the shape of the curves through graphical interaction, thereby achieving real-time editing and drawing
Example of Curve Editing
1、Bezier Curve Editing Plugin BezierCurveEditor
1
1.1 Create a BezierCurve instance and add it to the Map
const map = new AMap.Map("container", {
zoom: 14,
center: [100.491422, 13.749313],
showOversea: true, //Enable world Map
mapStyle: "amap://styles/whitesmoke",
viewMode: "2D",
});
//2D Array of Start Points, Waypoints, and Control Points for Bezier Curve
var startPoint = [[100.469964, 13.771655]]; //Start Point
var viaPoint1 = [
//Linear Bezier Curve
[100.468763, 13.763819], //Control Point
[100.473483, 13.763903], //Waypoint
];
var viaPoint2 = [
//Quadratic Bezier Curve
[100.473312, 13.751897], //Control Point 1
[100.476058, 13.752064], //Control Point 2
[100.476058, 13.748729], //Waypoint
];
var endPoint = [
//Linear Bezier Curve
[100.479663, 13.734389], //Control Point
[100.4861, 13.734139], //Waypoint
];
//Curve path configuration
var path = [
startPoint,
viaPoint1,
viaPoint2,
endPoint
];
var bezierCurve = new AMap.BezierCurve({
path: path,
strokeWeight: 5,
strokeColor: "#fff",
isOutline: true,
outlineColor: "red",
borderWeight: 3,
});
map.add(bezierCurve);2
1.2 Construct a Bezier curve editing object and bind events
//Introduce the Bezier curve editor plugin
map.plugin(["AMap.BezierCurveEditor"], function () {
//Instantiate the Bezier curve editor, passing in the map instance and the Bezier curve instance to be edited
var bezierCurveEditor = new AMap.BezierCurveEditor(map, bezierCurve);
//Enable edit mode
bezierCurveEditor.open();
//Bind the adjust event, which is triggered when adjusting a point on the curve
bezierCurveEditor.on("adjust", function (event) {
console.log("Trigger event:adjust");
});
});Prompt
bezierCurveEditor.open() is the method to start editing an object. If you want to end editing, you can call the bezierCurveEditor.close() method.