2011-05-25 3 views
1

Est-il possible d'obtenir le KML de la source hors du même domaine. Je veux dire d'éviter le "Same origin policy for Javascript" en quelque sorte? (Mise en cache sur notre serveur est pas le cas puisque l'application est destiné à travailler avec des sources externes)Comment obtenir le fichier KML de l'URL externe avec geoXML3?

Le code ci-dessous est ce que nous essayons d'accomplir (il donne l'erreur dans le cas de la source kml externe).

<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> 

Quelle est la raison de demander si cette politique existe? Depuis google.maps.KmlLayer faire ce genre de job. Je ne sais pas comment ou quelque chose me manque. Vraiment besoin avec geoxml3 et de comprendre ce qui est sous le rideau!

Répondre

3

Si vous accédez à un KML public, vous pouvez simplement le charger comme une superposition standard Google

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

Sinon, si vous avez vraiment besoin d'utiliser GeoXml vous devrez proxy le fichier kml (utilisez un côté serveur script qui va charger le fichier pour vous).

+0

Merci Michal, j'ai implémenté la technique de proxy, c'est le proxy de domaine local qui sert le contenu distant via 'file_get_contents ($ uri)'. – Igor

Questions connexes