MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / toiClientFeature

Method toiClientFeature

src/openlayers/overlay/theme/Theme.js:534–568  ·  view source on GitHub ↗

* @function Theme.prototype.toiClientFeature * @description 转为 iClient 要素。 * @param {(Array. |Array. |Array. |ThemeFeature|GeoJSONObject|ol.Feature)} features - 待转要素。 * @returns {Array. } 转换后的 iClient 要素。

(features)

Source from the content-addressed store, hash-verified

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

Callers 2

toFeatureMethod · 0.95
addFeaturesMethod · 0.45

Calls 6

_toFeatureMethod · 0.95
pushMethod · 0.80
indexOfMethod · 0.80
toFeatureMethod · 0.45
fromJsonMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected