我正在制作这个GPS跟踪应用程序,gps不断向数据库发送数据,所以我需要做的是我获取数据并使用api,应用程序用于绘制一个给定车辆ID的路线。这是我的代码
for($i=0;$i<sizeof($losDatos);$i++)
{
if($losDatos[$i+1]['latitud']<>$losDatos[$i]['latitud'] || $losDatos[$i+1]['longitud']<>$losDatos[$i]['longitud'])
{
$script.="latArray.push(".$losDatos[$i]['latitud'].");";
$script.="lngArray.push(".$losDatos[$i]['longitud'].");";
$script.="codigos.push(".$losDatos[$i]['codigo'].");";
$script.="fechas.push('".$losDatos[$i]['fecha']."');";
$script.="velocidades.push(".$losDatos[$i]['velocidad'].");";
}
}
一旦我填充了所有阵列,我称之为我的一个叫做路线的功能。此函数中的所有参数都是数组
route(latArray,lngArray,codigos,fechas,velocidades);
function route(lats,lngs,codigos,fechas,vs,weight)
{
var pointsArray=[];
//make a new point for each lat,lng
for(i=0;i<latArray.length;i++)
{
pointsArray.push(new google.maps.LatLng(lats[i],lngs[i]));
//this next function adds a marker and sets an infowindow with code,date and speed for each one.
addMarker(lats[i],lngs[i],codigos[i],fechas[i],vs[i]);
}
//then I send my pointsArray to the polyline
var ruta = new google.maps.Polyline({
path: pointsArray,
strokeColor: "#FF0000",
strokeOpacity: 0.5,
strokeWeight: weight});
ruta.setMap(map);
}
麻烦的是我的折线点和标记点不匹配,当它们应该在同一位置时,它们彼此相差30个像素
答案 0 :(得分:0)
问题解决了我的图像尺寸问题我最初使用的是
var marker = new google.maps.Marker({
position: pos,
map: map,
icon:'img/bluedot.png'
});
但似乎我需要更具体,所以我做了这个
var icon=new google.maps.MarkerImage('img/bluedot.png',new google.maps.Size(6,6),new google.maps.Point(0,0),new google.maps.Point(0,1));
var marker = new google.maps.Marker({
position: pos,
map: map,
icon:icon
});