0

我在这里将地图升级到 3.1 版,尝试绘制一个可拖动的多边形。我已经替换了一些方法,现在正在用 H.geo.lineString() 替换 H.geo.strip()。但是,当我尝试像这样将第一个点插入线串时 -

_this.growingStrip = new H.geo.LineString();
_this.growingStrip.pushPoint(_this.map.screenToGeo(e.currentPointer.viewportX, e.currentPointer.viewportY));

这是 _this.growthStrip 中推送的内容 -

{
"X":[]
,"a":0
}

但是当我使用 H.geo.strip() 时它是不同的 -

_this.growingStrip = new H.geo.Strip();
_this.growingStrip.pushPoint(_this.map.screenToGeo(e.currentPointer.viewportX, e.currentPointer.viewportY));

这是推动以下对象 -

{"a":null,"b":[63.628684238260696,55.35862348973751,0,53.22838240102656,70.12424848973751,0],"c":0}

我真的很努力地试图绕过它,但没有运气。任何帮助表示赞赏。TIA

4

1 回答 1

0

我尝试使用与您类似的代码,一切正常。每次单击后,点都会正确推送到 LineString:

var growingStrip = new H.geo.LineString();

map.addEventListener('tap', (e) => {
  let cp = e.currentPointer;
  growingStrip.pushPoint(map.screenToGeo(cp.viewportX, cp.viewportY));
  console.log(growingStrip.getLatLngAltArray());
})

// after first click -> (3) [36.11458078918906, 8.356475830078125, 0]
// after second click -> (6) [36.11458078918906, 8.356475830078125, 0, -6.58685279251426, 0.1263427734375, 0]
// ...
于 2021-02-03T22:55:24.067 回答