getJSON Google Distance Matrix API - 语法错误

Har*_*rry 6 jquery getjson google-maps-api-3 coffeescript

我正在使用CoffeeScript来执行getJSON请求:

$.getJSON(
    "http://maps.googleapis.com/maps/api/distancematrix/json?callback=?"
    origins: origin
    destinations: destinations
    sensor: false
    success: (data) -> 
        console.log data
   error: (data) ->
        console.log data
  'json'
)
Run Code Online (Sandbox Code Playgroud)

网址是:

http://maps.googleapis.com/maps/api/distancematrix/json?callback=?&origins=-25.8350643,28.1636066&destinations=-25.551836,%2028.423075|-25.218503,%2027.923075|&sensor=false
Run Code Online (Sandbox Code Playgroud)

如果你把它放在你的浏览器中,它将返回JSON,但是ajax请求告诉我:

Uncaught SyntaxError: Unexpected token: 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Onu*_*rım 6

该端点不支持(JSONP)回调.
你应该采用谷歌的方式:

    var distanceService = new google.maps.DistanceMatrixService();
    distanceService.getDistanceMatrix({
        origins: ['Istanbul, Turkey'],
        destinations: ['Ankara, Turkey'],
        travelMode: google.maps.TravelMode.DRIVING,
        unitSystem: google.maps.UnitSystem.METRIC,
        durationInTraffic: true,
        avoidHighways: false,
        avoidTolls: false
    },
    function (response, status) {
        if (status !== google.maps.DistanceMatrixStatus.OK) {
            console.log('Error:', status);
        } else {
            console.log(response);
        }
    });
Run Code Online (Sandbox Code Playgroud)

这里的文档.


bar*_*ter 2

您永远不应该直接从客户端代码调用 Google 地图网络服务*。不支持简单的 JSONP(即带有“回调”的 json)。

您需要使用距离矩阵服务作为 Google Maps Javascript API 的一部分 https://developers.google.com/maps/documentation/javascript/services#distance_matrix

  • Web 服务用于访问 Javascript API 无法运行的 API(即服务器中)。