Я уверен, что упускаю что-то простое, потому что я нашел длину элемента в массиве, используя несколько разных языков в свое время, но этот меня поставил в тупик.
Функция имеет предупреждение для уведомления о длине содержимого позиции 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 - КАК?