我很难让 Google Maps V3 中的信息窗口按照我想要的方式工作。
- 场景:-我正在旧金山的地铁系统和谷歌地图之间创建一个混搭。在一种功能中,当用户选择路线时,标记(代表车站)会覆盖在地图上。单击标记时,将打开一个信息窗口,其中将显示车站名称、路线名称(以该路线的颜色作为背景)和一个无边框表格,其中将包含该特定车站的列车运动的 ETD 时间(基本上,只是“分钟”,直到开往特定目的地的火车离开)。显然,当用户点击不同的标记时,该站的相应数据会反映在信息窗口上。
返回 JSON 格式 ETD 数据的服务器端脚本都可以正常工作,我正在接收我想要的数据。
- 问题:-我无法正确地将 ETD 数据“注入”到我的信息窗口中,我想以漂亮的表格格式显示它,但由于某种原因,所有 ETD 数据都没有注入到表中,而是溢出到桌子外面。
我真的很感激任何建议、帮助等。
谢谢,
-Soumya Roy
代码:-
function drawinfo(mark,abbr,name) {
var infowindow=new google.maps.InfoWindow();
var strContent="<div style=\"width:400px;height:240px;\">
<div style=\"font-weight:bold;padding:0.5em;\"><p>Station:"+name+"</p></div><br/>
<div style=\"margin-top:0.3em;background-color:"+Clr+";float:left;font-size:0.8em;
font-weight:bold;\"><p>Route:"+Rt+"</p></div><div style=\"float:right;\">
<table style=\"border:0;color:#666;\"><tr><td>Departures</td></tr>"; //Until here the infowindow shows properly.
$.getJSON("getetd.php",{abbr:abbr},function(result) {
$.each(result,function(key,value) {
$.each(this,function(k,v) {
strContent+="<tr><td>|"+k+"</td>"; //The actual JSON data is being received properly.
$.each(this,function(k2,v2) {
$.each(this,function(k3,v3) {
strContent+="<td>"+v3+"</td>"; //Neither "k" nor "v3" get injected.
});
});
strContent+="</tr>";
});
});
}); //getJSON() ends
strContent+="</table></div></div>";
google.maps.event.addListener(mark,'click',function(){
infowindow.close(); // So as to close any other infowindow.
infowindow.setContent(strContent);
infowindow.open(map,mark);
}); //addListener() ends.
} //drawinfo() ends.