2011-05-25 28 views
1

是否有可能以某种方式从相同域中的源中获取KML。我的意思是以某种方式避免“Same origin policy for Javascript”? (我们的服务器上的缓存是不是这样的,因为应用程序是与外部资源工作)如何使用geoXML3从外部网址获取KML?

下面的代码是什么,我们要完成(它给外部KML源的情况下的错误)。

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

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

请问是否有这样的政策是什么原因?由于google.maps.KmlLayer使这种job。不知道如何或我错过了什么。真的需要它与geoxml3并了解幕后的内容!

回答

3

如果您正在访问一个公开的KML你可以简单地加载它作为一个标准的谷歌覆盖

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

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

+0

感谢Michal,我实现了代理技术,即本地域代理通过'file_get_contents($ uri)'提供远程内容。 – Igor 2011-06-15 21:49:15