2012-02-20 81 views
2

我真的很困扰航点,我希望得到一些帮助。Google Maps API保存航点

我的终极目标是将航点数据发送到隐藏的输入字段,当用户完成绘制路线时,可以使用PHP将其保存到数据库。

我已经得到了下面的代码(JavaScript API V3),但最后的路标点部分不断打破脚本。

jQuery(document).ready(function(){ 

// INITIALIZE MAP 

var map = new google.maps.Map(document.getElementById('map_canvas'), { 
    zoom: 5, 
    center: new google.maps.LatLng(37.09024, -95.71289), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}), 
directions = new google.maps.DirectionsService(), 
displayer = new google.maps.DirectionsRenderer({ 
    draggable: true 
}); 

// LOAD DEFAULTS 

/* start coordinates */ 

var start_lat = jQuery('input[name="origin_lat"]').val(); 
var start_lng = jQuery('input[name="origin_lng"]').val(); 

/* end coordinates */ 

var end_lat = jQuery('input[name="destination_lat"]').val(); 
var end_lng = jQuery('input[name="destination_lng"]').val(); 

displayer.setMap(map); 
directions.route({ 
    origin: new google.maps.LatLng(start_lat,start_lng), 
    destination: new google.maps.LatLng(end_lat,end_lng), 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
}, function (result) { 
    displayer.setDirections(result); 
}); 

// INFO WINDOW AND MARKERS 

var infowindow = new google.maps.InfoWindow(); 
var marker = new google.maps.Marker({ 
    map: map 
}); 

// WAYPOINTS 

google.maps.event.addListener(displayer, 'directions_changed', function(){ 
    var waypoints = displayer.directions.route[0].legs[0].via_waypoint; 
}); 

}); 

我非常感谢您的任何帮助。

回答

1

此:

var waypoints = displayer.directions.route[0].legs[0].via_waypoint; 

应该是:

var waypoints = displayer.getDirections().routes[0].legs[0].via_waypoints; 

请注意:开始的,不包含路由结束时的航点阵列内。

+0

谢谢一堆! – HWD 2012-02-20 18:39:15