Javascript 谷歌地图街景仅第一次显示
我有一个谷歌地图页面,上面有来自数据库的标记。在marker信息窗口中有一个可单击的链接,该链接打开一个jquery对话框,其中包含位置的街景。 问题是,街景只在我第一次点击信息窗口链接时显示。如果我关闭对话框并再次尝试打开它(单击其他信息窗口,甚至再次单击同一个信息窗口),我会得到带有街景控件的对话框,新地址也会显示出来(带有“地址是近似值”),但对话框的其余部分是统一的浅灰色 我试过在stackoverflow上发布一些warkarounds(如),但灰色对话框仍然存在 编辑: 使用onclick侦听器创建标记:Javascript 谷歌地图街景仅第一次显示,javascript,jquery-ui,google-maps-api-3,Javascript,Jquery Ui,Google Maps Api 3,我有一个谷歌地图页面,上面有来自数据库的标记。在marker信息窗口中有一个可单击的链接,该链接打开一个jquery对话框,其中包含位置的街景。 问题是,街景只在我第一次点击信息窗口链接时显示。如果我关闭对话框并再次尝试打开它(单击其他信息窗口,甚至再次单击同一个信息窗口),我会得到带有街景控件的对话框,新地址也会显示出来(带有“地址是近似值”),但对话框的其余部分是统一的浅灰色 我试过在stackoverflow上发布一些warkarounds(如),但灰色对话框仍然存在 编辑: 使用oncl
function addMarker(feature) {
var marker = new google.maps.Marker({
position: feature.position,
icon: icons[feature.type].icon,
map: map
});
//Create Infowindow
var infowindow = new google.maps.InfoWindow();
var content = '<h1 id="Heading" class="Heading">' + feature.shopName + '</h1>' +
'<div id="iwcontent" class="iwcontent">'+
'<p><b>Naslov : </b>' + feature.shopAddress + '</br>' +
'<p><b>Telefon : </b>' + feature.shopTel + '</br>' +
'</div>'+
'<div id="iwsw" class="iwsw">StreetView</div>'
;
//Call StreetView
google.maps.event.addDomListener(infowindow, 'domready', function () {
$('.iwsw').click(function () {
showStreetView(feature.position);
});
});
.
.
.
对话框定义:
$(function(){
$('#dialog-sw-canvas').dialog({
title: 'Street View',
width: 1024,
height: 768,
closed: true,
cache: false,
modal: true,
onClose: function(){
$('#dialog-sw-canvas').empty();
}
});
});
一切都像一个魔咒,但只有一次。打开对话框后触发全景图的调整大小事件,然后API将能够重新计算全景图的大小:
//Display dialog with streetview
function showStreetView(position){
var panoramaOptions = {position: position, pov: {heading: 34,pitch: 10}};
var panorama = new google.maps
.StreetViewPanorama(document.getElementById("dialog-sw-canvas"), panoramaOptions);
map.setStreetView(panorama);
$( "#dialog-sw-canvas" ).dialog("open");
google.maps.event.trigger(panorama,'resize');
}
打开对话框后触发全景图的调整大小事件,然后API将能够重新计算全景图的大小:
//Display dialog with streetview
function showStreetView(position){
var panoramaOptions = {position: position, pov: {heading: 34,pitch: 10}};
var panorama = new google.maps
.StreetViewPanorama(document.getElementById("dialog-sw-canvas"), panoramaOptions);
map.setStreetView(panorama);
$( "#dialog-sw-canvas" ).dialog("open");
google.maps.event.trigger(panorama,'resize');
}
我对你的代码没有问题。你能提供一个展示问题的演示吗?如果你在全景选项中添加
visible:true
?尽管这可能很愚蠢,但我不会放弃它。@amenadiel尝试过,但遗憾的是,结果是失败的same@Dr.Molle我已经将基本代码与mysql/framework解耦,并且可以在这里使用:我对您的代码没有任何问题。你能提供一个展示问题的演示吗?如果你在全景选项中添加visible:true
?尽管这可能很愚蠢,但我不会放弃它。@amenadiel尝试过,但遗憾的是,结果是失败的same@Dr.Molle我已经从mysql/framework中解耦了基本代码,它在这里可用:棒极了。很有魅力。太棒了,我从没想过!我使用的是一个基础对话框,必须把它放在一个超时的时间上,例如:<代码> StimeTimeOutin(函数){谷歌.MMAP.Engult.Cut发器(全景,“ResiSe”);},1000);代码>好的解决方案+1我们很好。很有魅力。太棒了,我从没想过!我使用的是一个基础对话框,必须把它放在一个超时的时间上,例如:<代码> StimeTimeOutin(函数){谷歌.MMAP.Engult.Cut发器(全景,“ResiSe”);},1000);代码>好的解决方案+1.