【发布时间】:2014-08-31 13:00:22
【问题描述】:
我正在使用 Google Maps API 来获取两点之间的距离。此方法使用回调函数。问题是这段代码位于 Angular 服务中,我想从控制器调用它,以便控制器可以在范围内输出结果。但我不知道该服务如何将生成的 hospitals[] 对象数组返回给控制器。我怎样才能做到这一点?
myAppServices.service('NearestHospitalService', function(){
function calculateDistances() {
var service = new google.maps.DistanceMatrixService();
var hospitals = [];
service.getDistanceMatrix(
{
origins: [origin1],
destinations: [destinationA, destinationB],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
}
else {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
var results = response.rows[0].elements;
for (var j = 0; j < results.length; j++) {
hospitals.push(new hospital(destinations[j], results[j].distance, results[j].duration));
}
hospitals.sort(compareDistance);
}
}
});
【问题讨论】:
标签: angularjs google-maps-api-3 callback