我有一个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(航路点)...
的结果
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();
答案 0 :(得分:1)
当你的问题只是通过航点的循环时,它是这样的:
for(var i=0;i<waypoints.length;++i){
console.log(waypoints[i].lat(),waypoints[i].lng());
}