使用 DistanceMatrixService.GetDistanceMatrix,获取“B”为空或不是对象
Using the DistanceMatrixService.GetDistanceMatrix, getting 'B' is null or not an object
<script type=text/javascript src=https://maps.googleapis.com/maps/api/js? sensor=false></script>
<script language=JavaScript>
var mileageidx = new Number();
function getMileage(idx)
{
// code snipped
mileageidx = idx;
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({ origins: [zipCode], destinations: [hostClubZipCode], travelMode: google.maps.TravelMode.DRIVING, unitSystem: google.maps.UnitSystem.IMPERIAL, avoidHighways: false, avoidTolls: false}, callback());
// code snipped
}
function callback(response, status)
{
alert('in callback routine, mileageidx ='+mileageidx+' google status = '+status);
if (status == google.maps.DistanceMatrixStatus.OK)
{
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
for (var i = 0; i < origins.length; i++)
{
var results = response.rows[i].elements;'n";
for (var j = 0; j < results.length; j++)'n";
{
var element = results[j];
var distance = element.distance.text;
alert('distance='+distance);
var duration = element.duration.text;
var from = origins[i];
var to = destinations[j];
}
}
}
else
{
if (status == google.maps.DistanceMatrixStatus.INVALID_REQUEST)
{
alert('google.maps.DistanceMatrixStatus was INVALID_REQUEST');
}
if (status == google.maps.DistanceMatrixStatus.MAX_ELEMENTS_EXCEEDED)
{
alert('google.maps.DistanceMatrixStatus was MAX_ELEMENTS_EXCEEDED');
}
if (status == google.maps.DistanceMatrixStatus.OVER_QUERY_LIMIT)
{
alert('google.maps.DistanceMatrixStatus was OVER_QUERY_LIMIT ');
}
if (status == google.maps.DistanceMatrixStatus.REQUEST_DENIED)
{
alert('google.maps.DistanceMatrixStatus was REQUEST_DENIED');
}
if (status == google.maps.DistanceMatrixStatus.UNKNOWN_ERROR)
{
alert('google.maps.DistanceMatrixStatus was UNKNOWN_ERROR');
}
}
}
当代码被执行时,我得到消息"b"为空或不是对象DistanceMatrixService.getDistanceMatrix Line 1代码:0 字符:1网址: https://maps.googleapis.com/maps/api/js/DistanceMatrixService.GetDistanceMatrix?1m1&2s80...
这段代码工作了两次,然后开始给出这个错误。
发现问题,如果在同一范围内(例如相同的例程),代码的两个部分似乎存在冲突。
当我将 api 移动到它自己的例程中时,一切都开始工作。冲突/导致错误的代码是:
xmlhttp.open('"GET'",getClubURL,false);
xmlhttp.send();
textToParse = xmlhttp.responseText;
function calculateDistances(start,end)
{
//alert('Made it to calculateDistances');
var service = new google.maps.DistanceMatrixService();
alert('In calculateDistances, start is '+start+', end is '+end);
service.getDistanceMatrix(
{
origins: [start],
destinations: [end],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
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;
document.getElementById("mileage[mileageidx]").value =
response.destinationAddresses;
for (var i = 0; i < origins.length; i++)
{
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++)
{
var tmpTxt = new String(results[j].distance.text);
eos = tmpTxt.indexOf(' ');
alert('eos = '+eos);
tmpTxt = tmpTxt.substr(0,eos);
alert('tmpTxt is '+tmpTxt);
var miles = new Number(tmpTxt);
miles = Math.round(miles);
document.getElementById('"mileage['"+mileageidx+'"]'").value=miles;
}
}
}
} // End of callback routine
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- Chrome开发工具(如何知道我在调用哪个javascript对象)