我正在尝试设置一个谷歌地图,通过ajax从数据库中提取GPS坐标,并在地图上绘制一条多边形线。
我删除ajax调用时只使用coord(lat_start,lng_start)和coord(lat_end,lng_end),它在lat_start,lng_start和lat_end,lng_end之间画一条线,但是当我尝试包装它时在ajax调用中,它表示存在错误。
如果可能,我想了解如何正确编写此块。
SyntaxError:语法错误'for(i = 0; i< arr.length; i ++){'
由于
//The vars are posted from hidden form values
var lat_start = $(this).parent('.plot_trip').find('.lat_start').val();
var lng_start = $(this).parent('.plot_trip').find('.lng_start').val();
var lat_end = $(this).parent('.plot_trip').find('.lat_end').val();
var lng_end = $(this).parent('.plot_trip').find('.lng_end').val();
var trip_id = $(this).parent('.plot_trip').find('.trip_id').val();
$.ajax({
type: "GET",
cache: false,
url: '?route=waypoints/get_by_trip_id',
data: {trip_id:trip_id},
success: function(data) {
// have recieved
alert('recieved data');
// set array var
var arr = data;
// set up google map polyline
polyline(map, [
//set start gps coordinates
coord(lat_start,lng_start),
//get and set all gps coordinates from array
for(i = 0; i < arr.length; i++) { // Error shown here
coord(arr[i].lat,arr[i].lng),
}
//set end gps coordinates
coord(lat_end,lng_end),
]);
}
});
答案 0 :(得分:0)
好的,所以终于解决了!
发布我的答案,这可能是错误的但是有效。
我需要设置一个数组变量并将点推送到它。
代码已完全注释,但如果您有任何疑问,请询问:)
//The vars are posted from hidden form values
var lat_start = $(this).parent('.plot_trip').find('.lat_start').val();
var lng_start = $(this).parent('.plot_trip').find('.lng_start').val();
var lat_end = $(this).parent('.plot_trip').find('.lat_end').val();
var lng_end = $(this).parent('.plot_trip').find('.lng_end').val();
var trip_id = $(this).parent('.plot_trip').find('.trip_id').val();
$.ajax({
type: "GET",
cache: false,
url: '?route=waypoints/get_by_trip_id',
dataType:"json",
data: {trip_id:trip_id},
success: function(data) {
// have recieved
alert('recieved data');
// Set up points array variable
var points = [];
// set start gps position variable
var start = coord(lat_start,lng_start);
//push start gps position to points array variable
points.push(start);
//get all gps coordinates from array
for(i = 0; i < data.length; i++) {
// set point variable
var point = coord(data[i].lat,data[i].lng);
//push point to points array variable
points.push(point);
}
// set end gps position
var end = coord(lat_end,lng_end);
//push end gps position to points array variable
points.push(end);
//show polyline using array
polyline(map,points);
}
});