【问题标题】:Polygon array.filter() typeErrorPolygon array.filter() typeError
【发布时间】:2017-12-13 08:18:51
【问题描述】:

我有一个名为coordinate 的数组,它存储多边形的纬度和经度。我想获取存储在这个数组中的最大和最小纬度/经度。

我的逻辑是使用array.filter() 方法来过滤值,但我的控制台一直在说

coordinate.filter 不是函数

// this is to get coordinate(lat and lng) of a map, lats and lng are being stored in array named coordinate

var coordinate = [];

for (var i = 0; i < polygon.getPath().getLength(); i++) {
    coordinate  += polygon.getPath().getAt(i).toUrlValue(6) + ",";
}

var results =coordinate.filter(function(value) {
    return(value< 0);
}
);

alert(coordinate);
})

【问题讨论】:

  • 在问题中添加您的代码。
  • 我认为你应该使用coordinate.push(polygon.getPath().getAt(i).toUrlValue(6)) 而不是coordinate += polygon.getPath().getAt(i).toUrlValue(6) + ",";
  • 如何从数组坐标中获取最小纬度/经度和最大纬度/经度?谢谢你的帮助。
  • coordinate 是一个字符串,而不是一个数组。字符串没有filter 方法
  • 我认为我将坐标定义为一个数组,参见上面的代码:(

标签: javascript arrays google-maps polygon


【解决方案1】:

您需要确保您的坐标是一个数组。查看您的 cmets,您想在坐标数组中找到最小值和最大值,可以通过以下方式完成:

if(Array.isArray(coordinate)){
 let min = coordinate.reduce((a,b) => Math.min(a,b));
 let max = coordinate.reduce((a,b) => Math.max(a,b)); 
}

【讨论】:

  • 我试图提醒这些值,它说的是 NaN :/... 如果我使用 coordinate.filter() 怎么办?谢谢你的帮助:)
  • 您能否记录数组并显示它以什么格式出现并在问题上进行编辑。我的意思是坐标数组。也可以使用过滤器,具体取决于它是什么类型的数组。通常对于计算减少更好。
  • 嘿,我测试过它有效,但我想分别获得最大/最小纬度和最大/最小 lng 知道我该怎么做吗?
  • 哈哈哈我修剪了字符串,然后将字符串转换为浮点数:'D 谢谢老兄!!你是最棒的
猜你喜欢
  • 1970-01-01
  • 2017-10-19
  • 2022-01-08
  • 2016-10-26
  • 2020-02-05
  • 1970-01-01
  • 2013-06-25
  • 2017-12-11
  • 2013-12-25
相关资源
最近更新 更多