簡體   English   中英

如何使用 Bing 地圖 API 獲取路線的距離?

[英]How to get the distance of a route using Bing maps API?

我需要的“功能”在此鏈接中,但沒有代碼示例,只有“RouteSummary Object”,下面是“距離”,這正是我需要的。

我在這個鏈接中得到了下面的代碼

<html>
    <head>
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
    </head>
    <body>
        <div id='printoutPanel'></div>
        
        <div id='myMap' style='width: 100vw; height: 100vh;'></div>
        <script type='text/javascript'>
            function loadMapScenario() {
                var map = new Microsoft.Maps.Map(document.getElementById('myMap'), {
                    /* No need to set credentials if already passed in URL */
                    center: new Microsoft.Maps.Location(47.606209, -122.332071),
                    zoom: 12
                });
                Microsoft.Maps.loadModule('Microsoft.Maps.Directions', function () {
                    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);
                    // Set Route Mode to driving
                    directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.driving });
                    var waypoint1 = new Microsoft.Maps.Directions.Waypoint({ address: 'Redmond', location: new Microsoft.Maps.Location(47.67683029174805, -122.1099624633789) });
                    var waypoint2 = new Microsoft.Maps.Directions.Waypoint({ address: 'Seattle', location: new Microsoft.Maps.Location(47.59977722167969, -122.33458709716797) });
                    directionsManager.addWaypoint(waypoint1);
                    directionsManager.addWaypoint(waypoint2);
                    // Set the element in which the itinerary will be rendered
                    directionsManager.calculateDirections();
                   
                });
                
            }
        </script>
        <script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?key=AnOeSZ6a7LgcnBLVjmZ4xfQWIWZjzKv7bDwgyRk-W4NlkGnZGQdk5atUjsunU5yH&callback=loadMapScenario' async defer></script>
    </body>
</html>

我試過這樣的方式:

routeSummary.distance();

還有:

directionsManager.routeSummary.distance();

我對 JavaScript 幾乎一無所知,也不知道如何閱讀文檔。

畢竟,我如何使用文檔中描述的對象? 我只是想知道在這種情況下“對象”是什么意思,是不是OOP的類相關對象?

您需要向路線管理器添加一個事件,因為路線計算是異步完成的。 下面是一個例子:

Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', directionsUpdated);

function directionsUpdated(e) {
    //Get the current route index.
    var routeIdx = directionsManager.getRequestOptions().routeIndex;

    //Get the distance of the route.
    var distance = .routeSummary[routeIdx].distance;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM