response.Placemark.length возвращает неверный результат - PullRequest
0 голосов
/ 12 декабря 2011

Я использую API Google для проверки множественности.Я использую следующий код:

var cc='';
function GetMultiCity(g)
{
    getHF("divChoice","div").innerHTML='';
    var location=getHF("txtCity","input").value;
    var b=new GClientGeocoder();
    if(location!='')
    {
        cc=getCountryCode(g);
        b.reset();
        b.getLocations(location,addAddressToMap);
    }
}

function addAddressToMap(response)
{
    if(!response||response.Status.code!=200)
    {
    }
    else
    {
        gResponse=response;
        if(response.Placemark.length>1)
        {
            var oChoiceDiv=getHF("divChoice","div");
            oChoiceDiv.innerHTML='';
            var html='<ul>';
            var ctrmc=0;
            for(var n=0;n<response.Placemark.length;n++)
            {
                 if(gResponse.Placemark[n].AddressDetails.Country.CountryNameCode==cc)
                 {
                       ctrmc++;
                       html+=createChoiceLink(n);
                 }
            }
            html +='</ul>';
            if(ctrmc>1)
            {
                 oChoiceDiv.innerHTML=html;
            }
       }
       else
       {
       }
    }
}

function getCountryCode(g)
{
     var a=null;
     var i=new Array();
     if(g.indexOf(",")>=0)
     {
         i=g.split(",");
         a=i[0];
     }
     else
     {
         a=g;
     }
     return a;
 }

function createChoiceLink(ix)
{
    var pMark = gResponse.Placemark[ix];
    var html = "<li class='choice'><a href='javascript:void(0);' onclick=setCitySource(" + ix + ") >"+pMark.address+"</a></li>";
    return html;
}

function setCitySource(ix)
{
     citySource=gResponse.Placemark[ix].Point.coordinates[1]+","+gResponse.Placemark[ix].Point.coordinates[0];
     independentSource=citySource;
     getHF("divChoice","div").innerHTML='';
     eval(getHF("hdnJS","input").value);
}

function clickMultiCity(g)
{
    GetMultiCity(g);
    getHF("divInfo","div").innerHTML=getHF("hdnMultiCity2","input").value+' '+getHF("txtCity","input").value;
    setTimeout("document.getElementById('btnSearch').click()",1000);
}

Я получаю два результата для response.Placemark.length для города "Девентер" в Нидерландах, где должен быть только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...