从 Google Maps API V3 获取行程距离和行程时间

问题描述 投票:0回答:2

我正在使用 Google Maps API V3 使用

startPosition
绘制 2 个点
endPosition
google.maps.DirectionService
之间的步行路线。然后应该打印以控制台路线的距离和旅行持续时间。

问题:虽然代码确实成功绘制了路线,但似乎

directionsDisplay.setDirections
缺少回调函数来将距离和行程时间值返回给调用者。

此外,为

directions_changed
添加监听器似乎也不起作用,监听器没有被触发!

有什么想法可以将距离值和行程时间值从

displayRoute()
传递给调用者吗?

displayRoute = function(startPosition, endPosition) {

    var start = startPosition
    var end = endPosition
    var map = GoogleMaps.maps.map.instance

    var directionsDisplay = new google.maps.DirectionsRenderer({'map': map});
    var directionsService = new google.maps.DirectionsService(); 

    var request = {
        origin : start,
        destination : end,
        travelMode : google.maps.TravelMode.WALKING
    };

    directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response)
            // ... and triggers listener for 'directions_changed'
        }
    });

    google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
        console.log('directions_changed')    # not executed
        console.log(response.routes[0])      # not executed
        return response.routes[0]
    });


}



var route = displayRoute(startPos, endPos)
console.log(route.duration.value)    # undefined
console.log(route.distance.value)    # undefined
javascript node.js google-maps
2个回答
1
投票

它是未定义的,因为代码是,距离和持续时间是腿对象的属性。

console.log(response.routes[0].legs[0].duration.value);
console.log(response.routes[0].legs[0].distance.value);


-1
投票

旅行比较网站的工作原理是聚合来自不同旅行服务提供商(例如航空公司、酒店、汽车租赁公司等)的信息。这些网站使用户能够跨多个平台比较价格、可用性和其他相关详细信息,使他们更容易找到最优惠的价格。以下是这些网站如何运作以及如何创建网站的基本概述:

  1. 数据聚合:

API集成:旅游比较网站通常使用旅游服务提供商提供的API(应用程序编程接口)。这些 API 允许比较网站直接从提供商的数据库中提取实时信息。 网页抓取:在某些情况下,网站可能会使用网页抓取技术从其他网站提取信息。然而,这种方法可能会引起道德和法律问题,具体取决于被抓取网站的服务条款。 2. 数据库管理:

信息收集完毕后,将存储在数据库中。这可以是关系数据库,如 MySQL 或 NoSQL 数据库,具体取决于比较站点的规模和要求。 3. 搜索和比较算法:

网站使用算法来搜索和比较数据库中存储的数据。这些算法会考虑价格、位置、日期和用户偏好等各种因素,以提供最相关的结果。 4. 用户界面:

用户友好的界面对于旅游比较网站至关重要。用户可以输入他们的旅行详细信息,网站会显示相关选项,使他们能够做出明智的决定。 5. 预订及改签

direction:

许多比价网站允许用户直接在比价网站上完成预订。其他人将用户重定向到原始服务提供商的网站以进行最终的预订过程。 创建旅行比较网站需要网络开发、数据库管理以及与第三方 API 集成方面的专业知识。从其他网站汇总数据时,必须遵守法律和道德标准。

至于 Hassan Sadpara Trek and Travel,该旅行社的假设网站可能涉及类似的原则,但重点是提供特定于其服务的信息,包括徒步旅行和冒险旅行套餐。与他们自己的预订系统集成以及可能与其他服务提供商的合作可以增强网站的功能。在实施数据聚合方法时,始终注意法律考虑并确保遵守服务条款。

© www.soinside.com 2019 - 2024. All rights reserved.