1

我正在将 v2 移植到 v3 应用程序地图,但有一件事我无法开始工作。我有一个没有显示的自定义控件,任何东西。我不确定问题出在哪里,所以我会发布我认为相关的所有内容,如果需要,请询问更多这是构造函数:

请注意,仍然有来自 v2 的评论

function Semaforo(){}
//Semaforo.prototype = new GControl();                                
Semaforo.prototype.semaforo = document.createElement("img");
Semaforo.prototype.initialize = function(map) {
    var container = document.createElement("div");
    var semaforoDiv = document.createElement("img");

    semaforoDiv.setAttribute("class", "semaforo");
    this.setButtonStyle_(semaforoDiv);
    this.semaforo = semaforoDiv;
    container.appendChild(semaforoDiv);
    semaforoDiv.setAttribute("src", "img/semaforo_rojo.png");
    map.getContainer().appendChild(container);      
    return container;
}

还有一些方法:

Semaforo.prototype.setColor = function(color, mapa) {
  this.semaforo.setAttribute("src", "img/semaforo_" + color + ".png");
  if(color == "rojo")
  {
    this.semaforo.setAttribute("alt", "Tr�fico dif�cil");
        this.semaforo.setAttribute("title", "Tr�fico dif�cil");
  }
  else if(color == "ambar")
  {
    this.semaforo.setAttribute("alt", "Tr�fico irregular");
        this.semaforo.setAttribute("title", "Tr�fico irregular");
  }
  else
  {
    this.semaforo.setAttribute("alt", "Tr�fico fluido");
        this.semaforo.setAttribute("title", "Tr�fico fluido");
  }
}
Semaforo.prototype.getDefaultPosition = function() {
    return new google.maps.ControlPosition.TOP_RIGHT;
    //return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(0, 0));             //TO DO
}
Semaforo.prototype.setButtonStyle_ = function(button) {
    button.style.width = "19px";
    button.style.height = "53px";
    button.style.cursor = "default";
}

function getIconoSemaforo(color, mapa){
    var semaforo = new Semaforo();
    semaforo.setColor(color, mapa);
    return semaforo;
}

这是我调用构造函数并尝试制作/显示控件的地方

function incluirDatosXML()
{
    for (var i=0; i<ciudadDato.length; i++)
    {           
        if (i==0)
        {
            if (semaforoDato[i]!="no")
            {
                var semaforo = new Semaforo(this.semaforo, map[1]);

                map[1].controls[google.maps.ControlPosition.TOP_RIGHT].push(this.semaforo);
                //map[1].addControl(semaforo);
                semaforo.setColor(semaforoDato[i], map[1]); 

                /*google.maps.event.addListener(map[1], 'idle', function() {
                    map[1].controls[google.maps.ControlPosition.TOP_RIGHT].push(this.semaforo);
                  });*/
            }           
        }           
        if (i==1)
        {
            if (semaforoDato[i]!="no")
            {
                var semaforo = new Semaforo(this.semaforo, map[2]);
                //map[2].addControl(semaforo);
                semaforo.setColor(semaforoDato[i], map[2]);
                //map[2].controls[google.maps.ControlPoistion.TOP_RIGHT].push(this.semaforo);
            }
        }           
        if (i==2)
        {
            if (semaforoDato[i]!="no")
            {
                var semaforo = new Semaforo(this.semaforo, map[3]);
                //map[3].addControl(semaforo);
                semaforo.setColor(semaforoDato[i], map[3]);
                //map[3].controls[google.maps.ControlPoistion.TOP_RIGHT].push(this.semaforo);
            }
        }               
        $("#clima"+(i+1)).attr("class",climaDato[i]+"_mini");           
        $("#temp"+(i+1)).html(temperaturadDato[i]+"&deg;");
    }
}

所以你所看到的就是我到目前为止测试的内容,即使之前的测试还有一些评论

4

0 回答 0