我正在尝试在谷歌地图上加载kml,但我无法做到。我在点击事件后加载kml,然后调用包含url的函数:
function LoadRoute(latlng, param1, param2, param3) {
var georssLayer = new google.maps.KmlLayer('http://myserver.net/kmls/file.asp?id='+param1+'&date='+param2+' 00:00:00&EndDate='+param3+' 23:59:59');
georssLayer.setMap(map);
}
上面的代码没有加载kml,但另一方面,如果我加载直接下载的相同文件,我的意思是这样:
function LoadRoute(latlng, param1, param2, param3) {
var georssLayer = new google.maps.KmlLayer('http://myserver.net/kmls/file.kml');
georssLayer.setMap(map);
}
有谁知道会发生什么?我认为这是关于参数语法。无论如何,如果我创建另一个包含上述url的函数来检查它是否可以被url访问,它也可以。为了检查它,我打开一个新的选项卡窗口,看看网址是否格式正确,结果是该文件已被下载。
function open_in_new_tab(latlng, param1, param2, param3)
{
window.open('http://myserver.net/kmls/file.asp?id='+param1+'&date='+param2+' 00:00:00&EndDate='+param3+' 23:59:59', '_blank');
window.focus();
}
答案 0 :(得分:1)
您的网址中有空格:
var georssLayer = new google.maps.KmlLayer('http://myserver.net/kmls/file.asp?id='+param1+'&date='+param2+' 00:00:00&EndDate='+param3+' 23:59:59');
这意味着它必须是urlencoded
在javascript中,您可以使用escape
对字符串进行网址编码