Javascript google maps API指向结果,位置对象不返回lat或lng

时间:2015-07-07 10:48:33

标签: javascript google-maps google-maps-api-3

我知道一个不起眼的标题,我的问题是尝试从方向服务返回对象中的步骤的开始和结束位置拉出lat和lng信息。

示例代码,来自路线请求的回调:

directionsService.route(request, function (response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    for (var routeItr = 0; routeItr < response.routes.length; routeItr++) {    // each route in the response
        for (var legItr = 0; legItr < response.routes[routeItr].legs.length; legItr++) {   // each leg in the route
            for (var stepItr = 0; stepItr < response.routes[routeItr].legs[legItr].steps.length; stepItr++) {      // each step in the leg
                alert(response.routes[routeItr].legs[legItr].steps[stepItr].start_location.lat);
            }
        }
    }
  }
})

你会认为那里的警报会返回转号,而是显示:

enter image description here

这是一个问题吗?我不明白这个方向响应对象是如何工作的?或浏览器的问题?或谷歌代码中的错误?

1 个答案:

答案 0 :(得分:1)

google.maps.LatLng没有.lat属性。它有一个返回纬度的.lat()方法。

directionsService.route(request, function (response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    for (var routeItr = 0; routeItr < response.routes.length; routeItr++) {    // each route in the response
        for (var legItr = 0; legItr < response.routes[routeItr].legs.length; legItr++) {   // each leg in the route
            for (var stepItr = 0; stepItr < response.routes[routeItr].legs[legItr].steps.length; stepItr++) {      // each step in the leg
                alert(response.routes[routeItr].legs[legItr].steps[stepItr].start_location.lat());
            }
        }
    }
  }
})