google map, показать всплывающую подсказку по кругу
Я знаю, что могу сделать маркер с подсказкой, которая показывает" что-то", как это:
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lon),
map: map,
draggable: true,
title:"SOMETHING",
icon: '/public/markers-map/male-2.png'
});
Я хочу сделать то же самое с кругом, но заголовок не работает.
new google.maps.Circle({
center: new google.maps.LatLng(lat,lon),
radius: 20,
strokeColor: "blue",
strokeOpacity: 1,
title:"SOMETHING",
strokeWeight: 1,
fillColor: "blue",
fillOpacity: 1,
map: map
});
он печатает круг, но не показывает сообщение "что-то".
Как я могу это сделать? есть ли другое свойство, чтобы получить его?
спасибо заранее.
3 ответов
подсказка создается через native title
-атрибут DOM-элементов, но он API не предоставляет никакого метода для доступа к DOMElement, который содержит круг.
возможным обходным путем может быть использование атрибута title-атрибута map-div вместо этого(установите его onmouseover
и удалить его onmouseout
)
//circle is the google.maps.Circle-instance
google.maps.event.addListener(circle,'mouseover',function(){
this.getMap().getDiv().setAttribute('title',this.get('title'));});
google.maps.event.addListener(circle,'mouseout',function(){
this.getMap().getDiv().removeAttribute('title');});
вы также можете использовать InfoWindow вместо атрибута HTML title, так как заголовок может не отображаться всегда при наведении мыши. InfoWindow выглядит довольно хорошо.
var infowindow = new google.maps.InfoWindow({});
var marker = new google.maps.Marker({
map: map
});
затем используйте тот же механизм событий mouseover, чтобы показать InfoWindow:
google.maps.event.addListener(circle, 'mouseover', function () {
if (typeof this.title !== "undefined") {
marker.setPosition(this.getCenter()); // get circle's center
infowindow.setContent("<b>" + this.title + "</b>"); // set content
infowindow.open(map, marker); // open at marker's location
marker.setVisible(false); // hide the marker
}
});
google.maps.event.addListener(circle, 'mouseout', function () {
infowindow.close();
});
Также мы можем добавить прослушиватель событий непосредственно в google.карты.Экземпляр круг.
код:
//circle is the google.maps.Circle-instance
circle.addListener('mouseover',function(){
this.getMap().getDiv().setAttribute('title',this.get('title'));
});
circle.addListener('mouseout',function(){
this.getMap().getDiv().removeAttribute('title');
});
просто написал для альтернативных!