谷歌地图api v3折线和标记的麻烦

时间:2011-02-24 00:43:31

标签: javascript google-maps

我正在制作这个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个像素

1 个答案:

答案 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 
    });