在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