Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps API v3 travelMode作为变量_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript Google Maps API v3 travelMode作为变量

Javascript Google Maps API v3 travelMode作为变量,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在尝试将HTML表单中的值(这些值来自单选按钮输入)传递到我的GoogleMapsAPI脚本。我可以对travelMode进行console.log操作,它看起来是正确的,应该可以正常工作,但我一直收到这样的错误:“Uncaught InvalidValueError:in property travelMode:google.maps.travelMode.DRIVING”。如果我取出变量并直接输入驱动模式,它工作正常 有什么好处?以下是我的代码,如果需要,我可以提供更多: // Get

我正在尝试将HTML表单中的值(这些值来自单选按钮输入)传递到我的GoogleMapsAPI脚本。我可以对travelMode进行console.log操作,它看起来是正确的,应该可以正常工作,但我一直收到这样的错误:“Uncaught InvalidValueError:in property travelMode:google.maps.travelMode.DRIVING”。如果我取出变量并直接输入驱动模式,它工作正常

有什么好处?以下是我的代码,如果需要,我可以提供更多:

// Get the travel method
  if (document.getElementById('bicycle').checked) {
    var method = "google.maps.TravelMode.BICYCLING";
  } else if (document.getElementById('motorcycle').checked) {
    var method = "google.maps.TravelMode.DRIVING";
  } else {
    var method = "google.maps.TravelMode.DRIVING";
  };

  console.log(method);

  var request = {
      origin: start,
      destination: end,
      travelMode: method,
  };
试着这样做:

var method = 'DRIVING';

var request = {
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode[method]
};
删除引号

  if (document.getElementById('bicycle').checked) {
    var method = google.maps.TravelMode.BICYCLING;
  } else if (document.getElementById('motorcycle').checked) {
    var method = google.maps.TravelMode.DRIVING;
  } else {
    var method = google.maps.TravelMode.DRIVING;
  };

这也是可行的,我学到了一些新的东西,我没有意识到你可以用这种格式向请求传递变量。非常感谢。依我看,这比你接受的答案更“干净”,但嘿,这取决于你;-)因为我仍将使用脚本来区分用户选择的方法,所以我认为将整个传输模式传递给请求会更有效。但是,我仍在学习并尝试更好地使用JavaScript,哪种方法是最佳实践?