You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建控制台输出为仅含圆括号的POLYGON格式的Javascript对象

复现方法及原理说明

你遇到的是自定义了toString()方法的JavaScript对象,Firefox控制台打印这类对象时会优先展示toString()的返回值,而非默认的花括号键值对结构,你可以通过以下两种方式复现:

方式1:自定义几何类实现

// 定义多边形类
class Polygon {
  constructor(pointList) {
    this.points = pointList;
  }
  // 重写toString方法,返回WKT格式的多边形文本
  toString() {
    const pointStr = this.points.map(point => `${point[0]} ${point[1]}`).join(',');
    return `POLYGON ((${pointStr}))`;
  }
}

// 实例化测试
const targetPolygon = new Polygon([
  [138.5007, -34.82787],
  [138.51838, -34.82787],
  [138.51838, -35.01713],
  [138.5007, -35.01713],
  [138.5007, -34.82787]
]);

console.log(targetPolygon);
// Firefox控制台输出:POLYGON ((138.5007 -34.82787,138.51838 -34.82787,138.51838 -35.01713,138.5007 -35.01713,138.5007 -34.82787))
console.log(typeof targetPolygon); // 输出 object

方式2:普通对象挂载自定义toString方法

const polygonObj = {
  coordinates: [[138.5007, -34.82787],[138.51838, -34.82787],[138.51838, -35.01713],[138.5007, -35.01713],[138.5007, -34.82787]],
  toString() {
    return `POLYGON ((${this.coordinates.map(p => p.join(' ')).join(',')}))`;
  }
}

console.log(polygonObj); // 打印效果和你遇到的完全一致
console.log(typeof polygonObj); // 输出 object

补充说明

你看到的POLYGON(...)格式是地理空间领域通用的WKT(Well-Known Text)几何描述格式,常用的GIS类库生成的几何对象默认都会重写toString方法输出这类格式的字符串。

内容的提问来源于stack exchange,提问作者Finest Sites

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:45:02