【问题标题】:How to get the KML from the external url with geoXML3?如何使用 geoXML3 从外部 url 获取 KML?
【发布时间】:2011-09-01 23:14:05
【问题描述】:

是否有可能以某种方式从同一域的源中获取 KML。我的意思是要以某种方式避免“Same origin policy for Javascript”? (在我们的服务器上缓存不是这种情况,因为该应用程序旨在与外部资源一起使用)

下面的代码是我们想要完成的(它会在外部 kml 源的情况下给出错误)。

<script type="text/javascript">
    var myParser = new geoXML3.parser({afterParse: useTheData});
    myParser.parse('http://api.flickr.com/services/feeds/geo/?g=94823070@N00&lang=en-us&format=kml');

    function useTheData(doc) {
        // out callback
    };
</script>

询问是否有该政策的原因是什么?由于google.maps.KmlLayer 制作这种job。不知道如何或我错过了一些东西。真的需要 geoxml3 并了解幕后的内容!

【问题讨论】:

    标签: javascript xml google-maps kml geo


    【解决方案1】:

    如果您访问的是公开可用的 KML,您只需将其加载为标准的 google 叠加层

    var ctaLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml');
    ctaLayer.setMap(map);
    

    否则,如果您确实需要使用 geoxml,则需要代理 kml 文件(使用将为您加载文件的服务器端脚本)。

    【讨论】:

    • 谢谢 Michal,我已经实现了代理技术,即本地域代理通过 file_get_contents($uri) 提供远程内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2019-11-19
    相关资源
    最近更新 更多