JavaScript. Длина гугл карты - PullRequest
       1

JavaScript. Длина гугл карты

0 голосов
/ 01 сентября 2011

Я уверен, что упускаю что-то простое, потому что я нашел длину элемента в массиве, используя несколько разных языков в свое время, но этот меня поставил в тупик.

Функция имеет предупреждение для уведомления о длине содержимого позиции 0 в каждом массиве.Тем не менее, это постоянно предупреждает меня о том, что длины оба одинаковы.В то же время у меня есть предупреждение о фактическом содержании.Конечно, я проходил курсы, ведущие к дифференциальным уравнениям, поэтому я не математик, но я знаю, что длина 183 отличается от длины 13600. Что я делаю не так?

    markerPosLat = streetAddressLat[0];
markerPosLng = streetAddressLng[0];

var point = new google.maps.LatLng(markerPosLat,markerPosLng);

var panoPos = mybigpano2.getPosition();
var schoolAdLen = schoolAddressSelectValue.length - 8;

var panoAd = new Array();
var schoolAd = new Array();
var tempPanoAd = '';
tempPanoAd = panoStreet[0];
var tempPanoAd2 = '';
tempPanoAd2=panoStreet[0].match(/\d+/,panoStreet[0]);
panoAd[0] = tempPanoAd2;
var tempStAd = '';
schoolAd[0] = schoolAddressSelectValue;
var tempStAd2 = '';
tempStAd2=schoolAd[0].match(/\d+/,schoolAd[0]);
schoolAd[0] = tempStAd2;
var panoAdLen = panoAd[0].length;
var stAdLen = schoolAd[0].length;
//alert(panoAd[0]+' '+schoolAd[0]);

var panoPosLat = panoPos.lat() / 180 * Math.PI;
var panoPosLng = panoPos.lng() / 180 * Math.PI;

var y = Math.sin(markerPosLng - panoPosLng) * Math.cos(markerPosLat); 
var x = Math.cos(panoPosLat)*Math.sin(markerPosLat) - Math.sin(panoPosLat)*Math.cos(markerPosLat)*Math.cos(markerPosLng - panoPosLng); 
brng = Math.atan2(y, x) / Math.PI * 255;

if(panoAd[0])
{
    if(panoAdLen == stAdLen)
    {
        if((isEven(panoAd[0])) && (isEven(schoolAd[0])))
        {

        }
        else if((isOdd(panoAd[0])) && (isOdd(schoolAd[0])))
        {

        }
        else
        {
            brng = brng * -1;
        }
    }
    else
    {
        brng = brng * 1;
    }       
}
else
{
    brng = brng * -1;
}

alert(panoAd[0]+' '+schoolAd[0]+' '+brng+' '+panoAdLen+' '+stAdLen);

В основном, если panoAdLen == stAdLen имеет значение true, то мне нужно знать, являются ли адрес панорамы и адрес улицы (маркера) либо четными, либо нечетными, что, если они являются одним из двух случаев, то я ничего не делаю.

Однако, если один является четным, а другой - нечетным, то мне нужно сделать беринг отрицательным для беринга панорамы, чтобы в беринге панорамы был установлен адрес улицы (маркера).

Все это может работать нормально, если я точно знаю, одинаковы ли длины номеров улиц или нет.Иногда Google возвращает перекресток без номера улицы и т. Д.

Конечно, не зная, имеют ли две переменные одинаковую длину, ни одна из этих функций не работает.

Предупреждениевсегда возвращая panoAdLen и stAdLen как значение, равное единице.

пример для просмотра

Вы можете убедиться сами по ссылке выше.Я выбираю район ABC из первого набора меню выбора, затем, как только адреса будут заполнены, я выбираю элементарный Cerritos - 13600 E 183rd St, Cerritos, CA.

Вы увидите предупреждение, показывающеесодержимое panoAd [0] как 183 и schoolAd [0] как 13600. И все же panoAdLen равно 1, а stAdLen равно 1 - КАК?

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