为什么这个 KmlLayer 示例在我的服务器上不起作用?

问题描述

我已经在我的网站上使用了谷歌地图(也有不同的主机)或几年。 今天由于某种原因他们停止工作了。

我曾经/正在使用此页面作为基础: https://developers.google.com/maps/documentation/javascript/examples/layer-kml

问题是当我复制该 HTML 并按原样上传到我的服务器时,它工作正常。 但是,当我下载 KML 文件 (https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml) 并将其上传到我的服务器并更改 html 以反映它时,它不起作用。

我在 2 个不同的服务器上尝试过。

更新:

http://www.feztravel.com/testMap1.asp
上面提到的例子的直接副本,它有效

http://www.feztravel.com/testMap2.asp 唯一的区别是我的主机服务器上的 cta.kml 文件

同样,我有权访问的两台服务器在 2 天前都在工作。

解决方法

我在 https://www.feztravel.com/cta.kml 上收到 404 错误。

如果该文件确实在服务器上,则服务器配置不正确。

您可以尝试在服务器和引用它的页面中将其重命名为 cta.xml

that link 上的错误消息解释了该问题:

HTTP Error 404.3 - Not Found
The page you are requesting cannot be served because of the extension configuration. 
If the page is a script,add a handler. If the file should be downloaded,add a MIME map.

the documentation

为什么我的 KML 文件不能从我的网络服务器正确下载?
必须告知 Web 服务器它们提供的文件类型。某些浏览器(例如 Firefox)会猜测文件类型。其他的,例如 Internet Explorer,依赖于网络服务器的 MIME 类型设置。

对于 Apache 服务器,您可以在 httpd.conf 中包含这两行:

AddType 应用程序/vnd.google-earth.kml+xml .kml

 AddType application/vnd.google-earth.kmz .kmz

对于 Microsoft 的 Internet Information Server,您应遵循以下说明:

IIS 6.0 版:

http://support.microsoft.com/kb/326965 IIS 4.0 和 5.0:

http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx
如果您管理自己的网络服务器,则必须更改自己的配置。
否则,请联系您的网站托管服务并要求他们进行这些更改。

还有:Google Maps KML Layer won't read kml

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...