Беда с гугл картами api v3 ломаная линия и маркеры - PullRequest
0 голосов
/ 24 февраля 2011

Что ж, я делаю это приложение GPS-слежения, GPS постоянно отправляет данные в базу данных, поэтому все, что мне нужно сделать, это извлечь эти данные и использовать API, приложение предназначено для рисования маршрута одного данного идентификатора автомобиля.это мой код

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.все параметры в этой функции - массивы

 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 голосов
/ 24 февраля 2011

проблема решена У меня была проблема с размером изображения, которое я изначально использовал для тонкого

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 
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...