Чтобы открыть InfoWindow
при наведении мыши:
- создать
InfoWindow
:
var infowindow = new google.maps.InfoWindow({
pixelOffset: new google.maps.Size(0, -40) // offset for icon
});
добавить прослушиватель события mouseover к
Data Layer
, который открывает
InfoWindow
и отображает в нем соответствующее свойство (ниже «prop0»):
map.data.addListener('mouseover', function(evt) {
infowindow.setContent(evt.feature.getProperty('prop0'));
infowindow.setPosition(evt.feature.getGeometry().get());
infowindow.open(map);
});
proofконцептуальной скрипки
фрагмент кода:
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {
lat: -28,
lng: 137
}
});
var infowindow = new google.maps.InfoWindow({
pixelOffset: new google.maps.Size(0, -40)
});
var bounds = new google.maps.LatLngBounds();
map.data.addListener('addfeature', function(evt) {
if (evt.feature.getGeometry().getType() == 'Point') {
bounds.extend(evt.feature.getGeometry().get());
map.fitBounds(bounds);
}
})
map.data.addGeoJson(geoJson);
map.data.addListener('mouseover', function(evt) {
console.log(evt.feature.getProperty('prop0'));
infowindow.setContent(evt.feature.getProperty('prop0'));
infowindow.setPosition(evt.feature.getGeometry().get());
infowindow.open(map);
})
}
var geoJson = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73.563032, 45.495403]
},
"properties": {
"prop0": "value0"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73.549762, 45.559673]
},
"properties": {
"prop0": "value1"
}
}
]
}
html,
body,
#map {
height: 100%;
margin: 0;
padding: 0;
}
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"></script>