Неправильное положение информационного окна на малых уровнях увеличения. API карт Google v3

На малых уровнях масштабирования одно место будет отображаться дважды и более (карта мира повторяется по горизонтали). Когда я помещаю маркер на карту с координатами (например, -32.05604, 115.74718), я увижу его на карте более одного раза. Это нормально.

Но если я попытаюсь показать информационное окно при наведении курсора мыши, я получу неправильное поведение. Инфоокно всегда будет отображаться рядом с одним из моих маркеров и никогда рядом с другим, независимо от того, какой маркер находился под курсором мыши.

См. Пример здесь: (попробуйте переместить мышь к левому маркеру на карте). https://jsfiddle.net/m3wpk1gr/1/

Как показать информационное окно для маркера, который находится под мышкой?

Мой код:

function initialize() {

    var myLatLng = new google.maps.LatLng(-32.05604, 115.74718),
        myOptions = {
            zoom: 1,
            center: new google.maps.LatLng(-32.05604, 0)
        },
        map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),
        marker = new google.maps.Marker({
            position: myLatLng,
            map: map
        });

    marker.setMap(map);

    var iw = new google.maps.InfoWindow();
    marker.addListener('mouseover', function() {
        iw.setContent('InfoWindow');
        iw.open(map, this);
    });
    marker.addListener('mouseout', function() {
        iw.close();
    });

}

initialize();

person ArsenyN    schedule 16.05.2016    source источник


Ответы (1)


Боюсь, что вы ничего не можете сделать, чтобы получить желаемый результат (позиция правильная, поэтому, когда позиция существует несколько раз на карте, API должен принять решение).

Что вы можете сделать: установите optimized-параметр маркера на false, тогда они не будут повторяться при более низких уровнях масштабирования

person Dr.Molle    schedule 16.05.2016
comment
Спасибо, @ dr-molle. Так грустно. - person ArsenyN; 17.05.2016