* @function HeatMap.prototype.toiClientFeature * @description 转为 iClient 要素。 * @param {GeoJSONObject|Array. } features - 待添加的要素数组。 * @returns {FeatureVector} 转换后的 iClient 要素。
(features)
| 421 | * @returns {FeatureVector} 转换后的 iClient 要素。 |
| 422 | */ |
| 423 | toiClientFeature(features) { |
| 424 | if (!Util.isArray(features)) { |
| 425 | features = [features]; |
| 426 | } |
| 427 | let featuresTemp = [], geometry, attributes; |
| 428 | for (let i = 0, len = features.length; i < len; i++) { |
| 429 | if (features[i] instanceof Feature) { |
| 430 | //热点图支支持传入点对象要素 |
| 431 | if (features[i].getGeometry() instanceof Point) { |
| 432 | geometry = new GeometryPoint(features[i].getGeometry().getCoordinates()[0], features[i].getGeometry().getCoordinates()[1]); |
| 433 | //固定属性字段为 "Properties" |
| 434 | attributes = features[i].getProperties()["Properties"] ? features[i].getProperties()["Properties"] : {}; |
| 435 | featuresTemp.push(new FeatureVector(geometry, attributes)); |
| 436 | } |
| 437 | } else if (["FeatureCollection", "Feature", "Geometry"].indexOf(features[i].type) != -1) { |
| 438 | let format = new GeoJSONFormat(); |
| 439 | featuresTemp = featuresTemp.concat(format.read(features[i])); |
| 440 | } else if (features[i].geometry && features[i].geometry.parts) { |
| 441 | //iServer服务器返回数据格式 |
| 442 | featuresTemp.push(ServerFeature.fromJson(features[i]).toFeature()); |
| 443 | } else { |
| 444 | throw new Error(`Features[${i}]'s type does not match, please check.`); |
| 445 | } |
| 446 | } |
| 447 | return featuresTemp; |
| 448 | } |
| 449 | |
| 450 | } |
no test coverage detected