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

使用Fusion Tables获取多边形边界并保存到变量的方法咨询

解决Fusion Tables点击多边形获取几何边界的问题

在Fusion Tables的点击事件中,几何列的信息并不存储在e.row对象里——这就是你遇到TypeError: e.row.geometry is undefined的核心原因。e.row仅负责承载表格里的非空间属性列数据,而空间几何数据需要通过事件对象的e.feature属性来获取。

正确的实现代码

你可以通过e.feature.getGeometry()方法直接拿到点击多边形的几何对象,还能根据需求将其转换为常用的空间数据格式(比如GeoJSON、WKT):

// 给FusionTablesLayer绑定点击事件监听
layer.addListener('click', function(e) {
  // 获取非空间属性(你原来的写法没问题)
  var vname = e.row['l_name'].value;
  
  // 获取点击多边形的几何边界对象
  var polygonGeom = e.feature.getGeometry();
  
  // 可选:转换为GeoJSON格式
  var geoJsonData = polygonGeom.toGeoJson();
  
  // 可选:转换为WKT格式
  var wktData = polygonGeom.toWkt();
  
  // 后续可以用这些变量做存储或其他处理
  console.log('当前多边形的GeoJSON:', geoJsonData);
});

补充说明

Fusion Tables的事件对象做了明确的职责划分:e.row专门读取表格的普通属性列,而空间几何属于矢量要素的核心属性,因此被归类在e.feature对象下,需要借助Google Maps Geometry类的内置方法来访问和格式转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:51:34