H.geo.LineString не ведет себя как h.geo.strip

#javascript #here-api #heremaps

#javascript #здесь-api #heremaps

Вопрос:

Я обновляю здесь карты до версии 3.1, пытаясь нарисовать перетаскиваемый полигон. Я заменил несколько методов и теперь работаю над заменой H.geo.strip() на H.geo.LineString() . Однако, когда я пытаюсь вставить 1-ю точку в строку строки следующим образом —

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

Вот что помещается в _this.growingStrip —

 {
"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

Ответ №1:

Я пробовал с кодом, похожим на ваш, и все работает нормально. Точки правильно помещаются в строку после каждого щелчка:

 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]
// ...