首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >迭代“未捕获错误:需要坐标”的问题

迭代“未捕获错误:需要坐标”的问题
EN

Stack Overflow用户
提问于 2020-08-24 17:25:31
回答 1查看 144关注 0票数 0

我使用mapbox和turf.js来允许用户在地图上绘制多边形,然后得到周长距离。我能够让它完成我想要的功能,并且我正在接收/显示正确的测量值,但现在我得到了“未捕获的错误:需要坐标”。我想这就是我试图创建一个变量来迭代坐标(var to和var from)的地方,但我还没有找到解决方案来修复它。

代码语言:javascript
运行
复制
function measurements(e) {
  var data = draw.getAll();
  var answer = document.getElementById('calculated-perimeter');
  if (data.features.length > 0) {
    var coordinates = data.features[0].geometry.coordinates[0];
    var calc_distances = []
    var i;
    for (i = 0; i<coordinates.length; i++){
      var from = turf.point(coordinates[i]);
      var to = turf.point(coordinates[i+1]);
      var options = {units: 'kilometers'};
      var distance = turf.distance(from, to ,options);
      calc_distances.push(distance);
      console.log(calc_distances);
      var perimeter = calc_distances.reduce((a, b) => a + b, 0);
      var strg_per = perimeter.toString();
      var strg_per = Math.round(strg_per * 1000)
      answer.innerHTML ='<p><strong>' + strg_per + '</strong></p><p>meters</p>';} 
  } else {
    answer.innerHTML = '';
    if (e.type !== 'draw.delete')
    alert('Use the draw tools to draw a polygon!');
  }
}

-------------------------------

EDIT : here is the full stack trace:

turf.min.js:1 Uncaught Error: coordinates is required
    at Object.r [as point] (turf.min.js:1)
    at r.measurements ((index):173)
    at r.zt.fire (evented.js:119)
    at r.i.fire (setup.js:52)
    at q.Jt.onStop (draw_polygon.js:81)
    at Object.stop (object_to_mode.js:57)
    at Object.stop (mode_handler.js:57)
    at Object.c [as changeMode] (events.js:169)
    at q.changeMode (mode_interface_accessors.js:151)
    at q.Jt.onKeyUp (draw_polygon.js:66)
EN

回答 1

Stack Overflow用户

发布于 2020-08-24 19:58:54

这两行的组合看起来是错误的:

代码语言:javascript
运行
复制
for (i = 0; i<coordinates.length; i++){

...


var to = turf.point(coordinates[i+1]);`

您将调用turf.point(undefined)

可能第一行应该是:

代码语言:javascript
运行
复制
for (i = 0; i<coordinates.length - 1; i++){
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63558194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档