创建KML文件的下载要在不创建KML后端服务器组件来创建完全在浏览器中运行的Web应用程序上的即时使用谷歌地球API,其中点击“下载”按钮启动网页浏览器的正常内容下载功能会提示保存与.KML扩展名的文件或者通过KML MIME类型的方式自动启动谷歌地球。允许从JavaScript和谷歌地球API
我可以构建一个“数据:” URL激活下载使用谷歌地球API在JavaScript创建KML文件,但在Chrome这只作品。部分在FireFox中工作,但以“.part”文件扩展名保存,因此用户必须明确重命名要在Google地球中打开的文件。 IE完全忽略了这一点。例如,IE 9不支持Javascript生成的文件下载。我正在寻找一款至少具有Chrome + FireFox + IE的跨浏览器解决方案。
<script type="text/javascript">
var ge;
var placemark;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCallback, failureCallback);
}
... some code to create some KmlObject
function download() {
// serialize as KML text to export
var placemarkText = placemark.getKml();
if (placemarkText) {
var uriContent = "data:application/vnd.google-earth.kml+xml;charset=UTF-8," +
encodeURIComponent(placemarkText);
window.open(uriContent, 'KML Download');
}
}
</script>
</head>
<body onload="init()" style="font-family: arial, sans-serif; font-size: 13px; border: 0;">
<INPUT TYPE="button" NAME="button2" Value="Download KML" onClick="javascript:download()">
<div id="map3d" style="width: 600px; height: 380px;"></div>
</body>
</html>
我见过的黑客与http://code.google.com/p/download-data-uri/,但只适用于Chrome所以这不是一个可行的解决方案。
的[在内存中创建一个文件供用户下载,而不是通过服务器]可能重复(http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-下载 - 不通过服务器) – Fraser