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

使用AWS Location计算路径时报AWS.Location is not a constructor错误求助

问题原因
  • 你使用的AWS JavaScript SDK版本不符合要求:AWS Location Service 对v2版本SDK的最低支持版本为2.829.0,低于该版本的SDK未内置Location模块,无法识别对应的构造函数。
  • 若你使用的是AWS JavaScript SDK v3版本,该版本采用模块化导入设计,不再支持全局AWS对象下直接调用new AWS.Location()的写法,需要单独导入Location相关模块才能使用。
解决方法

方案1:继续使用AWS JavaScript SDK v2

  1. 升级SDK到符合要求的版本
    • npm安装场景执行命令:npm install aws-sdk@latest --save
    • CDN引入场景替换为高于2.829.0的版本资源链接即可
  2. 升级完成后原有业务代码无需修改即可正常调用,但需注意补充缺失的必填参数:调用calculateRoute接口必须传入CalculatorName参数,值为你提前在AWS Location Service控制台创建的路径计算器的名称。

方案2:使用AWS JavaScript SDK v3

  1. 首先安装对应依赖模块:npm install @aws-sdk/client-location @aws-sdk/credential-provider-cognito-identity @aws-sdk/client-cognito-identity --save
  2. 调整代码写法为v3的模块化调用方式,示例代码如下:
import { LocationClient, CalculateRouteCommand } from "@aws-sdk/client-location";
import { CognitoIdentityCredentials } from "@aws-sdk/credential-provider-cognito-identity";
import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";

async function ruteador() {
  const credentials = new CognitoIdentityCredentials(
    { IdentityPoolId: identityPoolId },
    new CognitoIdentityClient({ region: "你的AWS区域" })
  );

  const locationClient = new LocationClient({
    region: "你的AWS区域",
    credentials: credentials
  });

  const params = {
    DeparturePosition: [-122.7565,49.0021],
    DestinationPosition: [-122.3394, 47.6159],
    DistanceUnit: "Miles",
    CalculatorName: "你的路径计算器名称"
  };

  try {
    const data = await locationClient.send(new CalculateRouteCommand(params));
    console.log(data);
  } catch (err) {
    console.log(err, err.stack);
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:48:00