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

咨询:如何将经纬度(Lat Long)转换为加拿大正向分拣区(FSA)

经纬度转加拿大正向分拣区(FSA)的实现方法

Python 实现

核心思路是利用空间边界数据完成点与多边形的归属匹配,步骤如下:

  1. 获取加拿大FSA边界数据:从加拿大统计局官网下载FSA级别的shapefile(对应普查数据里的Forward Sortation Areas图层)。
  2. 用geopandas处理空间数据:
    • 加载FSA边界的shapefile为GeoDataFrame
    • 将经纬度数据转换为带地理坐标系的点要素
    • 通过空间连接判断每个点所属的FSA

示例代码:

import geopandas as gpd
from shapely.geometry import Point

# 加载FSA边界数据,转换为WGS84坐标系(适配经纬度)
fsa_gdf = gpd.read_file("path/to/your/fsa_shapefile.shp").to_crs(epsg=4326)

# 处理自定义经纬度数据
lat_lon_data = [
    {"latitude": 43.6532, "longitude": -79.3832},  # 多伦多市中心
    {"latitude": 45.5017, "longitude": -73.5673}   # 蒙特利尔市中心
]
# 转换为带地理信息的GeoDataFrame
points_gdf = gpd.GeoDataFrame(
    lat_lon_data,
    geometry=[Point(xy["longitude"], xy["latitude"]) for xy in lat_lon_data],
    crs="EPSG:4326"
)

# 空间连接,匹配点所属的FSA
result = gpd.sjoin(points_gdf, fsa_gdf, how="left", predicate="within")
# 提取目标字段(CFSAUID为FSA编码字段,需根据实际shapefile调整)
final_result = result[["latitude", "longitude", "CFSAUID"]]
print(final_result)

Tableau 实现

Tableau通过空间匹配完成转换,步骤如下:

  1. 导入FSA边界shapefile:点击「数据」>「新建数据源」,选择下载好的FSA边界文件。
  2. 导入经纬度数据集:确保数据包含纬度和经度字段,将这两个字段的地理角色设置为「纬度」和「经度」,Tableau会自动识别为点要素。
  3. 建立空间连接:
    • 在数据窗口中,依次拖入FSA数据集和经纬度数据集。
    • 选择「空间连接」,匹配条件设置为「点位于多边形内」。
  4. 提取FSA信息:连接完成后,即可在视图中获取每个经纬度对应的FSA编码、名称等字段。

注意:两个数据集需统一坐标系,默认使用WGS84即可,若匹配异常可在「地图」>「地图层」>「坐标系」中调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:04