按照这个例子http://www.keypointpartners.com/test/mab/fromxml1.html和 Google Maps API v3 文档 (https://developers.google.com/maps/documentation/javascript/streetview) 我把从 XML 文件加载标记并为每个加载的标记显示选项卡式信息窗口的地图。为了检查一个位置是否真的有街景可用,我将我的 createMarker 修改为:
函数 createMarker(latlng, 名称, html) { //var contentString = html; 变量内容字符串 = [ '', '', 姓名, '', '', '
getPanoramaByLocation 使用的 Tha 回调函数如下:
函数processSVData(数据,状态){ 如果(状态 == google.maps.StreetViewStatus.OK){ google.maps.event.addListener(infowindow, 'domready', function() { $('#stv-lnk').click(function() { var 全景选项 = { 位置:data.location.latLng, 可见:真实, 链接控制:假, 泛控制:假, 地址控制:假, 缩放控制选项:{ 风格:google.maps.ZoomControlStyle.SMALL }, 启用关闭按钮:假 }; var 全景图 = 新 google.maps.StreetViewPanorama(document.getElementById(“stvpano”),panoramaOptions); inc_map.setStreetView(全景); }); }); } 别的 { google.maps.event.addListener(infowindow, 'domready', function() { $('#stv-lnk').click(function() {}); document.getElementById("stvpano").innerHTML = "Streetview non è disponibile per questo luogo" }); } }
现在,发生的情况是第一个街景选项卡不显示任何内容,而下一个单击的街景选项卡显示前一个选项卡的街景。与 API 文档中的上述示例相比,我为每个选项卡构建了一个单独的 StreetViewPanorama 对象(而该示例使用全局全景变量来保存它)。这是我的错吗?或者...?实际页面链接: http: //turom-mice.it/condorincentive/incentive.html
非常感谢任何帮助/建议!干杯,皮疹*
编辑:好的,我解决了其中一个问题。我嵌套了太多 eventListener:我删除了函数 processSVData 中的那些,现在每个 infowindow 都显示正确的街景。代码现在如下所示:
函数processSVData(数据,状态){ 如果(状态 == google.maps.StreetViewStatus.OK){ $('#stv-lnk').click(function() { var 全景选项 = { 位置:data.location.latLng, 可见:真实, 链接控制:假, 泛控制:假, 地址控制:真, 缩放控制选项:{ 风格:google.maps.ZoomControlStyle.SMALL }, 启用关闭按钮:假 }; var 全景图 = 新 google.maps.StreetViewPanorama(document.getElementById(“stvpano”),panoramaOptions); inc_map.setStreetView(全景); }); } 别的 { $('#stv-lnk').click(function() { inc_map.setStreetView(null); document.getElementById("stvpano").innerHTML = "Streetview non è disponibile per questo luogo" }); } }
现在,问题是“else”分支似乎什么都不做:当一个位置没有可用的街景时,你会看到最后显示的街景,无论我是否将其设置为 null 并在 div 中放置一些警告文本(我应该显示虽然链接到替代画廊页面)。问题是:这是正确的吗?或者...?
像往常一样,任何帮助/提示/建议......
Ciao,皮疹*
编辑2:好的,完全解决了。else 分支没有管理单击事件,因此将其放回原处即可解决。上面的代码已经过编辑以反映解决方案。
无论如何,谢谢,等待答案让我重新思考整个事情。希望这可以对任何人有所帮助。
皮疹*