【发布时间】:2016-10-29 10:31:55
【问题描述】:
我正在尝试通过谷歌地图开始实时跟踪,通过 ajax 从数据库中获取新位置,它工作正常,但问题是绘制折线我收到此错误“InvalidValueError: at index 0: not a LatLng or LatLngLiteral : not an Object”,这意味着“line”变量值不能用作此处google maps link 中的点。这是代码
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = null;
function autoUpdate() {
$.post('ajax/track.php',{car:'1'}).done(function (data) {
var parsed = JSON.parse(data);
var lat = parsed.lat,
lon = parsed.lon;
var newPoint = new google.maps.LatLng(lat,lon);
var line = "{lat: "+lat+", lng: "+lon+"},";
if (marker) {
// Marker already created - Move it
marker.setPosition(newPoint);
var flightPlanCoordinates = [
];
flightPlanCoordinates.push(line);
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
else {
marker = new google.maps.Marker({
position: newPoint,
map: map,
icon: 'images/1.png',
});
}
map.setCenter(newPoint);
});
setTimeout(autoUpdate, 5000);
}
autoUpdate();
@geocodezip 建议的更新: var line = {lat: lat, lng: lon}; 我收到此错误“InvalidValueError: at index 0: not a LatLng or LatLngLiteral: in property lat: not a number”所以我将其更改为
var line = {lat: parseFloat(lat), lng: parseFloat(lon)};
在控制台中,我得到的只是最后一个位置,而不是位置数组
【问题讨论】:
标签: google-maps tracking