如何使用Google Maps Waypoints重绘路线

时间:2013-04-06 19:04:47

标签: javascript xml google-maps

我有一个Google地图,其中用户在输入字段中搜索起点和终点,然后一旦绘制了路线,他们就可以通过添加和拖动路标来自定义路线。提交时,路径将另存为XML,然后在需要时重新绘制到新地图上。问题在于,我只有将起点和终点保存到XML。

我一直在使用此文档:https://developers.google.com/maps/documentation/javascript/directions#Waypoints,但我完全被困在这里。

我建议的方法与起点和终点相同 - 将lat和long值保存到XML中。下面的JS获取了航点的数据。我控制台。记录它以查看阵列的结构。我在这里遇到的问题是我不知道如何遍历每个路点(如果有多个路径点)并将每个路由点保存为新变量,以便我可以将它们添加到我的表单中以进行PHP提交。

//What to do when a waypoint has been added/changed
google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
    var waypoints = directionsDisplay.getDirections().routes[0].legs[0].via_waypoints;
    console.log(waypoints);
    console.log(waypoints[0].kb);
});

就像我说的那样,可能有一种更简单的方法,上面就是我迄今为止尝试过的方法。这是console.log(航路点)...

的结果

enter image description here

JS为隐藏的输入提供了他们的价值低于......

$('form.add-journix').submit(function() {
      $('#startlat').attr('value', startLatVal);
      $('#startlng').attr('value', startLongVal);
      $('#endlat').attr('value', endLatVal);
      $('#endlng').attr('value', endLongVal);
  });

这是将它保存为XML的PHP​​ ...

header("Content-type: text/xml"); 

    // Iterate through the rows, adding XML nodes for each

    while ($row = mysql_fetch_assoc($result)){  
      // ADD TO XML DOCUMENT NODE  
      $node = $dom->createElement("marker");  
      $newnode = $parnode->appendChild($node);   
      $newnode->setAttribute("title", $row['title']);  
      $newnode->setAttribute("description", $row['description']);  
      $newnode->setAttribute("startlat", $row['startlat']);  
      $newnode->setAttribute("startlng", $row['startlng']);  
      $newnode->setAttribute("endlat", $row['endlat']);  
      $newnode->setAttribute("endlng", $row['endlng']);  
    } 

    echo $dom->saveXML();

1 个答案:

答案 0 :(得分:1)

当你的问题只是通过航点的循环时,它是这样的:

for(var i=0;i<waypoints.length;++i){
  console.log(waypoints[i].lat(),waypoints[i].lng());
}