按照这个例子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 分支没有管理单击事件,因此将其放回原处即可解决。上面的代码已经过编辑以反映解决方案。
无论如何,谢谢,等待答案让我重新思考整个事情。希望这可以对任何人有所帮助。
皮疹*