在路径上显示第一个和最后一个标记

时间:2012-04-18 09:08:49

标签: google-maps-api-3

为了在谷歌地图上生成标记,我使用下一个代码调用函数displayLocation:

for (var i=0; i<data.length; i++) {
     displayLocation(data[i]);
}

在displayLocation上我创建一个数组,其中包含我想要创建的路径和标记的所有位置,我只想显示路径上的第一个和最后一个标记。 我的displayLocation函数如下所示:

function displayLocation(location){
                var latLng = new google.maps.LatLng(parseFloat(location.latitud), parseFloat(location.longitud)); 
                if(location.nombreequipo=="AST1"){
                    var path =  new google.maps.LatLng(parseFloat(location.latitud), parseFloat(location.longitud));
                    rutaAST1.push(path);
                }

                var marker = new google.maps.Marker({
                    position: latLng,
                    map: map,
                    icon: imagen,
                    draggable: false,
                    visible: true,
                    title: location.nombreequipo
                });
                arrayMarcadores.push(marker);
                google.maps.event.addListener(marker, 'click', function(){
                    infowindow.setContent(content);
                    infowindow.open(map, marker);
                });
                return marker;
            }

在代码的这一部分我设置路径,我打电话:

varBool = true;
dibujaRutaAST1(map, rutaAST1, varBool);

功能是:

var ruta = null;
function dibujaRutaAST1(mapa, rutaVar, varBool){
if(!ruta){
    var coordRuta = rutaVar;
    console.log("En función dibujo de rutas AST1: "+rutaVar);
    ruta= new google.maps.Polyline({
        map: mapa,
        path: coordRuta,
        geodesic: true,
        strokeColor: "#FF0000",
        strokeOpacity: 1.0,
        strokeWeight: 3
    });
    console.log(ruta);
}if(varBool){
    ruta.setMap(mapa);
}else{
    ruta.setMap(null);
}
}

标记数组的迭代:

function mostrarMarcas(nombreEquipo){
                for(var i=0;i<arrayMarcadores.length;i++){
                    if(arrayMarcadores[i].title==nombreEquipo){
                        arrayMarcadores[i].setVisible(true);
                    }
                }
            }

有什么建议吗? 感谢。

1 个答案:

答案 0 :(得分:0)

最后,我只使用所有点创建数组中的第一个和最后一个标记:

if(rutaAST1.length!=0){
    dibujaRutaAST1(map, rutaAST1, varBool);
    var imagen ='img/markers/blue_MarkerA.png';
    var markerIniAST1 = new google.maps.Marker({
        position: rutaAST1[0],
        map: map,
        icon: imagen,
        draggable: false,
        visible: true,
        title: "AST1"
    });
    google.maps.event.addListener(markerIniAST1, 'click', function(){
        infowindow.setContent(contentAST1[0]);
        infowindow.open(map, markerIniAST1);
    });
    var markerFinAST1 = new google.maps.Marker({
        position: rutaAST1[rutaAST1.length-1],
        map: map,
        icon: imagen,
        draggable: false,
        visible: true,
        title: "AST1"
    });
    google.maps.event.addListener(markerFinAST1, 'click', function(){
        infowindow.setContent(contentAST1[contentAST1.length-1]);
        infowindow.open(map, markerFinAST1);
    });
}

非常感谢你帮助我清楚地了解我的代码部分:)