【问题标题】:google maps javascript api does not get me any adress谷歌地图 javascript api 没有给我任何地址
【发布时间】:2016-06-08 15:19:14
【问题描述】:

我正在使用此代码,

function initMap() {
  var directionsService = new google.maps.DirectionsService;
  var directionsDisplay = new google.maps.DirectionsRenderer;
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 6,
    center: {lat: 41.85, lng: -87.65}
  });
  directionsDisplay.setMap(map);

  document.getElementById('submit').addEventListener('click', function() {
    calculateAndDisplayRoute(directionsService, directionsDisplay);
  });
}

function calculateAndDisplayRoute(directionsService, directionsDisplay) {
  var waypts = [];
  var checkboxArray = document.getElementById('waypoints');
  for (var i = 0; i < checkboxArray.length; i++) {
    if (checkboxArray.options[i].selected) {
      waypts.push({
        location: checkboxArray[i].value,
        stopover: true
      });
    }
  }

  directionsService.route({
    origin: document.getElementById('start').value,
    destination: document.getElementById('end').value,
    waypoints: waypts,
    optimizeWaypoints: true,
    travelMode: google.maps.TravelMode.DRIVING
  }, function(response, status) {
    if (status === google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
      var route = response.routes[0];
      var summaryPanel = document.getElementById('directions-panel');
      summaryPanel.innerHTML = '';
      // For each route, display summary information.
      for (var i = 0; i < route.legs.length; i++) {
        var routeSegment = i + 1;
        summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment +
            '</b><br>';
        summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
        summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
        summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
      }
    } else {
      window.alert('Directions request failed due to ' + status);
    }
  });
}

上面的代码工作正常。但是当我更改下面的部分时,它给了我错误代码“由于 zero_results 导致路线请求失败”。因为它在地图中找不到这个坐标 (36.9165612, 34.895210200000065)。但实际上我是得到这个坐标另一个谷歌api。所以这个坐标存在。即使它在谷歌地图中找到地址https://www.google.com.tr/maps/place/36.9165612,+34.895210200000065/data=!4m2!3m1!1s0x0:0x0?sa=X&ved=0ahUKEwiB6OT03JjNAhWLLMAKHZrIApgQ8gEIGjAA

最后,当我将坐标更改为 (41.85, -87.65) 时,它可以正常工作,因为它可以找到地址。更少的坐标是这样工作的。 我想在谷歌地图中找到所有坐标。 我该如何解决这个问题?

var waypts = [];
    var checkboxArray = document.getElementById('waypoints');
    for (var i = 0; i < checkboxArray.length; i++) {
      if (checkboxArray.options[i].selected) {
        waypts.push({
          location:  new google.maps.LatLng(36.9165612, 34.895210200000065),
          stopover: true
        });
      }
    }

【问题讨论】:

  • 哪一行代码显示错误?
  • 这是警告信息,代码的最后一行。从这个 window.alert('Directions request failed due to ' + status);

标签: javascript google-maps google-maps-markers


【解决方案1】:

它可能找不到来自 lat 和 lng 的地址。你得考虑一下。

更多信息herehere

【讨论】:

  • 但是当我把它改成这个“新的 google.maps.LatLng (41.85, -87.65)”时,它可以工作了..?
  • 是的,因为 41.85 会查找从 41.8500000 到 41.8599999 以及 -87.6500000 到 -87.6599999 的路线。因此,如果地址在该范围内,它将找到它。但并非所有坐标都有地址。例如,海中的坐标,不会有地址..
  • 谢谢,我知道了。没有美国开车去欧洲 :).probably 我必须看看像 google.maps.TravelMode.DRIVING 这样的 FLYING 模式:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多