> **本文回答**：后台服务主题的索引。一眼看清 `vjmap.Service` 能做的所有事。

# 后台服务总览

## 整体能力分类

| 类别 | 核心方法 | 子文件 |
|---|---|---|
| Service 基础 | `new vjmap.Service(url, token)`、`svc.switchWorkspace`、`svc.addAccessKey`、`svc.addSecretKey` | [service-basics](service-basics.md) |
| REST 底层 | `svc.httpGet` / `svc.httpPost` / `svc.httpDel` / 直接调用 `/api/v1/...` | [rest-interface](rest-interface.md) |
| 地图常用方法 | `svc.openMap` / `updateMap` / `metadata` / `cmdGetDrawBounds` / `getConstData` | [common-map-methods](common-map-methods.md) |
| **要素查询主参考** | 全部实体类型 `name='xx'`、字段含义对照、完整 SQL 示例 | **[query-features](query-features.md)** |
| SQL 查询速查 | `svc.conditionQueryFeature` / `rectQueryFeature` / `pointQueryFeature` | [query-sql](query-sql.md) |
| 表达式查询（内存模式） | `svc.exprQueryFeature` | [query-expression](query-expression.md) |
| 全文搜索 | REST `GET/POST /api/v1/service/fullsearch/search` / 云端管理平台 | [query-fulltext](query-fulltext.md) |
| 综合查询用例 | 自动分割子图 / 自动标注 / 自动提表 / 提取中心线 | [query-cases](query-cases.md) |
| 服务端样式变量（条件高亮） | `svrStyleVar` / `serverRenderStyle` | [svr-style-var](svr-style-var.md) |
| 地图管理 | `cmdDeleteMap` / 版本 / 密码 / 隐藏 / 临时图 | [map-management](map-management.md) |
| 上传创建 | `svc.uploadMap(file)` / `svc.updateMap({ filedoc })` | [upload-create-map](upload-create-map.md) |
| 数据源类型 | `vector` / `raster` / `geojson` / `image` / `video` | [map-sources](map-sources.md) |
| 数据权限 | RBAC / token 角色 / `superKey` / `secretKey` / `accessKey` | [map-power](map-power.md) |
| 导出 DWG | `svc.execCommand("exportDxf"...)` | [export-dwg](export-dwg.md) |
| 其他导出 | PDF / PNG / GeoJSON / ForgeViewer | [export-formats](export-formats.md) |
| 实体识别 | `svc.execCommand("objectDetection"...)` | [recognizer](recognizer.md) |
| AI 能力 | AI 对话 / AI 绘 CAD / 地图 MCP 协议 | [ai-features](ai-features.md) |

## 最短示例

```js
const svc = new vjmap.Service("https://vjmap.com/server/api/v1", TOKEN);

// 打开图
const res = await svc.openMap({ mapid: "sys_zp", mapopenway: vjmap.MapOpenWay.GeomRender });

// 查询图中所有文字
const q = await svc.conditionQueryFeature({
  condition: `name='13' or name='12' or name='26' or name='27'`,
  fields: "objectid,text,envelop",
  geom: true,
  limit: 100000
});

// 服务端过滤某个图层隐藏（注意：是 Map 的方法，不是 Service 的）
await map.switchLayers(svc, ["要显示的图层名"]);

// 导出 DWG
const exportRes = await svc.execCommand("exportDxf", {}, mapid, version, true);
```

## 三大红旗

1. **任何 `svc.` 接口结果不检查 `error`** → 错误难追溯。
2. **SQL 条件写了 `select * from table where ...`** → 只要写 `where` 后面的内容。
3. **`exprQueryFeature` 在几何渲染图上用** → 能跑但慢；此时应改用 `conditionQueryFeature` 走空间库。
