1

我正在尝试在谷歌地图上加载一个 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 访问,它也可以工作。为了检查它,我打开一个新的选项卡窗口来查看 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();
}
4

1 回答 1

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 中,您可以使用转义对字符串进行 URL 编码

于 2012-11-07T18:21:42.550 回答