Javascript 无法加载本地服务器中的kml文件?

Javascript 无法加载本地服务器中的kml文件?,javascript,google-maps,google-maps-api-3,google-maps-markers,kml,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,Kml,试图在我的应用程序中加载以下KML文件。我可以从浏览器本身访问该文件。但该文件不会在谷歌地图中呈现。试图检查KML层状态,得到一个奇怪的结果,即未定义。我不知道我错过了什么。请帮助我学习有关谷歌地图KML层 有趣的事实: 如果我使用了谷歌的Kml url,那么谷歌地图中已经呈现了Kml层。我不知道谷歌地图为什么从谷歌服务器渲染KML层。以及为什么不从我的服务器渲染KML层。但我确信没有任何东西阻止我的KML文件。如果我在浏览器中点击了URL。我可以查看文件。所以没有任何东西阻止该文件。但是我不知

试图在我的应用程序中加载以下KML文件。我可以从浏览器本身访问该文件。但该文件不会在谷歌地图中呈现。试图检查KML层状态,得到一个奇怪的结果,即未定义。我不知道我错过了什么。请帮助我学习有关谷歌地图KML层

有趣的事实: 如果我使用了谷歌的Kml url,那么谷歌地图中已经呈现了Kml层。我不知道谷歌地图为什么从谷歌服务器渲染KML层。以及为什么不从我的服务器渲染KML层。但我确信没有任何东西阻止我的KML文件。如果我在浏览器中点击了URL。我可以查看文件。所以没有任何东西阻止该文件。但是我不知道为什么我不能加载我的kml文件

KML文件:

**特别提示:** 当检查谷歌链接的响应时,我得到了以下信息

 _xdc_._nox6ih && _xdc_._nox6ih( [0,"kml:cOyYrFGigX5u4USCpzso8ggEWKR7NP4TNfjRaORI","|ks:;dc:tb;ts:46343661|kv:3|api:3",["Chicago Transit Map","Chicago Transit Authority train lines","Chicago Transit Authority train lines"],[[41.721877,-87.8929],[42.072787,-87.606048]],[["gfd29185067c55f5f"],["g5e295bda04f08836"],["ga24949030bee7e8c"],["g55e98e4a4c0ba15f"],["g51d583df1e7a5451"],["g72b37441838ae58e"],["g4da782bd5142613c"],["ge63204f1f8e4087a"]],1,[["client","2"]],42,[["ks",";dc:tb;ts:46343661"],["kv","3"],["api","3"]]] )
_xdc_._ghavva && _xdc_._ghavva( [0,null,null,null,null,null,4,[["client","2"]]] )
当我再次检查服务器的响应时,我得到了以下信息

 _xdc_._nox6ih && _xdc_._nox6ih( [0,"kml:cOyYrFGigX5u4USCpzso8ggEWKR7NP4TNfjRaORI","|ks:;dc:tb;ts:46343661|kv:3|api:3",["Chicago Transit Map","Chicago Transit Authority train lines","Chicago Transit Authority train lines"],[[41.721877,-87.8929],[42.072787,-87.606048]],[["gfd29185067c55f5f"],["g5e295bda04f08836"],["ga24949030bee7e8c"],["g55e98e4a4c0ba15f"],["g51d583df1e7a5451"],["g72b37441838ae58e"],["g4da782bd5142613c"],["ge63204f1f8e4087a"]],1,[["client","2"]],42,[["ks",";dc:tb;ts:46343661"],["kv","3"],["api","3"]]] )
_xdc_._ghavva && _xdc_._ghavva( [0,null,null,null,null,null,4,[["client","2"]]] )

我不知道为什么我的回答是空的。我相信由于响应为空,google maps无法呈现KML文件。

您是否在服务器上添加了KML的mime类型

尝试将以下内容添加到.htaccess文件:

AddType application/vnd.google-earth.kml+xml    kml
AddType application/vnd.google-earth.kmz        kmz

通过解析库解决了这个问题

将kml文件更改为xml文件。并使用geoxml3库解析xml文件。现在我可以在我的应用程序中加载KML文件了

下面是我解析的脚本

var geoXml = new geoXML3.parser({
     map: map,
     singleInfoWindow: true
     });
geoXml.parse('polygon.xml');
暗示
我不知道这是不是一个工作环境。但它解决了我的问题。请根据您的宝贵意见指导我是否正确。

我正在使用JBoss作为服务器。你能在JBoss服务器上和我分享一下.htaccess的文件名吗?啊,对不起,我只使用过Apache服务器。本页在第3篇文章中为您提供了一个可能的解决方案,但是它是从2009年开始的,可能已经过时。祝你好运谢谢你的回复。我在按照你的方式工作。如果我已经解决了这个问题,我会发布一次结果。在IIS中托管时,您必须手动添加这些MIME类型才能使本地KMZ文件正常工作。因此没有任何东西会阻止该文件。您如何确定?该文件必须对所有人公开。当您能够从计算机加载此文件时,并不意味着每个人都可以访问此文件。检查您的防火墙设置,通常防火墙应该阻止此类请求,但可能允许它们来自您自己的网络