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

Method polygonToTF

src/common/overlay/ThemeVector.js:408–523  ·  view source on GitHub ↗

* @function FeatureThemeVector.prototype.polygonToThemeFeature * @description 转换面要素。 * @param {Geometry} geometry - 用户数据几何地理信息,这里必须是 Polygon。

(geometry)

Source from the content-addressed store, hash-verified

406 * @param {Geometry} geometry - 用户数据几何地理信息,这里必须是 Polygon。
407 */
408 polygonToTF(geometry) {
409 var components = geometry.components;
410
411
412 //节点像素坐标
413 var localLX = [];
414 //参考位置,参考中心为
415 var refLocal = [];
416 var location = this.location;
417 var pointList = [];
418 //岛洞
419 var holePolygonPointList = [];
420 var holePolygonPointLists = [];
421
422 //节点抽稀距离
423 var nCPx = this.nodesClipPixel;
424
425 for (var i = 0; i < components.length; i++) {
426 var components_i = components[i].components;
427
428
429 if (i === 0) {
430 // 第一个 component 正常绘制
431 pointList = [];
432
433 for (var j = 0; j < components_i.length; j++) {
434 refLocal = [];
435 localLX = this.getLocalXY(components_i[j]);
436
437 refLocal[0] = localLX[0] - location[0];
438 refLocal[1] = localLX[1] - location[1];
439
440 //抽稀 - 2 px
441 if (pointList.length > 0) {
442 var lastLocalXY = pointList[pointList.length - 1];
443 if ((Math.abs(lastLocalXY[0] - refLocal[0]) <= nCPx) && (Math.abs(lastLocalXY[1] - refLocal[1]) <= nCPx)) {
444 continue;
445 }
446 }
447
448 //使用参考点
449 pointList.push(refLocal);
450 }
451 } else {
452 // 其它 component 作为岛洞
453 holePolygonPointList = [];
454
455 for (var k = 0; k < components_i.length; k++) {
456 refLocal = [];
457 localLX = this.getLocalXY(components_i[k]);
458
459 refLocal[0] = localLX[0] - location[0];
460 refLocal[1] = localLX[1] - location[1];
461
462 //抽稀 - 2 px
463 if (holePolygonPointList.length > 0) {
464 var lastXY = holePolygonPointList[holePolygonPointList.length - 1];
465 if ((Math.abs(lastXY[0] - refLocal[0]) <= nCPx) && (Math.abs(lastXY[1] - refLocal[1]) <= nCPx)) {

Callers 2

constructorMethod · 0.95
multiPolygonToTFMethod · 0.95

Calls 2

getLocalXYMethod · 0.95
pushMethod · 0.80

Tested by

no test coverage detected