在infowindow中显示时检查街景
遵循此示例http://www.keypointpartners.com/test/mab/fromxml1.html和Google Maps API v3文档(https://developers.google.com/maps/documentation/javascript/streetview)我已经放在一起一个从XML文件加载标记并为每个加载的标记显示标签infowindow的地图。 希望检查一个位置是否有可用的街景,我已将我的createMarker修改为:
function createMarker(latlng, name, html) {
//var contentString = html;
var contentString = [
'',
'',
name,
'',
'',
'getPanoramaByLocation使用的Tha回调函数如下所示:
function processSVData(data, status) {
if (status == google.maps.StreetViewStatus.OK) {
google.maps.event.addListener(infowindow, 'domready', function() {
$('#stv-lnk').click(function() {
var panoramaOptions = {
position: data.location.latLng,
visible: true,
linksControl: false,
panControl: false,
addressControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
enableCloseButton: false
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById("stvpano"), panoramaOptions);
inc_map.setStreetView(panorama);
});
});
} else {
google.maps.event.addListener(infowindow, 'domready', function() {
$('#stv-lnk').click(function() {});
document.getElementById("stvpano").innerHTML = "Streetview non è disponibile per questo luogo"
});
}
}
现在,发生的情况是,第一个街景视图选项卡不显示任何内容,而下一个单击的街景视图选项卡显示前一个选项卡的街景视图。 与API文档中的上述示例相比,我为每个选项卡构建了一个单独的StreetViewPanorama对象(而示例使用全局全景变量var来保存它)。 这是我的错误吗? 要么...? 链接在实际页面:http://turom-mice.it/condorincentive/incentive.html
任何帮助/建议非常感谢! 欢呼声,皮疹*
编辑 :好的,我解决了其中一个问题。 我嵌套了太多的eventListener:我删除了函数processSVData中的那些,并且每个infowindow都会显示正确的街景。 代码现在看起来像这样:
function processSVData(data, status) {
if (status == google.maps.StreetViewStatus.OK) {
$('#stv-lnk').click(function() {
var panoramaOptions = {
position: data.location.latLng,
visible: true,
linksControl: false,
panControl: false,
addressControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
enableCloseButton: false
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById("stvpano"), panoramaOptions);
inc_map.setStreetView(panorama);
});
} else {
$('#stv-lnk').click(function() {
inc_map.setStreetView(null);
document.getElementById("stvpano").innerHTML = "Streetview non è disponibile per questo luogo"
});
}
}
现在,问题是'else'分支似乎什么都不做:当一个位置没有可用的街景时,你会看到最后显示的街景,无论我将它设置为null,并在div内放置一些警告文本(我应该显示尽管链接到替代画廊页面)。 问题是:这是正确的吗? 要么...?
像往常一样,任何帮助/提示/建议...
Ciao,皮疹*
编辑2 :好的,完全解决。 else分支没有管理点击事件,因此解决了它。 上面的代码已被编辑以反映解决方案。
无论如何,等待答案让我重新考虑整个事情。 希望这可以对任何人有所帮助。
皮疹*
链接地址: http://www.djcxy.com/p/35855.html上一篇: Check streetview exists when displaying it in infowindow
