У меня есть карта с несколькими маркерами.Из-за того, как он настроен, один маркер всегда будет совпадать с центром карты.Я хочу показать другой значок на этом маркере всем остальным.
Маркеры и соответствующие им информационные поля определяются с помощью этой функции:
function createMarker(latlng, html, summary, photo1, photo2, thisLatlng) {
var contentString = "<div style='min-height:150px'>" + photo1 + "<img src='/images/" + photo2 + "' width='225' height='150' align='left' style='margin-right:8px;border:none'></a><span class='title'>" + html +"</span><br>" + summary + "</div>";
var marker = new google.maps.Marker({
map: map,
position: latlng,
icon: thisicon,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
google.maps.event.addListener(marker, 'mouseover', function() {
ib.close(map, marker);
boxText.innerHTML = contentString;
ib.open(map, marker);
});
google.maps.event.addListener(map, 'click', function() {
ib.close(map, marker);
});
gmarkers.push(marker);
}
"latlng" - это символ лат/ long, который отличается для каждого маркера.«thisLatlng» - это центр карты и широта / долгота одного конкретного маркера.
Мое намерение состояло в том, чтобы использовать что-то подобное для определения правильного значка:
if(latlng===thisLatlng){
var thisicon = icon1;
}else{
var thisicon = icon2;
}
Однако это не работает, так как «если» всегда возвращает false.Я пробовал
if(latlng===thisLatlng){
и
if(latlng==thisLatlng){
, и я также пытался перевернуть его с помощью! = И! ==, но они всегда возвращают false.Я проверил, что эти два значения равны, напечатав их одно над другим, и они выглядят точно так же (как и должно быть).
Должно быть, я что-то не так делаю, но что?