Default / Share / VisualCone. They cannot be deleted / renamed / moved / undistributed, and will return business error code 211002; normal layers have normal CRUD.211403); query and lock / unlock toggle are not restricted.distribution to be pulled and displayed by the device end; undistributed layers are only visible in the cloud.POST /flight-areas/upload is application/json; upload refers to "config upload to device" rather than "client uploads file", do not mistakenly use multipart to submit.unknown → processing → success / failed; starting a new update will cancel the previous unfinished conversion.Query Annotation Layer (Folder) List (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups).Create Annotation Layer (Folder) (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups). Returns 211007 when parent layer is locked.Update Annotation Layer (Rename / Reorder) (PUT /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}). When orders is non-empty, batch sorting is executed and the name field is ignored; Share/Default/VisualCone are not allowed to be renamed (211002).Move / Reorder Layers and Elements (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/move). Element moved to root directory returns 211003; Default/Share cannot be moved to other directories (211002); VisualCone cannot be moved (211011).Lock / Unlock Annotation Layer (PUT /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/lock-status).Distribute Annotation Layer to Device End (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/distribution).Cancel Distribution of Annotation Layer (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/undistribution).Delete Single Annotation Layer (Folder) (DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}) — Cascade delete sub-layers and elements; locked state is rejected (211403); Share/Default/VisualCone are not allowed to be deleted (211002).Batch Delete Annotation Layers / Elements (DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups) — Delete multiple layers / elements at once, same logic as above.Create Annotation Element under Specified Layer (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/elements).Batch Import Layers and Annotations (KML-style JSON) (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/elements) — The request body is KML-style JSON, not a KML XML file.Export Elements under Layer Group (KML-style JSON) (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/elements) — Export by group_id list.Update Annotation Element (Rename / Change Coordinates / Change Style / Change Order) (PUT /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/elements/{id}) — All fields are optional; content is merged by JSON merge patch, not full replacement.Batch Modify Display Status of Elements under Layer (PUT /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/elements/status) — Uniformly change all unlocked elements under the specified layer and its sub-layers to show / hide.DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/elements/{id}; clear layer DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-groups/{group_id}/elements.Common Foundation Tutorial → Project-level Direct File Upload STS Credentials.Register Custom Point Icon (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-icons).Query Project Custom Point Icon Library (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-icons) — Returns signed URL.Delete Custom Point Icon (DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/element-icons/{icon_id}).Query Flight Area List under Project (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/flight-areas) — Supports filtering by name, type, status + pagination.Create Flight Area (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/flight-areas).Update Flight Area (PUT /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/flight-areas/{id}) — Use area_hash for optimistic lock conflict detection.Delete Flight Area (DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/flight-areas/{id}).Trigger Flight Area Config Sync to Device (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/flight-areas/upload).Configure Project Offline Map Manifest (Start a New Update) (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/offline-maps).Get Project Offline Map Details (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/offline-maps) — Query 2D / 3D model list, conversion progress percentage, status. The GET response status enum in spec is unknown / processing / success / failed; the backend actual state machine is more detailed (waiting / processing / finish / fail / cancel / timeout); the caller can make client-side judgments based on the GET return value field.Trigger Offline Map Package Sync to Dock (POST /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/offline-maps/packages) — Must first configure via the configuration interface before triggering.Get Offline Map Terrain Model Download URL (GET /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/offline-maps/url) — Returns the object storage signed download URL by Dock SN. If the dock has not yet configured an offline map, data contains disable: true.Cancel Offline Map Model Update (DELETE /openapi/v2.0/map/api/v1/workspaces/{workspace_id}/offline-maps) — The backend CancelUpdateModel only allows cancellation when the model is in a failed state; other states will be rejected with ErrCannotCancelUpdateModel; please GET the current status before calling.Query Project-level Signal Heatmap (POST /openapi/v2.0/manage/api/v1/projects/{uuid}/signal-maps) — Query the signal strength heatmap of areas where historical flights of drones under the project have passed, by device SN list. Request body fields:device_sns (array): The list of device SNs to query.data_types (array, required): The list of link types, such as ["sdr"] / ["4g"] / ["sdr","4g"].resolution (optional): H3 index grid resolution.Query Organization-level Signal Heatmap (POST /openapi/v2.0/manage/api/v1/organizations/{uuid}/signal-maps) — Query the device signal heatmap of all projects under the current organization where the user has permissions, by device SN list. The request body form is the same as the project-level interface.