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