Reputation: 133
For some reason I can not get geoxml3 to load my KML file. I've tried using a publicly available URL for the file, and a local reference to the file in Chrome, Safari and Firefox all with no effect. When I use Chrome, I get a console message that says
Unable to retrieve file.
My code is very simple:
function initialize() {
var infowindow = new google.maps.InfoWindow({size: new google.maps.Size(150,50) });
var map_canvas = document.getElementById('map_canvas');
var center = new google.maps.LatLng(53, -88);
var map_options = {
center: center,
zoom: 4,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(map_canvas, map_options);
var myParser = new geoXML3.parser({map: map, singleInfoWindow: true});
myParser.parse('https://sites.google.com/site/.../home/kml-files/ontario_regions_yan_1.kml');
}
I've tried all the various solutions offered in other questions but have been unable to get the file to load! Is there something simple I'm missing?
Upvotes: 1
Views: 2434
Reputation: 133
It turns out that unfortunately I didn't have the correct version of geoxml3.js. I downloaded the file from the polys branch and everything works perfectly.
Upvotes: 4
Reputation: 161334
geoxml3 uses xmlHttpRequest to retrieve the KML, xmlHttpRequest has a same domain restriction. The KML needs to be in the same domain as the page which is loading it or be loaded through a proxy which is in the same domain as the page which is loading it.
SO question - xmlHttpRequest and cross-site restriction
your KML on geocodezip.com through a proxy
KmlLayer doesn't have that restriction (google server is loading the KML directly)
The domain needs to be the same. Relative URLs ensure that. Trying to load something from http://geocodezip.com
on a page on http://www.geocodezip.com
won't work:
geocodezip.com
and www.geocodezip.com
are different domains (no matter how similar they may look). A relative path is relative to where the page is being served from (not the geoxml3.js script)
Upvotes: 3