Я хочу изменить текущее поведение моей карты Google, чтобы она отображала информационное окно при наведении курсора и открывала определенную ссылку по клику.Отображение информационного окна не является проблемой, но проблема теперь в том, что центр карты изменится, если информационное окно не помещается в текущий элемент div;это означает, что положение маркера изменится, и оно больше не будет «наведением мыши», а информационное окно исчезнет.
Я пытаюсь создать аналогичное поведение, например: http://www.booking.com/city/nl/amsterdam.html?sid=de243c5062b6be49f9a67baa38992974;city=-2140479
2 решения, которые я могу придумать, сработают:
- вычисление положения маркера и позиционирование информационного окна на основе этого
- Не позволяя карте менять положение, когда информационное окноотображается, но это означает, что информационное окно может быть невидимым в некоторых случаях, поэтому не идеально.
В данном примере они не используют google.maps.Marker () для добавлениямаркеры, но они добавляют div, используя собственный код.
createMarker: function (d, g, n, l, e, m) {
var i = this.b_map_icons[e];
var b = (i.height) ? i.height : 20;
var h = (i.width) ? i.width : 17;
var f = i.iconAnchor[0];
var a = (i.zOrder) ? i.zOrder : 20;
var k = g - i.iconAnchor[1];
var o = (e == "cluster") ? '<div class="ml-text">' + m + "</div>" : "";
var c = "display:block;width:" + h + "px;height:" + b + "px;left:" + (d - f) + "px;top:" + k + "px;position:absolute;cursor:pointer;z-index:" + (a + 1) + ";";
var j = $('<div class="marker marker_type_' + e + '" id="' + n + '" style="' + c + '">' + o + '<img alt="' + l + '" src="' + i.image + '" style="position:absolute;top:0px;left:0px;z-index:12000;" /></div>');
return j
},
Предпочтительно, чтобы я располагал информационное окно в зависимости от положения маркера, чтобы оно всегда отображалось на текущей карте, возможно ли это?