Metadata-Version: 2.4
Name: gogeo-cli
Version: 0.1.6
Summary: GoGeo CLI - manage property/geographic data assets via REST API
Home-page: https://gogeo.topprismdata.com
Author: gogeo
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# gogeo-cli

Unified CLI for all GoGeo business API projects.

## Architecture

```
gogeo-cli                     # 统一入口
├── common-task               # common-task 工程命令
│   ├── project               # 连接配置
│   ├── data / spatial / ...  # 异步 API
│   ├── realtime              # 实时 API
│   ├── export                # 导出
│   └── repl                  # 交互模式
└── <other-project>           # 未来其它工程
```

## Installation

```bash
cd agent-harness
pip install -e .
```

## Quick Start

```bash
# 1. Connect (one-time)
gogeo-cli common-task project init http://your-server:9000/common-task

# 2. Call a realtime API
gogeo-cli common-task realtime base point-circle --data '{"pointData": [{"code": "s1", "point": "POINT(108.95 34.27)"}], "radius": 1000}' --json
```

## Command Groups

| Command | Description |
|---------|-------------|
| `project` | Connection configuration |
| `data` | Text/POI/duplicate-marking APIs |
| `spatial` | Spatial analysis & calculation |
| `operation` | Data operation tools |
| `model` | Model calculation |
| `resource` | Resource planning |
| `base` | Base GIS services |
| `thirdparty` | Amap/Tencent integrations |
| `realtime` | Synchronous variants |
| `export` | Export results (JSON/CSV) |
| `repl` | Interactive REPL mode |

---

## Request Examples

### realtime base

#### point-circle — 点生成圆形
```bash
gogeo-cli common-task realtime base point-circle --data '{
  "pointData": [
    {"code": "store_001", "point": "POINT(108.95 34.27)"}
  ],
  "radius": 1000
}' --json
```
- `pointData`: 点列表，`code`(必填) 和 `point`(WKT格式,必填) 必须存在
- `radius`: 半径，单位米

#### point-square — 点生成方形
```bash
gogeo-cli common-task realtime base point-square --data '{
  "pointData": [
    {"code": "s1", "point": "POINT(108.95 34.27)"}
  ],
  "radius": 500
}' --json
```

#### point-hexagon — 点生成六边形
```bash
gogeo-cli common-task realtime base point-hexagon --data '{
  "pointData": [
    {"code": "s1", "point": "POINT(108.95 34.27)"}
  ],
  "radius": 1000
}' --json
```

#### point-coord-convert — 点坐标转换
```bash
gogeo-cli common-task realtime base point-coord-convert --data '{
  "point": [
    {"code": "p1", "lng": 108.95, "lat": 34.27}
  ],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### line-coord-convert — 线坐标转换
```bash
gogeo-cli common-task realtime base line-coord-convert --data '{
  "line": [
    {"code": "l1", "line": "LINESTRING(108.95 34.27, 108.96 34.28)"}
  ],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### fence-coord-convert — 围栏坐标转换
```bash
gogeo-cli common-task realtime base fence-coord-convert --data '{
  "fence": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### line-thin — 线抽稀
```bash
gogeo-cli common-task realtime base line-thin --data '{
  "line": [
    {"code": "l1", "line": "LINESTRING(...)"}
  ],
  "maxValue": "0.001"
}' --json
```

#### fence-thin — 围栏抽稀
```bash
gogeo-cli common-task realtime base fence-thin --data '{
  "fence": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "maxValue": "0.001"
}' --json
```

#### point-rarefy — 点抽稀
```bash
gogeo-cli common-task realtime base point-rarefy --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "dilutionLevel": 3
}' --json
```

#### fence-boundary — 多边形提取线
```bash
gogeo-cli common-task realtime base fence-boundary --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

---

### realtime spatial analysis

#### point-cluster — 点聚类分析
```bash
gogeo-cli common-task realtime spatial analysis point-cluster --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"},
    {"code": "p2", "point": "POINT(108.96 34.28)"},
    {"code": "p3", "point": "POINT(108.94 34.26)"}
  ],
  "partitionNum": 2
}' --json
```
- `pointData`: 点数据，`code` 和 `point` 必填
- `partitionNum`: 划分数量

#### kmeans — KMeans 聚类
```bash
gogeo-cli common-task realtime spatial analysis kmeans --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"},
    {"code": "p2", "point": "POINT(108.96 34.28)"}
  ],
  "clusterType": "GRID",
  "clusterAlgorithm": "KMEANS",
  "gridType": "SQUARE",
  "amount": 100
}' --json
```

#### area-split — 等面积拆分
```bash
gogeo-cli common-task realtime spatial analysis area-split --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "splitCount": 4,
  "balance": 1
}' --json
```
- `fenceData`: 面数据
- `splitCount`: 拆分数量
- `balance`: 均衡度

#### potential-split — 等潜力拆分
```bash
gogeo-cli common-task realtime spatial analysis potential-split --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))", "value": 100}
  ],
  "num": "value",
  "splitCount": 3
}' --json
```
- `num`: 潜力字段名
- `splitCount`: 拆分数量

#### equal-value-split — 等值拆分 V2
```bash
gogeo-cli common-task realtime spatial analysis equal-value-split --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))", "sales": 50}
  ],
  "num": "sales",
  "splitCount": 3,
  "balanceValue": 10
}' --json
```

#### fence-buffer — 面外扩
```bash
gogeo-cli common-task realtime spatial analysis fence-buffer --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "bufferArea": "500"
}' --json
```

#### fence-crossing — 围栏不相交区域
```bash
gogeo-cli common-task realtime spatial analysis fence-crossing --data '{
  "sourceData": [
    {"code": "s1", "fence": "POLYGON((...))"}
  ],
  "targetData": [
    {"code": "t1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### line-buffer — 线外扩
```bash
gogeo-cli common-task realtime spatial analysis line-buffer --data '{
  "lineData": [
    {"code": "l1", "line": "LINESTRING(...)"}
  ],
  "buffer": 500,
  "endCapStyle": "ROUND"
}' --json
```

#### random-sample — 围栏随机采样
```bash
gogeo-cli common-task realtime spatial analysis random-sample --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "count": 50
}' --json
```

#### fence-cluster — 面聚类分析
```bash
gogeo-cli common-task realtime spatial analysis fence-cluster --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "partitionNum": 3
}' --json
```

#### address-parse — 地址解析
```bash
gogeo-cli common-task realtime spatial analysis address-parse --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "address": "陕西省西安市雁塔区"}
  ],
  "address": "address"
}' --json
```

#### reverse-address-parse — 逆地址解析
```bash
gogeo-cli common-task realtime spatial analysis reverse-address-parse --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### belonging-area-v2 — 归属面生成 V2
```bash
gogeo-cli common-task realtime spatial analysis belonging-area-v2 --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "connectType": "FOUR",
  "boundaryLevel": "CITY",
  "sideLength": 500
}' --json
```

#### affiliation-area-v1 — 归属面 V1 自定义多边形
```bash
gogeo-cli common-task realtime spatial analysis affiliation-area-v1 --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### potential-classification — 等潜力分类 V2 点
```bash
gogeo-cli common-task realtime spatial analysis potential-classification --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "value": 100}
  ],
  "numField": "value",
  "side": 500,
  "splitCount": 3
}' --json
```

#### random-points — 围栏内随机生成点
```bash
gogeo-cli common-task realtime spatial analysis random-points --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "pointData": [],
  "count": 10
}' --json
```

#### projection-area — 投影面积计算
```bash
gogeo-cli common-task realtime spatial analysis projection-area --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### cluster-center — 点聚类中心
```bash
gogeo-cli common-task realtime spatial analysis cluster-center --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### hexagon-split — 六边形拆分
```bash
gogeo-cli common-task realtime spatial analysis hexagon-split --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### grid-split — 网格拆分
```bash
gogeo-cli common-task realtime spatial analysis grid-split --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

---

### realtime spatial calculation

#### point-in-fence — 点在面内
```bash
gogeo-cli common-task realtime spatial calculation point-in-fence --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "buffer": 0
}' --json
```
- `buffer`: 缓冲区距离（米），0 表示不缓冲

#### point-outside-fence — 点在面外
```bash
gogeo-cli common-task realtime spatial calculation point-outside-fence --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "buffer": 0
}' --json
```

#### fence-of-point — 包含点的面
```bash
gogeo-cli common-task realtime spatial calculation fence-of-point --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### fence-without-point — 不包含点的面
```bash
gogeo-cli common-task realtime spatial calculation fence-without-point --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### fence-contain — 面包含面
```bash
gogeo-cli common-task realtime spatial calculation fence-contain --data '{
  "mainData": [
    {"code": "m1", "fence": "POLYGON((...))"}
  ],
  "auxiliaryData": [
    {"code": "a1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### fence-merge — 面合并
```bash
gogeo-cli common-task realtime spatial calculation fence-merge --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))", "group": "A"},
    {"code": "f2", "fence": "POLYGON((...))", "group": "A"}
  ],
  "mergeField": "group",
  "isFieldMerge": "0",
  "isIntersectMerge": "0",
  "isMulti": "1"
}' --json
```
- `fenceData`: 围栏数据（WKT 格式）
- `mergeField`: 合并字段（面资产的字段）
- `isFieldMerge`: 是否字段合并（1=是，0=否）
- `isIntersectMerge`: 是否相交合并（1=是，0=否）
- `isMulti`: 合并类型（1=凸包，0=多边形）

#### fence-intersection-area — 面相交面积
```bash
gogeo-cli common-task realtime spatial calculation fence-intersection-area --data '{
  "mainFenceData": [
    {"code": "m1", "fence": "POLYGON((...))"}
  ],
  "auxiliaryFenceData": [
    {"code": "a1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### voronoi — 泰森多边形
```bash
gogeo-cli common-task realtime spatial calculation voronoi --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"},
    {"code": "p2", "point": "POINT(108.96 34.28)"}
  ]
}' --json
```

#### scatter-fence — 散点生成围栏
```bash
gogeo-cli common-task realtime spatial calculation scatter-fence --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "group": "A"}
  ],
  "groupField": "group",
  "fenceType": "CONVEX_HULL"
}' --json
```

#### belonging-area-v1 — 归属面生成 V1
```bash
gogeo-cli common-task realtime spatial calculation belonging-area-v1 --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### scu-h3 — H3标准生成
```bash
gogeo-cli common-task realtime spatial calculation scu-h3 --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### scu-h3-merge — H3合并
```bash
gogeo-cli common-task realtime spatial calculation scu-h3-merge --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### scu-s2 — S2标准生成
```bash
gogeo-cli common-task realtime spatial calculation scu-s2 --data '{}' --json
```

#### scu-admin — 行政区划生成
```bash
gogeo-cli common-task realtime spatial calculation scu-admin --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### line-intersection — 线交点
```bash
gogeo-cli common-task realtime spatial calculation line-intersection --data '{
  "lineData": [
    {"code": "l1", "line": "LINESTRING(...)"}
  ]
}' --json
```

#### line-split-fence — 线拆分面
```bash
gogeo-cli common-task realtime spatial calculation line-split-fence --data '{
  "lineData": [
    {"code": "l1", "line": "LINESTRING(...)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ]
}' --json
```

#### center-point — 中心点计算
```bash
gogeo-cli common-task realtime spatial calculation center-point --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "computeType": "CENTROID"
}' --json
```

#### fence-contain-relation — 面包含关系
```bash
gogeo-cli common-task realtime spatial calculation fence-contain-relation --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "containRatio": "100",
  "isAll": true
}' --json
```

#### point-centroid — 点质心
```bash
gogeo-cli common-task realtime spatial calculation point-centroid --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "group": "A"}
  ],
  "partitionType": "GROUP",
  "sideLength": 500
}' --json
```

#### fence-equalization — 面均衡化
```bash
gogeo-cli common-task realtime spatial calculation fence-equalization --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "point": "POINT(108.95 34.27)",
  "equalNumber": 4
}' --json
```

#### h3-split-merge — H3拆分合并
```bash
gogeo-cli common-task realtime spatial calculation h3-split-merge --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "splitValue": 1,
  "zoomStart": 1
}' --json
```

#### scu-geohash — GeoHash生成
```bash
gogeo-cli common-task realtime spatial calculation scu-geohash --data '{}' --json
```

#### fence-buffer — 面缓冲区
```bash
gogeo-cli common-task realtime spatial calculation fence-buffer --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "bufferArea": "500"
}' --json
```

---

### realtime operation

#### text-handling — 文本处理
```bash
gogeo-cli common-task realtime operation text-handling --data '{
  "textData": [
    {"code": "t1", "text": "hello world"}
  ],
  "textHandlingStrategy": [{"type": "TO_UPPER"}]
}' --json
```

#### exact-match — 精确匹配
```bash
gogeo-cli common-task realtime operation exact-match --data '{
  "textData": [
    {"code": "t1", "textStr": "A店", "textStr1": "A店"},
    {"code": "t2", "textStr": "B店", "textStr1": "C店"}
  ]
}' --json
```

#### similarity — 相似度处理
```bash
gogeo-cli common-task realtime operation similarity --data '{
  "textData": [
    {"code": "t1", "textStr": "hello", "textStr1": "hello world"}
  ],
  "similarity": 0.8
}' --json
```

#### ka-match — KA识别
```bash
gogeo-cli common-task realtime operation ka-match --data '{
  "textData": [
    {"code": "t1", "name": "门店"}
  ],
  "kaData": {"keyword": "连锁"}
}' --json
```

#### duplicate-mark — 重复标记
```bash
gogeo-cli common-task realtime operation duplicate-mark --data '{
  "groupData": [
    {"code": "g1", "name": "A", "addr": "XX路"},
    {"code": "g2", "name": "A", "addr": "YY路"}
  ],
  "groupField1": "name",
  "groupField2": "addr"
}' --json
```
- `groupData`: 数据列表
- `groupField1~5`: 去重字段（最多5个）

#### text-concat — 文本拼接
```bash
gogeo-cli common-task realtime operation text-concat --data '{
  "textData": [
    {"code": "t1", "province": "陕西", "city": "西安"}
  ],
  "concatFields": ["province", "city"]
}' --json
```

#### subsection-mark — 分段标记
```bash
gogeo-cli common-task realtime operation subsection-mark --data '{
  "dataList": [
    {"code": "d1", "value": 100}
  ],
  "param": [
    {"subsectionFields": ["value"], "subsectionType": "RANGE", "operType": "GREATER", "compareValue": 50, "markValue": "高"}
  ]
}' --json
```

#### normalized-expr — 归一化计算
```bash
gogeo-cli common-task realtime operation normalized-expr --data '{
  "normalizedData": [
    {"code": "n1", "a": 10, "b": 20}
  ],
  "normalizedExpr": "(a + b) / 2"
}' --json
```

#### text-similarity — 文本相似度
```bash
gogeo-cli common-task realtime operation text-similarity --data '{
  "textData": [
    {"code": "t1", "sourceText": "hello", "targetText": "hello world"}
  ],
  "algorithm": "COSINE"
}' --json
```

---

### realtime model

#### reachable-range — 可达范围
```bash
gogeo-cli common-task realtime model reachable-range --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "directionType": "FROM",
  "travelTime": 15
}' --json
```
- `directionType`: `FROM`(出发) / `TO`(到达)
- `travelTime`: 出行时间（分钟）

#### industry-cluster — 行业聚类
```bash
gogeo-cli common-task realtime model industry-cluster --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "paramJson": {"fenceDistance": 500, "distance": 1000, "buffer": 200, "groupSize": 5}
}' --json
```

#### radiate-circle — 商业辐射圈
```bash
gogeo-cli common-task realtime model radiate-circle --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "radius": 1000,
  "unionDistance": 500
}' --json
```

#### scu-specify — 指定生成
```bash
gogeo-cli common-task realtime model scu-specify --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ],
  "unitType": "H3",
  "radius": 1000
}' --json
```
- `unitType`: `H3` / `S2` / `GEOHASH`

#### scu-geohash — GeoHash
```bash
gogeo-cli common-task realtime model scu-geohash --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"}
  ]
}' --json
```

#### solitary-screen — 孤立点标记
```bash
gogeo-cli common-task realtime model solitary-screen --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "value": 10}
  ],
  "fields": [
    {"fieldName": "value", "operationType": "GREATER", "content": 5}
  ]
}' --json
```

---

### realtime resource

#### route-replay — 路线回放
```bash
gogeo-cli common-task realtime resource route-replay --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "groupId": "G001", "round": "1"}
  ],
  "groupId": "groupId",
  "round": "round",
  "startLocation": "POINT(108.95 34.27)"
}' --json
```

#### service-day-week — 服务日周划分
```bash
gogeo-cli common-task realtime resource service-day-week --data '{
  "divideType": "BALANCE",
  "balanceValue": 15.0,
  "group1": "salesCode",
  "workDay": "6",
  "startEndDate": ["2026-04-01", "2026-04-30"]
}' --json
```

#### service-route — 服务路线规划
```bash
gogeo-cli common-task realtime resource service-route --data '{
  "customerData": [
    {"code": "c1", "point": "POINT(108.95 34.27)", "salesCode": "S1", "visitCycle": "W2"}
  ],
  "salesData": [
    {"code": "S1", "depotLocation": "POINT(108.95 34.27)"}
  ],
  "group1": "salesCode",
  "salesCodeField": "salesCode"
}' --json
```

#### vehicle-sales — 车辆销售规划
```bash
gogeo-cli common-task realtime resource vehicle-sales --data '{
  "customerData": {"data": [{"code": "c1", "point": "POINT(108.95 34.27)", "salesCode": "S1"}]},
  "salesData": {"data": [{"code": "S1", "depotLocation": "POINT(108.95 34.27)"}]}
}' --json
```

#### logistics — 物流路线
```bash
gogeo-cli common-task realtime resource logistics --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}
  ],
  "group1": "group1",
  "startLocation": "POINT(108.95 34.27)"
}' --json
```

---

### realtime thirdparty

#### poi-match — POI匹配
```bash
gogeo-cli common-task realtime thirdparty poi-match --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "name": "钟楼", "address": "西安市中心"}
  ],
  "apiParams": [
    {"adCode": "610100", "city": "西安", "keyword": "name"}
  ]
}' --json
```

#### tx-poi-match-v2 — 腾讯POI匹配 V2
```bash
gogeo-cli common-task realtime thirdparty tx-poi-match-v2 --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)", "address": "西安市"}
  ],
  "txData": {"province": "陕西", "city": "西安"}
}' --json
```

#### customer-flow-items — 客流服务项
```bash
gogeo-cli common-task realtime thirdparty customer-flow-items --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "property": [{"name": "客流量"}]
}' --json
```

#### customer-flow-competitors — 客流竞品
```bash
gogeo-cli common-task realtime thirdparty customer-flow-competitors --data '{
  "customerData": [
    {"code": "c1", "mallIdFieldCode": "M001", "mallFieldCode": "name"}
  ]
}' --json
```

#### customer-flow-report — 客流数据报告
```bash
gogeo-cli common-task realtime thirdparty customer-flow-report --data '{
  "customerData": [
    {"code": "c1", "mallIdFieldCode": "M001"}
  ],
  "dataReportInterApiParams": [{"dateList": ["2026-04"], "month": ["2026-04"]}]
}' --json
```

#### lbs-passenger-point — LBS客流画像(点)
```bash
gogeo-cli common-task realtime thirdparty lbs-passenger-point --data '{
  "lbsData": [
    {"code": "l1", "poiPoint": "POINT(108.95 34.27)", "radius": "1000"}
  ],
  "lbsInterApiParams": [{"label": ["age", "gender"], "peopleType": ["工作日"]}]
}' --json
```

#### lbs-passenger-area — LBS客流画像(面)
```bash
gogeo-cli common-task realtime thirdparty lbs-passenger-area --data '{
  "fenceData": [
    {"code": "f1", "fence": "POLYGON((...))"}
  ],
  "lbsInterApiParams": [{"label": ["age"], "heatType": ["hour"]}]
}' --json
```

---

### data (async)

#### text-handling — 文本处理
```bash
gogeo-cli common-task data text-handling --data '{
  "textData": [{"code": "t1", "text": "hello"}]
}' --json
```
返回 task code，用 `data batch-status` 查询结果。

#### poi-match — POI匹配
```bash
gogeo-cli common-task data poi-match --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "name": "钟楼"}]
}' --json
```

#### address-parse — 地址解析
```bash
gogeo-cli common-task data address-parse --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "address": "陕西省西安市"}],
  "address": "address"
}' --json
```

#### duplicate-marking — 重复标记
```bash
gogeo-cli common-task data duplicate-marking --data '{
  "groupData": [
    {"code": "g1", "name": "A", "addr": "XX路"},
    {"code": "g2", "name": "A", "addr": "YY路"}
  ],
  "groupField1": "name",
  "groupField2": "addr"
}' --json
```

#### batch-status — 批量查询任务状态
```bash
gogeo-cli common-task data batch-status --data '{
  "taskCodes": ["TASK_CODE_001", "TASK_CODE_002"]
}' --json
```

---

### spatial analysis (async)

#### point-cluster — 点聚类分析
```bash
gogeo-cli common-task spatial analysis point-cluster --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "partitionNum": 2
}' --json
```
返回 task code，异步处理完成后结果写入数据库。

#### kmeans — KMeans
```bash
gogeo-cli common-task spatial analysis kmeans --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "clusterType": "GRID",
  "clusterAlgorithm": "KMEANS",
  "gridType": "SQUARE",
  "amount": 100
}' --json
```

#### area-split — 等面积拆分
```bash
gogeo-cli common-task spatial analysis area-split --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "splitCount": 4
}' --json
```

#### fence-buffer — 面外扩
```bash
gogeo-cli common-task spatial analysis fence-buffer --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### potential-split — 等潜力拆分
```bash
gogeo-cli common-task spatial analysis potential-split --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))", "value": 100}],
  "num": "value",
  "splitCount": 3
}' --json
```

#### hexagon-split — 六边形拆分
```bash
gogeo-cli common-task spatial analysis hexagon-split --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### grid-split — 网格拆分
```bash
gogeo-cli common-task spatial analysis grid-split --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### random-points — 围栏内随机点
```bash
gogeo-cli common-task spatial analysis random-points --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "pointData": [],
  "count": 10
}' --json
```

#### random-sample — 围栏随机采样
```bash
gogeo-cli common-task spatial analysis random-sample --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "count": 50
}' --json
```

#### fence-cluster — 面聚类
```bash
gogeo-cli common-task spatial analysis fence-cluster --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "partitionNum": 3
}' --json
```

#### fence-crossing — 围栏不相交
```bash
gogeo-cli common-task spatial analysis fence-crossing --data '{
  "sourceData": [{"code": "s1", "fence": "POLYGON((...))"}],
  "targetData": [{"code": "t1", "fence": "POLYGON((...))"}]
}' --json
```

#### line-buffer — 线外扩
```bash
gogeo-cli common-task spatial analysis line-buffer --data '{
  "lineData": [{"code": "l1", "line": "LINESTRING(...)"}],
  "buffer": 500
}' --json
```

#### belonging-area-v2 — 归属面 V2
```bash
gogeo-cli common-task spatial analysis belonging-area-v2 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "connectType": "FOUR",
  "sideLength": 500
}' --json
```

#### cluster-center — 聚类中心
```bash
gogeo-cli common-task spatial analysis cluster-center --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}]
}' --json
```

#### equal-value-split — 等值拆分 V2
```bash
gogeo-cli common-task spatial analysis equal-value-split --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))", "sales": 50}],
  "num": "sales",
  "splitCount": 3
}' --json
```

#### projection-area — 投影面积
```bash
gogeo-cli common-task spatial analysis projection-area --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### potential-classification — 等潜力分类
```bash
gogeo-cli common-task spatial analysis potential-classification --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "value": 100}],
  "numField": "value",
  "side": 500,
  "splitCount": 3
}' --json
```

#### affiliation-area-v1 — 归属面 V1
```bash
gogeo-cli common-task spatial analysis affiliation-area-v1 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

---

### spatial calculation (async)

#### point-in-fence — 点在面内
```bash
gogeo-cli common-task spatial calculation point-in-fence --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "buffer": 0
}' --json
```

#### point-outside-fence — 点在面外
```bash
gogeo-cli common-task spatial calculation point-outside-fence --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "buffer": 0
}' --json
```

#### fence-of-point — 包含点的面
```bash
gogeo-cli common-task spatial calculation fence-of-point --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### fence-without-point — 不包含点的面
```bash
gogeo-cli common-task spatial calculation fence-without-point --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### fence-contain — 面包含面
```bash
gogeo-cli common-task spatial calculation fence-contain --data '{
  "mainData": [{"code": "m1", "fence": "POLYGON((...))"}],
  "auxiliaryData": [{"code": "a1", "fence": "POLYGON((...))"}]
}' --json
```

#### fence-merge — 面合并
```bash
gogeo-cli common-task spatial calculation fence-merge --data '{
  "propertyCode": "fence_property_001",
  "mergeField": "group",
  "isFieldMerge": "0",
  "isIntersectMerge": "0",
  "isMulti": "1"
}' --json
```
- `propertyCode`: 面数据资产编码
- `mergeField`: 合并字段（面资产的字段）
- `isFieldMerge`: 是否字段合并（1=是，0=否）
- `isIntersectMerge`: 是否相交合并（1=是，0=否）
- `isMulti`: 合并类型（1=凸包，0=多边形）

#### fence-intersection-area — 面相交面积
```bash
gogeo-cli common-task spatial calculation fence-intersection-area --data '{
  "mainFenceData": [{"code": "m1", "fence": "POLYGON((...))"}],
  "auxiliaryFenceData": [{"code": "a1", "fence": "POLYGON((...))"}]
}' --json
```

#### voronoi — 泰森多边形
```bash
gogeo-cli common-task spatial calculation voronoi --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"},
    {"code": "p2", "point": "POINT(108.96 34.28)"}
  ]
}' --json
```

#### scatter-fence — 散点生成围栏
```bash
gogeo-cli common-task spatial calculation scatter-fence --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group": "A"}],
  "groupField": "group",
  "fenceType": "CONVEX_HULL"
}' --json
```

#### belonging-area-v1 — 归属面 V1
```bash
gogeo-cli common-task spatial calculation belonging-area-v1 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}]
}' --json
```

#### scu-h3 — H3生成
```bash
gogeo-cli common-task spatial calculation scu-h3 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}]
}' --json
```

#### scu-geohash — GeoHash生成
```bash
gogeo-cli common-task spatial calculation scu-geohash --data '{}' --json
```

#### scu-h3-merge — H3合并
```bash
gogeo-cli common-task spatial calculation scu-h3-merge --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}]
}' --json
```

#### scu-s2 — S2生成
```bash
gogeo-cli common-task spatial calculation scu-s2 --data '{}' --json
```

#### scu-admin — 行政区划生成
```bash
gogeo-cli common-task spatial calculation scu-admin --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}]
}' --json
```

#### line-intersection — 线交点
```bash
gogeo-cli common-task spatial calculation line-intersection --data '{
  "lineData": [{"code": "l1", "line": "LINESTRING(...)"}]
}' --json
```

#### h3-split-merge — H3拆分合并
```bash
gogeo-cli common-task spatial calculation h3-split-merge --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "splitValue": 1,
  "zoomStart": 1
}' --json
```

#### center-point — 中心点
```bash
gogeo-cli common-task spatial calculation center-point --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "computeType": "CENTROID"
}' --json
```

#### fence-contain-relation — 面包含关系
```bash
gogeo-cli common-task spatial calculation fence-contain-relation --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "containRatio": "100",
  "isAll": true
}' --json
```

#### point-centroid — 点质心
```bash
gogeo-cli common-task spatial calculation point-centroid --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group": "A"}],
  "partitionType": "GROUP",
  "sideLength": 500
}' --json
```

#### line-split-fence — 线拆分面
```bash
gogeo-cli common-task spatial calculation line-split-fence --data '{
  "lineData": [{"code": "l1", "line": "LINESTRING(...)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### fence-equalization — 面均衡化
```bash
gogeo-cli common-task spatial calculation fence-equalization --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "point": "POINT(108.95 34.27)",
  "equalNumber": 4
}' --json
```

---

### operation (async)

#### filter — 数据过滤
```bash
gogeo-cli common-task operation filter --data '{
  "groupData": [{"code": "g1", "value": 100}],
  "param": [{"fieldName": "value", "operationType": "GREATER", "content": 50}]
}' --json
```

#### group — 数据分组
```bash
gogeo-cli common-task operation group --data '{
  "groupData": [{"code": "g1", "group": "A", "value": 100}],
  "groupField": "group"
}' --json
```

#### merge — 数据合并
```bash
gogeo-cli common-task operation merge --data '{
  "groupData": [{"code": "g1", "value": 100}]
}' --json
```

#### text-concat — 文本拼接
```bash
gogeo-cli common-task operation text-concat --data '{
  "textData": [{"code": "t1", "a": "hello", "b": "world"}],
  "concatFields": ["a", "b"]
}' --json
```

#### duplicate-mark — 重复标记
```bash
gogeo-cli common-task operation duplicate-mark --data '{
  "groupData": [{"code": "g1", "name": "A"}, {"code": "g2", "name": "A"}],
  "groupField1": "name"
}' --json
```

#### intersect — 交叉关联
```bash
gogeo-cli common-task operation intersect --data '{
  "mainData": [{"code": "m1", "fence": "POLYGON((...))"}],
  "auxiliaryData": [{"code": "a1", "fence": "POLYGON((...))"}]
}' --json
```

#### ka-handling — KA识别
```bash
gogeo-cli common-task operation ka-handling --data '{
  "textData": [{"code": "t1", "name": "门店"}]
}' --json
```

#### subsection-mark — 分段标记
```bash
gogeo-cli common-task operation subsection-mark --data '{
  "dataList": [{"code": "d1", "value": 100}],
  "param": [{"subsectionFields": ["value"], "subsectionType": "RANGE", "operType": "GREATER", "compareValue": 50, "markValue": "高"}]
}' --json
```

#### normalized-expr — 归一化
```bash
gogeo-cli common-task operation normalized-expr --data '{
  "normalizedData": [{"code": "n1", "a": 10, "b": 20}],
  "normalizedExpr": "(a + b) / 2"
}' --json
```

#### one-id — ONE_ID关联
```bash
gogeo-cli common-task operation one-id --data '{
  "groupData": [{"code": "g1", "id1": "A", "id2": "B"}]
}' --json
```

#### text-similarity — 文本相似度
```bash
gogeo-cli common-task operation text-similarity --data '{
  "textData": [{"code": "t1", "sourceText": "hello", "targetText": "hello world"}],
  "algorithm": "COSINE"
}' --json
```

---

### model (async)

#### reachable-range — 可达范围
```bash
gogeo-cli common-task model reachable-range --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "directionType": "FROM",
  "travelTime": 15
}' --json
```

#### scu-specify — 指定生成
```bash
gogeo-cli common-task model scu-specify --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "unitType": "H3",
  "radius": 1000
}' --json
```

#### solitary-screen — 孤立点标记
```bash
gogeo-cli common-task model solitary-screen --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "value": 10}],
  "fields": [{"fieldName": "value", "operationType": "GREATER", "content": 5}]
}' --json
```

#### industry-cluster — 行业聚类
```bash
gogeo-cli common-task model industry-cluster --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "paramJson": {"fenceDistance": 500, "distance": 1000}
}' --json
```

#### radiate-circle — 辐射圈
```bash
gogeo-cli common-task model radiate-circle --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}],
  "radius": 1000
}' --json
```

#### belonging-area — 归属面
```bash
gogeo-cli common-task model belonging-area --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

---

### resource (async)

#### logistics — 物流路线
```bash
gogeo-cli common-task resource logistics --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1",
  "startLocation": "POINT(108.95 34.27)"
}' --json
```

#### sales-group — 销售分组
```bash
gogeo-cli common-task resource sales-group --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1"
}' --json
```

#### route-replay — 路线回放
```bash
gogeo-cli common-task resource route-replay --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "groupId": "G001", "round": "1"}],
  "groupId": "groupId",
  "round": "round",
  "startLocation": "POINT(108.95 34.27)"
}' --json
```

#### logistics-v1 — 物流 V1
```bash
gogeo-cli common-task resource logistics-v1 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1",
  "startLocation": "POINT(108.95 34.27)"
}' --json
```

#### logistics-total — 物流总路线
```bash
gogeo-cli common-task resource logistics-total --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1"
}' --json
```

#### area-planning — 配送区域规划
```bash
gogeo-cli common-task resource area-planning --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1"
}' --json
```

#### service-day-week — 服务日周
```bash
gogeo-cli common-task resource service-day-week --data '{
  "divideType": "BALANCE",
  "balanceValue": 15.0,
  "group1": "salesCode"
}' --json
```

#### service-route — 服务路线
```bash
gogeo-cli common-task resource service-route --data '{
  "customerData": [{"code": "c1", "point": "POINT(108.95 34.27)", "salesCode": "S1"}],
  "salesData": [{"code": "S1", "depotLocation": "POINT(108.95 34.27)"}]
}' --json
```

#### vehicle-sales — 车辆销售
```bash
gogeo-cli common-task resource vehicle-sales --data '{
  "customerData": {"data": [{"code": "c1", "point": "POINT(108.95 34.27)"}]},
  "salesData": {"data": [{"code": "S1", "depotLocation": "POINT(108.95 34.27)"}]}
}' --json
```

#### navigation-route — 导航路线 V1
```bash
gogeo-cli common-task resource navigation-route --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "group1": "G1"}],
  "group1": "group1"
}' --json
```

#### visit-planning — 拜访规划
```bash
gogeo-cli common-task resource visit-planning --data '{
  "customerData": [{"code": "c1", "point": "POINT(108.95 34.27)", "salesCode": "S1"}],
  "salesData": [{"code": "S1"}]
}' --json
```

---

### base (async)

#### point-square — 点生成方形
```bash
gogeo-cli common-task base point-square --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "radius": 500
}' --json
```

#### point-hexagon — 点生成六边形
```bash
gogeo-cli common-task base point-hexagon --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "radius": 1000
}' --json
```

#### point-circle — 点生成圆形
```bash
gogeo-cli common-task base point-circle --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "radius": 1000
}' --json
```

#### fence-extract — 围栏坐标提取
```bash
gogeo-cli common-task base fence-extract --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### line-extract — 线坐标提取
```bash
gogeo-cli common-task base line-extract --data '{
  "lineData": [{"code": "l1", "line": "LINESTRING(...)"}]
}' --json
```

#### coord-convert — 点坐标转换
```bash
gogeo-cli common-task base coord-convert --data '{
  "point": [{"code": "p1", "lng": 108.95, "lat": 34.27}],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### line-coord-convert — 线坐标转换
```bash
gogeo-cli common-task base line-coord-convert --data '{
  "line": [{"code": "l1", "line": "LINESTRING(...)"}],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### fence-coord-convert — 围栏坐标转换
```bash
gogeo-cli common-task base fence-coord-convert --data '{
  "fence": [{"code": "f1", "fence": "POLYGON((...))"}],
  "sourceType": "GCJ02",
  "targetType": "WGS84"
}' --json
```

#### line-thin — 线抽稀
```bash
gogeo-cli common-task base line-thin --data '{
  "lineData": [{"code": "l1", "line": "LINESTRING(...)"}]
}' --json
```

#### fence-thin — 围栏抽稀
```bash
gogeo-cli common-task base fence-thin --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### track-generate — 轨迹生成
```bash
gogeo-cli common-task base track-generate --data '{
  "pointData": [
    {"code": "p1", "point": "POINT(108.95 34.27)"},
    {"code": "p2", "point": "POINT(108.96 34.28)"}
  ]
}' --json
```

#### point-rarefy — 点抽稀
```bash
gogeo-cli common-task base point-rarefy --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)"}],
  "dilutionLevel": 3
}' --json
```

#### fence-boundary — 多边形提取线
```bash
gogeo-cli common-task base fence-boundary --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

---

### thirdparty (async)

#### retailer-access — 零售商接入
```bash
gogeo-cli common-task thirdparty retailer-access --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "name": "门店"}]
}' --json
```

#### retailer-scoring — 零售商评分
```bash
gogeo-cli common-task thirdparty retailer-scoring --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "name": "门店"}]
}' --json
```

#### capacity-estimation — 容量估算
```bash
gogeo-cli common-task thirdparty capacity-estimation --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### spacing-recommend — 间距推荐
```bash
gogeo-cli common-task thirdparty spacing-recommend --data '{
  "fenceData": [{"code": "f1", "fence": "POLYGON((...))"}]
}' --json
```

#### tx-poi-match-v2 — 腾讯POI V2
```bash
gogeo-cli common-task thirdparty tx-poi-match-v2 --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "address": "西安市"}],
  "txData": {"province": "陕西", "city": "西安"}
}' --json
```

#### odm-gd-match — 高德POI匹配
```bash
gogeo-cli common-task thirdparty odm-gd-match --data '{
  "pointData": [{"code": "p1", "point": "POINT(108.95 34.27)", "name": "钟楼"}]
}' --json
```

---

## Async vs Realtime

- **Async** (`gogeo-cli common-task data`, `common-task spatial`, etc.) — 创建后台任务，返回 task code，用 `common-task data batch-status` 查询
- **Realtime** (`gogeo-cli common-task realtime spatial`, `common-task realtime base`, etc.) — 立即返回结果

## REPL

```bash
gogeo-cli common-task repl
> connect http://10.1.2.105:9000/common-task --token YOUR_TOKEN
> api POST /api/v3/task/api/realtime/baseService/realtime_point_generate_circle '{"pointData":[{"code":"p1","point":"POINT(108.95 34.27)"}],"radius":1000}'
> json on
```
