* @function Theme.prototype.toiClientFeature * @description 转为 iClient 要素。 * @param {(Array. |Array. |Array. |ThemeFeature|GeoJSONObject|ol.Feature)} features - 待转要素。 * @returns {Array. } 转换后的 iClient 要素。
(features)
| 532 | * @returns {Array.<FeatureVector>} 转换后的 iClient 要素。 |
| 533 | */ |
| 534 | toiClientFeature(features) { |
| 535 | if (!CommonUtil.isArray(features)) { |
| 536 | features = [features]; |
| 537 | } |
| 538 | |
| 539 | let featuresTemp = []; |
| 540 | for (let i = 0; i < features.length; i++) { |
| 541 | |
| 542 | if (features[i] instanceof ThemeFeature) { |
| 543 | // ThemeFeature 类型 |
| 544 | featuresTemp.push(features[i].toFeature()); |
| 545 | continue; |
| 546 | } else if (features[i] instanceof Feature) { |
| 547 | //ol.Feature 数据类型 |
| 548 | //_toFeature 统一处理 ol.Feature 所有 geometry 类型 |
| 549 | featuresTemp.push(this._toFeature(features[i])); |
| 550 | continue; |
| 551 | } else if (features[i] instanceof FeatureVector) { |
| 552 | // 若是 FeatureVector 直接返回 |
| 553 | featuresTemp.push(features[i]); |
| 554 | continue; |
| 555 | } else if (features[i].geometry && features[i].geometry.parts) { |
| 556 | //iServer服务器返回数据格式 |
| 557 | featuresTemp.push(ServerFeature.fromJson(features[i]).toFeature()); |
| 558 | } else if (["FeatureCollection", "Feature", "Geometry"].indexOf(features[i].type) != -1) { |
| 559 | //GeoJSON 规范数据类型 |
| 560 | const format = new GeoJSONFormat(); |
| 561 | featuresTemp = featuresTemp.concat(format.read(features[i])); |
| 562 | } else { |
| 563 | throw new Error(`features[${i}]'s type is not be supported.`); |
| 564 | } |
| 565 | |
| 566 | } |
| 567 | return featuresTemp; |
| 568 | } |
| 569 | |
| 570 | /** |
| 571 | * @function Theme.prototype.toFeature |