Google Maps API保存航点

时间:2012-02-20 08:26:18

标签: javascript google-maps-api-3

我真的在苦恼中挣扎,我希望得到一些帮助。

我的最终目标是将航点数据发送到隐藏的输入字段,当用户完成绘制路线时,我可以使用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 个答案:

答案 0 :(得分:1)

此:

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

应该是:

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

请注意:路线的起点和终点不包含在路标点数组中。