# ESGeoJson（ESGeoJson）

> 分类：**服务图层对象** | 引擎：Cesium/UE | 基类：否
> 继承链：`Destroyable -> ESSceneObject -> ESVisualObject -> ESGeoJson`

ESGeoJson 是用于加载和渲染 GeoJson 矢量数据并支持点、线、面样式配置的对象。

## JSON 示例

```json
{
            "id": "geojson_xxx",
            "type": "ESGeoJson",
            "name": "GeoJson数据",
            "url": ${url}
        }
```

## 属性

| 属性 | 类型 | 默认值 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `allowPicking` | - | true | 控制对象是否允许被拾取的布尔值。 | ESGeoJson |
| `classificationType` | ESJClassificationType | "TERRAIN" | - | ESGeoJson |
| `collision` | boolean | true | 是否开启碰撞监测 默认true ,主要是UE使用 | ESVisualObject |
| `devTags` | string[] \| undefined | undefined | 对象类型名称相关的开发标签数组，使用 reactArrayWithUndefined 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `execOnceFuncStr` | string \| undefined | undefined | 一次性执行函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `extras` | JsonValue | undefined | 扩展属性 JSON，必须整体赋值，使用 reactJson 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `filled` | - | true | 控制面是否显示的布尔值。 | ESGeoJson |
| `flyInParam` | ESJFlyInParam \| undefined | undefined | 飞入参数 | ESVisualObject |
| `flyToParam` | ESJFlyToParam \| undefined | undefined | 飞向参数 | ESVisualObject |
| `ground` | - | false | 面是否贴地的布尔值。 | ESGeoJson |
| `heightReference` | "NONE" \| "RELATIVE_TO_GROUND" \| "CLAMP_TO_GROUND" | "NONE" | 高度参考模式，可选 'NONE'、'RELATIVE_TO_GROUND' 或 'CLAMP_TO_GROUND'。 | ESGeoJson |
| `imageShow` | - | true | 控制图片是否显示的布尔值。 | ESGeoJson |
| `loadFuncStr` | string \| undefined | undefined | 用于加载数据的函数的字符串表示。 | ESGeoJson |
| `maxFeatureVisibleDistance` | - | 0 | 要素可见的最大距离，0表示不限制。 | ESGeoJson |
| `minFeatureVisibleDistance` | - | 0 | 要素可见的最小距离，0表示不限制。 | ESGeoJson |
| `name` | string | "未命名场景对象" | 对象名称，默认为 '未命名场景对象'。 | ESSceneObject |
| `offset` | - | [16, -8] | 文本偏移量，格式为 [x, y]。 | ESGeoJson |
| `ref` | string \| undefined | undefined | 对象引用，设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象，默认为 undefined。 | ESSceneObject |
| `show` | boolean | true | 控制对象是否显示的布尔值。 | ESGeoJson |
| `stroked` | - | true | 控制线条是否显示的布尔值。 | ESGeoJson |
| `textShow` | - | true | 控制文本是否显示的布尔值。 | ESGeoJson |
| `toDestroyFuncStr` | string \| undefined | undefined | 销毁函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `updateFuncStr` | string \| undefined | undefined | 更新函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `url` | - | undefined | 数据来源的 URL，可以是字符串或对象。 | ESGeoJson |
| `zIndex` | - | 0 as number | - | ESGeoJson |

## 方法

| 方法 | 参数 | 返回 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `addToViewer(viewer: ESViewer)` | viewer: ESViewer | - | 将对象添加到指定视口中。<br>**参数**：viewer - 要添加对象的视口。 | ESSceneObject |
| `calcFlyInParam()` | - | - | 触发计算飞入参数事件 | ESVisualObject |
| `calcFlyToParam()` | - | - | 触发计算飞向参数事件 | ESVisualObject |
| `createAttachedObject(createViewerPropSceneObject: (viewer: ESViewer) => Destroyable | undefined)` | createViewerPropSceneObject: (viewer: ESViewer) => Destroyable \| undefined | - | 创建与视口关联的对象，并返回一个销毁函数，用于手动销毁关联对象。<br>**参数**：createViewerPropSceneObject - 一个函数，用于创建与视口关联的对象。<br>**返回**：一个销毁函数，调用该函数可以销毁所有关联对象。 | ESSceneObject |
| `emptyFlyInParam()` | - | - | 清空飞入参数 | ESVisualObject |
| `emptyFlyToParam()` | - | - | 清空飞向参数 | ESVisualObject |
| `flush()` | - | - | 刷新对象，触发刷新事件。 | ESSceneObject |
| `flyIn(duration: number = 1)` | duration: number = 1 | - | 触发飞入事件<br>**参数**：duration - 飞入持续时间，默认为 1 | ESVisualObject |
| `flyTo(duration: number = 1)` | duration: number = 1 | - | 触发飞向事件<br>**参数**：duration - 飞向持续时间，默认为 1 | ESVisualObject |
| `flyToFeature(key: string, value: any, duration?: number)` | key: string, value: any, duration?: number | - | 触发飞行到指定要素的事件<br>**参数**：key - 要素的键；value - 要素的值；duration - 飞行持续时间，可选 | ESGeoJson |
| `flyToFeatureIndex(index: number, duration?: number)` | index: number, duration?: number | - | 触发飞行到指定要素索引的事件<br>**参数**：index - 要素的索引；duration - 飞行持续时间，可选 | ESGeoJson |
| `getBoundSphere(viewer: ESViewer)` | viewer: ESViewer | - | 获取对象的边界球<br>**参数**：viewer - 视图器对象<br>**返回**：包含边界球信息的 Promise | ESVisualObject |
| `getESProperties()` | - | - | 获取 ES 属性配置<br>**返回**：ES 属性配置对象 | ESGeoJson |
| `getFeatures()` | - | - | 获取 GeoJSON 要素数据 如果数据未加载完成，会在控制台输出提示信息<br>**返回**：\| undefined} GeoJSON 要素数据 | ESGeoJson |
| `getFeatureTable()` | - | - | - | ESGeoJson |
| `registerAttachedObject(createViewerPropSceneObject: (viewer: ESViewer) => Destroyable | undefined)` | createViewerPropSceneObject: (viewer: ESViewer) => Destroyable \| undefined | - | 注册与视口关联的对象，当对象被添加到视口或从视口移除时，会自动创建或销毁关联对象。<br>**参数**：createViewerPropSceneObject - 一个函数，用于创建与视口关联的对象。 | ESSceneObject |
| `registerAttachedObjectForContainer(createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => Destroyable | undefined)` | createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => Destroyable \| undefined | - | 注册与视口容器关联的对象，当对象被添加到视口或从视口移除时，会自动创建或销毁关联对象。<br>**参数**：createContainerPropSceneObject - 一个函数，用于创建与视口容器关联的对象。 | ESSceneObject |
| `reload()` | - | - | - | ESSceneObject |
| `removefromViewer(viewer: ESViewer)` | viewer: ESViewer | - | 将对象从指定视口中移除。<br>**参数**：viewer - 要移除对象的视口。 | ESSceneObject |
| `resetFeatureStyle()` | - | - | 重置要素样式的函数 | ESGeoJson |
| `setFeatureStyle(json: ESJGeoJsonFeatureStyleType, append: boolean = false)` | json: ESJGeoJsonFeatureStyleType, append: boolean = false | - | 设置要素样式的函数<br>**参数**：screenObjectId - 要素的屏幕对象 ID；style - 要素的样式 | ESGeoJson |
| `supportEditingModes()` | - | - | 获取当前对象支持的编辑模式<br>**返回**：支持的编辑模式数组 | ESVisualObject |
| `updateEditing()` | - | - | 更新编辑状态的方法，具体实现由子类完成 | ESVisualObject |

## 事件

| 事件 | 说明 | 来源 |
| --- | --- | --- |
| `activeViewerChanged` | - | ESSceneObject |
| `calcFlyInParamEvent` | 获取计算飞入参数事件 | ESVisualObject |
| `calcFlyToParamEvent` | 获取计算飞向参数事件 | ESVisualObject |
| `createdEvent` | 获取对象创建事件。 | ESSceneObject |
| `editingChanged` | 获取编辑状态改变事件 | ESVisualObject |
| `featuresChanged` | 获取要素数据变更事件 | ESGeoJson |
| `fillColorChanged` | 获取填充颜色变更事件 | ESGeoJson |
| `fillGroundChanged` | 获取面贴地状态变更事件 | ESGeoJson |
| `fillMaterialChanged` | 获取填充材质变更事件 | ESGeoJson |
| `fillMaterialParamsChanged` | 获取填充材质参数变更事件 | ESGeoJson |
| `flushEvent` | 获取刷新对象事件。 | ESSceneObject |
| `flyInEvent` | 获取飞入事件 | ESVisualObject |
| `flyOverEvent` | 获取飞行结束事件 | ESVisualObject |
| `flyToDistanceChanged` | 获取飞向距离改变事件 | ESVisualObject |
| `flyToEvent` | 获取飞向事件 | ESVisualObject |
| `flyToFeatureEvent` | 获取飞行到指定要素的事件监听器 | ESGeoJson |
| `flyToFeatureIndexEvent` | 获取飞行到指定要素索引的事件监听器 | ESGeoJson |
| `flyToFlyDurationChanged` | 获取飞向持续时间改变事件 | ESVisualObject |
| `flyToHDeltaChanged` | 获取飞向水平偏移量改变事件 | ESVisualObject |
| `flyToHeadingChanged` | 获取飞向航向改变事件 | ESVisualObject |
| `flyToPDeltaChanged` | 获取飞向垂直偏移量改变事件 | ESVisualObject |
| `flyToPitchChanged` | 获取飞向俯仰角改变事件 | ESVisualObject |
| `imageAnchorChanged` | 获取标注图片锚点变更事件 | ESGeoJson |
| `imageOffsetChanged` | 获取标注图片像素偏移变更事件 | ESGeoJson |
| `imageSizeChanged` | 获取标注图片大小变更事件 | ESGeoJson |
| `imageUrlChanged` | 获取标注图片地址变更事件 | ESGeoJson |
| `pickedEvent` | 获取拾取事件 | ESVisualObject |
| `readyEvent` | - | ESSceneObject |
| `reloadEvent` | - | ESSceneObject |
| `resetFeatureStyleEvent` | 重置要素样式的事件监听器 | ESGeoJson |
| `setFeatureStyleEvent` | 获取设置要素样式的事件监听器 | ESGeoJson |
| `strokeColorChanged` | 获取线颜色变更事件 | ESGeoJson |
| `strokeGroundChanged` | 获取线贴地状态变更事件 | ESGeoJson |
| `strokeMaterialChanged` | 获取线材质变更事件 | ESGeoJson |
| `strokeMaterialParamsChanged` | 获取线材质参数变更事件 | ESGeoJson |
| `strokeWidthChanged` | 获取线宽变更事件 | ESGeoJson |
| `strokeWidthTypeChanged` | 获取线宽类型变更事件 | ESGeoJson |
| `textAnchorChanged` | 获取标注文本锚点变更事件 | ESGeoJson |
| `textBackgroundColorChanged` | 获取标注文本背景颜色变更事件 | ESGeoJson |
| `textColorChanged` | 获取标注文本颜色变更事件 | ESGeoJson |
| `textDefaultTextChanged` | 获取标注默认文本变更事件 | ESGeoJson |
| `textFontFamilyChanged` | 获取标注文本字体变更事件 | ESGeoJson |
| `textFontSizeChanged` | 获取标注文本字体大小变更事件 | ESGeoJson |
| `textFontStyleChanged` | 获取标注文本字体样式变更事件 | ESGeoJson |
| `textFontWeightChanged` | 获取标注文本字体粗细变更事件 | ESGeoJson |
| `textOffsetChanged` | 获取标注文本像素偏移变更事件 | ESGeoJson |
| `textPropertyChanged` | 获取标注文本显示属性变更事件 | ESGeoJson |
| `toDestroyFuncChanged` | 获取销毁函数改变事件。 | ESSceneObject |
| `updateFuncChanged` | 获取更新函数改变事件。 | ESSceneObject |

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。修改对象属性/方法后重跑脚本刷新。
