【问题标题】:google distance matrix on localhost本地主机上的谷歌距离矩阵
【发布时间】:2016-12-06 07:55:33
【问题描述】:

我正在尝试使用谷歌距离矩阵来找出从一个来源到一个目的地的距离和时间。

我正在调用函数

$('#postCode').change(function () {
    var address = "sydney";
    var source = "melbourne"
    var url = "https://maps.googleapis.com/maps/api/distancematrix/js?units=imperial&origins=" + address + "&destinations=" + source + "&key=MYKEY_HERE";
    $.get(url, function (data) {
        window.alert(data);
    });
});

我只需要获取返回的任何数据,但问题是每当我加载具有链接的页面时

<script src="https://maps.google.com/maps/api/js?sensor=false?key=MYKEY_HERE"></script>

或触发更改邮政编码字段,它会在控制台中显示以下2个错误

  • Google 地图 API 错误:MissingKeyMapError

  • 请求中没有“Access-Control-Allow-Origin”标头
    资源。因此不允许使用原点“http://localhost:60197”
    访问。

还有两个警告

util.js:210 Google Maps API 警告:NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys

util.js:210 Google Maps API 警告:SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required

哪里做错了,或者实现所需输出的正确方法是什么(两点之间的距离和时间)。

【问题讨论】:

    标签: javascript google-maps google-distancematrix-api


    【解决方案1】:

    不要在客户端使用来自 javascript 的 DistanceMatrix web service,使用 Google Maps Javascript API v3 DistanceMatrix Service。

    $('#postCode').change(function () {
        var address = "sydney";
        var source = "melbourne"
    var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix(
      {
        origins: [address],
        destinations: [source],
        travelMode: 'DRIVING',
        unitSystem: google.maps.UnitSystem.IMPERIAL,
      }, callback);
    
    function callback(response, status) {
      // See Parsing the Results for
      // the basics of a callback function.
    }
    

    });

    【讨论】:

    • 那么我应该把 api 密钥放在哪里呢?
    • 在Google Maps Javascript API v3 include 中表明你已经在做。
    • 仍然有两个错误和两个警告警告:没有 api 密钥警告:不需要传感器错误:缺少键盘映射错误:此服务需要 api 密钥
    • 听起来像 1. 您没有包含您的 API 密钥和 2. 您在包含中包含(不再需要)传感器参数。您的问题中没有包含足够的信息,请提供一个 minimal reproducible example 来表明您的问题
    • 好的,我明白了,你说得对,我使用的是传感器参数。删除它解决了这个问题。现在它提出了 Api 未激活地图错误。我已经重新生成了密钥,但可以使用。
    猜你喜欢
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    相关资源
    最近更新 更多