I have created a google map with circles overlapping each other, while am hovering overlapping circle, z-index of that circle should changes and it should come on top of other circles. There is a way to do this for markers, like in this link " changing z index of marker on hover to make it visible " . But i want to do this for points created by data layer, Here is my fiddle sample
http://jsfiddle.net/8cs97z8h/1/
var json = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-98.344139,28.629211]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-98.341263,28.629228]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-98.3412, 28.629]
}
},
]
};
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 12,
center: new google.maps.LatLng(28.666767, -98.367298),
});
map.data.addGeoJson(json);
map.data.setStyle(styleFeature);
function styleFeature(feature) {
return {
icon: {
path: google.maps.SymbolPath.CIRCLE,
strokeWeight: 2,
strokeColor: 'white',
fillColor: 'blue',
fillOpacity: 1.0,
scale: 7
}
};
}
You may use overrideStyle
to achieve it.
Set a variable where you store the zIndex and apply this zIndex in the setStyle
.
var zIndex=1;
//Setting style for markers circles.
function styleFeature(feature) {
return {
icon: {
path: google.maps.SymbolPath.CIRCLE,
strokeWeight: 2,
strokeColor: 'white',
fillColor: 'blue',
fillOpacity: 1.0,
scale: 7
},
zIndex:zIndex
};
}
Then add a mouseover-listener where you increment the zIndex and apply it to the feature:
map.data.addListener('mouseover', function(event) {
map.data.overrideStyle(event.feature, {zIndex: ++zIndex});
});
Demo: http://jsfiddle.net/8cs97z8h/6/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With