1

Googleマップに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

URLにスペースがあります:

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 に答える