Google maps 在Google距离矩阵API中选择列表值-Javascript/HTML

Google maps 在Google距离矩阵API中选择列表值-Javascript/HTML,google-maps,google-maps-api-3,google-maps-markers,Google Maps,Google Maps Api 3,Google Maps Markers,我希望距离矩阵接受来自两个不同下拉框的值。当前正在获取“无效请求” 这是两个下拉框 <select id="SelectDriver"> <option value="{lat: 52.6, lng: 1}">DRIVER 1</option> <option value="{lat: 51.3, lng: -1.1}">DRIVER 2</option> <option value="{lat: 53.1, lng:

我希望距离矩阵接受来自两个不同下拉框的值。当前正在获取“无效请求”

这是两个下拉框

 <select id="SelectDriver"> 
 <option value="{lat: 52.6, lng: 1}">DRIVER 1</option>
 <option value="{lat: 51.3, lng: -1.1}">DRIVER 2</option>
 <option value="{lat: 53.1, lng: -1.6}">DRIVER 3</option>
 </select>

 <select id="SelectDriver2"> 
 <option value="{lat: 52.6, lng: 1}">DRIVER 1</option>
 <option value="{lat: 51.3, lng: -1.1}">DRIVER 2</option>
 <option value="{lat: 53.1, lng: -1.6}">DRIVER 3</option>
 </select><br>
如果var源和var目标包含(lat:x,lng:y}硬编码,则距离矩阵可以工作。我更改innerHTML的部分返回的lat长度与预期的一样:{lat:52.6,lng:1}-因此无法解释为什么请求不同,它是完全相同的数据。有人能告诉我为什么这不起作用吗

如果我使用

    var origin1 = {lat: 52.6, lng: 1};
    var origin2 = {lat: 52.6, lng: 1};
    var destinationA = {lat: 51.3, lng: -1.1};
    var destinationB = {lat: 51.3, lng: -1.1};

DistanceMatrix需要匿名对象(objects)作为参数,而不是看起来像匿名对象的字符串(“{lat:52.6,lng:1}”)

如果您使的
选择一个有效的JSON字符串,您可以对其调用
JSON.parse
,以获得一个匿名对象,该对象将使用
距离矩阵

<select id="SelectDriver"> 
 <option value='{"lat": 52.6, "lng": 1}'>DRIVER 1</option>
 <option value='{"lat": 51.3, "lng": -1.1}'>DRIVER 2</option>
 <option value='{"lat": 53.1, "lng": -1.6}'>DRIVER 3</option>
 </select>

<select id="SelectDriver2"> 
 <option value='{"lat": 52.6, "lng": 1}'>DRIVER 1</option>
 <option value='{"lat": 51.3, "lng": -1.1}'>DRIVER 2</option>
 <option value='{"lat": 53.1, "lng": -1.6}'>DRIVER 3</option>
 </select><br>

代码片段:

函数初始化(){
document.getElementById('TestingMatrix').innerHTML=
document.getElementById('SelectDriver')。值;
var origin1=JSON.parse(document.getElementById('SelectDriver').value);
var destinationA=JSON.parse(document.getElementById('SelectDriver2').value);
var service=new google.maps.DistanceMatrixService;
var请求={
起源:[原文1],
目的地:[目的地],
travelMode:‘驾驶’,
unitSystem:google.maps.unitSystem.METRIC,
避免:错误,
避免收费:错误
};
log(JSON.stringify(request));
服务.getDistanceMatrix(请求、功能(响应、状态){
如果(状态!='OK'){
警报(“错误为:”+状态);
}否则{
var originList=response.originAddresses;
var destinationList=response.destinationaddress;
var outputDiv=document.getElementById('output');
outputDiv.innerHTML='';
对于(变量i=0;i';
}
}
}
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

司机1
司机2
司机3
司机1
司机2
司机3


作为答案发布
<select id="SelectDriver"> 
 <option value='{"lat": 52.6, "lng": 1}'>DRIVER 1</option>
 <option value='{"lat": 51.3, "lng": -1.1}'>DRIVER 2</option>
 <option value='{"lat": 53.1, "lng": -1.6}'>DRIVER 3</option>
 </select>

<select id="SelectDriver2"> 
 <option value='{"lat": 52.6, "lng": 1}'>DRIVER 1</option>
 <option value='{"lat": 51.3, "lng": -1.1}'>DRIVER 2</option>
 <option value='{"lat": 53.1, "lng": -1.6}'>DRIVER 3</option>
 </select><br>
var origin1 = JSON.parse(document.getElementById('SelectDriver').value);