我正在使用ng-map指令来显示地图。地图上有标记,只要标记上有鼠标悬停,就会显示信息窗口。然而,有时候,infowindow不会出现。
除此之外,我无法确定任何正在发生的模式,因为每次都会出现不同标记的问题。我正在向infowindow输出数据,但问题似乎并不是“数据相关”,因为所选位置的所有数据在发生问题时似乎都是正确的。
我有一个showInfo方法,在这样的鼠标悬停上调用:
showInfo(event, loc, infoWindowTemplate, map, mapsController) {
以下是该方法的主体:
map.getMap(mapsController.mapId).then(function (myMap) {
var selectedMarker = myMap.markers["L: " + loc.position[0] + ", " + loc.position[1]];
selectedMarker.locationInfo = loc;
console.log("about to show infowindow - infoWindowTemplate = " + infoWindowTemplate);
// console output = "cached-myTemplate.html"
myMap.showInfoWindow(infoWindowTemplate, selectedMarker);
selectedMarker肯定是指正确的标记对象。我的模板如下所示:
<script id="cached-myTemplate.html" type="text/ng-template">
<a class="map-location__link" href="/locations/{{anchor.locationInfo.locationId}}" target="_blank">
<img src="{{anchor.locationInfo.locationImageThumbnail}}" />
</a>
</script>
问题似乎是调用'showInfoWindow'以某种方式间歇性地失败(尽管控制台中没有错误)。任何评论或答案与可能导致问题的想法或我可以做什么来诊断它将不胜感激!
答案 0 :(得分:1)
我发现这是一个时间问题。延迟转弯&#39;其中调用showInfoWindow(通过添加短暂超时)修复了问题:
map.getMap(mapsController.mapId).then(function (myMap) {
....
this.$timeout(function () {
dealmap.showInfoWindow(infoWindowTemplate, selectedMarker);
}, 100)
}.bind(this));