0

ポリラインを道路にスナップする必要がありますが、Google から非常にうまく機能する例を見つけました。少し調整すると、JavaScript から NetworkError が返され、応答ヘッダーに "Access-Control-Allow-Origin" ヘッダーがないことが示されます。responseTextXHR からを調べると、標準の Google 404 ページが表示されます

クロスオリジン リクエストが許可されていない場合、Roads API をどのように使用すればよいですか?

コード:

getSnappedPoints: function (path) { //path is an array of latlng
    var xhr = new XMLHttpRequest();
    var snappedCoords = new Array();
    var pathValues = new Array();
    for (var i = 0; i < path.getLength(); i++)
        pathValues.push(path.getAt(i).toUrlValue());

    console.log(pathValues.join("|"));
    xhr.open("GET", "https://roads.googleapis.com/v1/snapToRoads?interpolate=true&path=" + pathValues.join("|") + "&key=MY_API_KEY", false);
    xhr.send();
    for (var i = 0; i < JSON.parse(xhr.responseText).snappedPoints.length; i++)
        snappedCoords.push(new google.maps.LatLng(JSON.parse(xhr.responseText).snappedPoints[i].location.latitude, JSON.parse(xhr.responseText).snappedPoints[i].location.longitude));
    return snappedCoords;
}

(「MY_API_KEY」は、自分のクォータをだれにも使用されたくないので、そこにあるだけです。ブラウザ キーに置き換えました。)

4

1 に答える 1