1

$resource を使用してファクトリを作成し、Google の距離 API ( https://developers.google.com/maps/documentation/distancematrix/ )から距離情報を取得したいと考えています。

シンプルなサービスを機能させるために、パラメーターを削除しました..

これが私の現在のコードです:

VenuesAppServices.factory('VenueDistance', ['$resource',
function($resource){
    return $resource('http://maps.googleapis.com/maps/api/distancematrix/json', {}, {
        Distance: {method:'GET'}
    });
}]);

そしてそれを呼び出す:

VenueDistance.Distance(function(results){
    alert(JSON.stringify(results));
},function(error){
    alert(JSON.stringify(error));
});

次のものが返されることを期待しています。

{
"destination_addresses" : [],
"error_message" : "The 'sensor' parameter specified in the request must be set to either 'true' or 'false'.",
"origin_addresses" : [],
"rows" : [],
"status" : "REQUEST_DENIED"
}

ただし、404 応答が返されます。

{"data":"","status":404,"config":{"transformRequest":[null],"transformResponse":[null],"method":"GET","url":"http://maps.googleapis.com/maps/api/distancematrix/json","headers":{"Accept":"application/json, text/plain, */*"}}}

Google api を次のように交換した場合 ( http://api.geonames.org/postalCodeLookupJSON )。次に、そのサイトから期待される応答を取得します。

Google の URL がブラウザから取得した結果を返さない理由を誰か教えてもらえますか?

4

2 に答える 2

1

出発地や目的地などのパラメーターを送信していないと思います..

$resource または $http サービス経由で URL を送信する必要があります。

VenuesAppServices.factory('VenueDistance', ['$resource',function($resource){
return $resource('http://google.com/maps/api/distancematrix/json?origins=Bobcaygeon+ON|41.43206,-81.38992&destinations=Darling+Harbour+NSW+Australia|24+Sussex+Drive+Ottawa+ON|Capitola+CA', {}, { Distance: {method:'GET'}});}]);

また

VenuesAppServices.factory('VenueDistance', ['$resource',function($resource){
return $resource('http://google.com/maps/api/distancematrix/json?origins='+ origin +'&destinations='+ destination, {}, { Distance: {method:'GET'}});}]);

Google マップ API ドキュメント

于 2014-09-17T17:01:42.763 に答える