遵循此示例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使用的回调函数如下:
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 now显示正确的streetview。代码现在看起来像这样:
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中放入一些警告文本(我应该显示一个替代画廊页面的链接)。问题是:这是对的吗?还是...?
像往常一样,任何帮助/提示/建议......
侨, 皮疹*
编辑2 :好的,完全解决了。 else分支没有管理click事件,因此将其重新置于原位解决了。上面的代码已经过编辑以反映解决方案。
非常感谢,等待回答让我重新思考整件事。希望这对任何人都有帮助。
疹*