Javascript 如何在方向服务对象内传递纬度和经度数组?

Javascript 如何在方向服务对象内传递纬度和经度数组?,javascript,google-maps,google-maps-api-3,google-maps-markers,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,到目前为止,我一直在一个方向服务对象中传递一个源和一个目标值,该对象将在源和目标之间绘制一条路由。但是在这里,我接收到一个纬度和经度数组,我需要将它传递到方向服务对象内部 我有四个地方,像纽约、华盛顿、曼哈顿、, 加利福尼亚所以我应该可以画一条从纽约到纽约的路线 加利福尼亚州,路线从华盛顿和曼哈登经过 只有两个标记。纽约的A马克和纽约的B马克 加利福尼亚 我试着利用路标。但在我的例子中,它使用的是地名,而不是纬度和经度。此外,它还为每一个访问的地方创建标记 我的要求是在数组中传递纬度和经度并绘制

到目前为止,我一直在一个方向服务对象中传递一个源和一个目标值,该对象将在源和目标之间绘制一条路由。但是在这里,我接收到一个纬度和经度数组,我需要将它传递到方向服务对象内部

我有四个地方,像纽约、华盛顿、曼哈顿、, 加利福尼亚所以我应该可以画一条从纽约到纽约的路线 加利福尼亚州,路线从华盛顿和曼哈登经过 只有两个标记。纽约的A马克和纽约的B马克 加利福尼亚

我试着利用路标。但在我的例子中,它使用的是地名,而不是纬度和经度。此外,它还为每一个访问的地方创建标记

我的要求是在数组中传递纬度和经度并绘制 使用directionservice进行路由

请查找下面的代码

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Chart</title>
<style>
html,body,#map-canvas {
    height: 100%;
    margin: 0px;
    padding: 0px
}

#panel {
    position: absolute;
    top: 5px;
    left: 50%;
    margin-left: -180px;
    z-index: 5;
    background-color: #fff;
    padding: 5px;
    border: 1px solid #999;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>



<script> 

var directionsDisplay; var directionsService = new google.maps.DirectionsService(); 
var map;  
function initialize() 
{   
    directionsDisplay = new google.maps.DirectionsRenderer();   
    var delhi = new google.maps.LatLng(28.6168, 77.2434);  
     var mapOptions = 
         {     
             zoom: 6,     
             mapTypeId: google.maps.MapTypeId.ROADMAP,     
             center: delhi   
         }  
      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);   

      directionsDisplay.setMap(map); 
      }  




function calcRoute() {  
      var start = document.getElementById('start').value;   
      var end = document.getElementById('end').value;  
       var waypts = [];   
       var checkboxArray = document.getElementById('waypoints');   
       for (var i = 0; i < checkboxArray.length; i++) 
           {     if (checkboxArray.options[i].selected == true) 
               {       
               waypts.push({           
               location:checkboxArray[i].value,           
               stopover:true});     
               }   
           }    
       var request = 
           {       
               origin: start,       
               destination: end,       
               waypoints: waypts,  
               provideRouteAlternatives:true,
             //  alternatives:true,     
               optimizeWaypoints: true,       
               travelMode: google.maps.TravelMode.DRIVING   
            };   

       var polylineOptions = new google.maps.Polyline({
            strokeColor: '#000000',
            strokeOpacity: 1.0,
            strokeWeight: 2
        });






        directionsService.route(request, 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>';      
                            }     
}   }); 
}  


google.maps.event.addDomListener(window, 'load', initialize);      </script>
</head>
<body>
<div id="map-canvas" style="float: left; width: 70%; height: 100%;"></div>
<div id="control_panel"
    style="float: right; width: 30%; text-align: left; padding-top: 20px">
<div style="margin: 20px; border-width: 2px;"><b>Loco Journey Start Station:</b> <select
    id="start">
    <option value="Tughlakabad">Tughlakabad</option>
    <option value="Lucknow">Lucknow</option>
    <option value="Firozpur">Firozpur</option>
    <option value="Ghaziabad">Ghaziabad</option>
</select> <br>
<b>Journey:</b> <br>
<i>(Ctrl-Click for multiple selection)</i> <br>
<select multiple id="waypoints">
    <option value="Bhopal">Bhopal</input>
    <option value="Raipur">Raipur</input>
    <option value="Farukkhabad">Farukkhabad</input>
    <option value="Jhansi">Jhansi</input>
</select> <br>
<b>Loco Journey End Station:</b> <select id="end">
    <option value="Lucknow">Lucknow</option>
    <option value="Firozpur">Firozpur</option>
    <option value="Ghaziabad">Ghaziabad</option>
    <option value="Tughlakabad">Tughlakabad</option>
</select> <br>
<input type="submit" onclick="calcRoute();"></div>
<div id="directions_panel"
    style="margin: 20px; background-color: #FFEE77;"></div>
</div>
</body>
</html>

图表
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px
}
#面板{
位置:绝对位置;
顶部:5px;
左:50%;
左边距:-180px;
z指数:5;
背景色:#fff;
填充物:5px;
边框:1px实心#999;
}
var方向显示;var directionsService=new google.maps.directionsService();
var映射;
函数初始化()
{   
directionsDisplay=new google.maps.DirectionsRenderer();
var delhi=new google.maps.LatLng(28.6168,77.2434);
变量映射选项=
{     
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:德里
}  
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
}  
函数calcRoute(){
var start=document.getElementById('start').value;
var end=document.getElementById('end').value;
var-waypts=[];
var checkboxArray=document.getElementById('waypoints');
对于(var i=0;i;
summaryPanel.innerHTML+=route.legs[i]。起始地址+'to';
summaryPanel.innerHTML+=route.legs[i]。结束地址+'
'; summaryPanel.innerHTML+=route.legs[i].distance.text+'

'; } } }); } google.maps.event.addDomListener(窗口“加载”,初始化); 本地旅程起点站: 格拉克巴德 勒克瑙 费罗兹普尔 加齐阿巴德
旅程:
(按Ctrl键可选择多个选项)
博帕尔 赖布尔 法鲁卡巴德 占西
本地旅程终点站: 勒克瑙 费罗兹普尔 加齐阿巴德 格拉克巴德

接受字符串(用于地址)或字符串

使用一个布尔“stopover”标志,确定他们在哪里获得标记。将其设置为false。它还可以采用字符串(用于地址)或location属性中的

stopover | boolean | If true, indicates that this waypoint is a stop between the origin and destination. This has the effect of splitting the route into two. This value is true by default. Optional.
stopover | boolean | If true, indicates that this waypoint is a stop between the origin and destination. This has the effect of splitting the route into two. This value is true by default. Optional.