Получение InvalidArgumentError в HERE Maps API для обновления Javascript 3.1

При обновлении HERE Maps API для Javascript до версии 3.1 в этом я рисую многоугольник, соединяя полилинии, которые я заменил H.geo.Strip на H.geo.LineString

var point = _this.map.screenToGeo(e.currentPointer.viewportX, e.currentPointer.viewportY);

var strip = new H.geo.LineString(_this.growingStrip.getLatLngAltArray().concat(point.lat, point.lng, point.alt));
_this.growingShape.setGeometry(strip);

Также заменил setStrip на setGeometry, но получил ошибку:

Uncaught InvalidArgumentError: H.map.Polygon#setGeometry (Аргумент № 0 LINESTRING (-74.58221773042507 40.50631688766448,-74.5725439612637 40.50650019704824,-74.60575039389.5093))


person mona0295    schedule 15.02.2021    source источник
comment
Я думаю, вы имеете в виду HERE Maps API для Javascript 3.1. Если это так, ознакомьтесь с руководством по миграции, возможно, там есть что-то полезное для вас developer.here.com/documentation/maps/3.1.20.0/dev_guide/topics/   -  person psxls    schedule 16.02.2021
comment
@psxls Я имею в виду то же самое   -  person mona0295    schedule 16.02.2021


Ответы (1)


Согласно документации. , функция H.map.Polygon.setGeometry требует H.geo.Polygon | H.geo.MultiPolygon, поэтому вам необходимо создать H.geo.Polygon, который будет обновлен и затем использован в качестве геометрии для карты Polygon:

var growingLineString = new H.geo.LineString([0, 0, 0, 10, 10, 0, 10, 0, 0]),
    growingPolygon = new H.geo.Polygon(growingLineString),
    growingShape = new H.map.Polygon(growingPolygon);

map.getViewModel().setLookAtData({
  center:{lat: 0, lng:0}, 
  zoom: 5
});
map.addObject(growingShape);

map.addEventListener('tap', (e) => {
  var p = e.currentPointer,
      point = map.screenToGeo(p.viewportX, p.viewportY);

  growingLineString.pushPoint(point);
  growingPolygon.setExterior(growingLineString);

  growingShape.setGeometry(growingPolygon);
})

Примечание: вы можете использовать функцию H.geo.LineString.pushPoint вместо Array.concat.

person Tomas    schedule 17.02.2021