如何解决在 HERE Maps API 中获取 InvalidArgumentError for Javascript 3.1 升级
在将 HERE Maps API for 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
但出现错误:
未捕获的 InvalidArgumentError: H.map.polygon#setGeometry (Argument #0 线串 (-74.58221773042507 40.50631688766448,-74.5725439612637 40.50650019704824,-74.60575039389293 40.50943486497609))
解决方法
根据 documentation,H.map.Polygon.setGeometry
函数需要 H.geo.Polygon | H.geo.MultiPolygon
,因此您需要创建 H.geo.Polygon,它将被更新,然后用作地图多边形的几何体:>
var growingLineString = new H.geo.LineString([0,10,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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。