我在Google Maps API项目上工作,我想在指针悬停在功能上时显示工具提示。使用标记时非常容易:你只需要提供一个"标题"在标记的选项中{see this exemple)但我使用的是data.feature对象,而我却找不到如何做到这一点?
我会继续为data.feature对象工作,因为它更容易管理不同的图层。
function elemOver(event){
console.log(event.feature.getProperty("Libelle")); // I put a console.log to test the listener but I don't know how to do to add a tooltip
};
function elemOut(event){
console.log (event.feature.getProperty("Libelle")," out"); // I put a console.log to test the listener but I don't know how to do to add a tooltip
};
data = new google.maps.Data();
data.loadGeoJson('layer.geojson');
data.setMap(map);
data.addListener('mouseover',elemOver);
data.addListener('mouseout',elemOut);
您可以在此处查看我的作品:http://bescu.github.io/GoogleMapsApiTest/
谢谢,
马克西姆
答案 0 :(得分:3)
将setStyle
与函数作为参数使用:
当您使用函数作为参数时,您可以根据要素的属性设置样式(例如title
)(例如Libelle
)
map.data.setStyle(function(feature){
return {
title:feature.getProperty('Libelle')||null
//more styles
};
});
答案 1 :(得分:2)
由于title
属性仅适用于点类型功能,因此对多边形等内容没有帮助。
因此,当用户点击多边形时,我使用InfoWindow
来显示类似的工具提示类型标签:
map.data.addListener('click', function (event) {
if (areaInfoWindow != null) {
areaInfoWindow.close();
areaInfoWindow = null;
}
areaInfoWindow = new google.maps.InfoWindow({
content: event.feature.getProperty('name'),
position: event.latLng
});
areaInfoWindow.open(map);
});
这可以相对容易地修改,以分别显示和隐藏mouseover
和mouseout
事件的信息窗口,虽然我不太确定它会看起来那么棒......
我想您也可以不使用InfoWindow,而是使用其他一些自定义HTML元素 - 自定义DIV? - 而不是。