2011-05-25 26 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