KMZ слой не отображается при использовании на другом сайте

Таким образом, у меня есть слой KMZ, отображаемый на моем веб-сайте, но больше нигде не будет отображаться.
Это мой Javascript:

function getBaseUrl() {
    var e = RegExp(/^.*//);
    return e.exec(window.location.href);
}

function initialize() {
    function e() {
        navigator.geolocation.getCurrentPosition(function(e) {
            var o = new google.maps.LatLng(e.coords.latitude, e.coords.longitude);
            p ? p.setPosition(o) : p = new google.maps.Marker({
                position: o,
                icon: "http://i.imgur.com/1VTzeOS.png",
                map: map
            }), map.setCenter(t);
        }), setTimeout(e, 3e5);
    }
    var o = new google.maps.LatLng(42.449686, -71.230919), t = o, a = {
        zoom: 12,
        center: o,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), a), geoXml = new geoXML3.parser({
        map: map,
        singleInfoWindow: !0,
        zoom: !1
    }), geoXml.parseKmlString(kmlData);
    for (var n = {
        path: "M 0,-1 0,1",
        strokeOpacity: 1,
        scale: 2.5,
        preserveViewport: !0
    }, i = 0; i < geoXml.docs[0].gpolylines.length; i++) geoXml.docs[0].gpolylines[i].setOptions({
        strokeOpacity: 1,
        strokeWeight: 1,
        zoom: !1,
        icons: [ {
            icon: n,
            offset: "0",
            repeat: "1px"
        } ]
    });
    var r = new google.maps.KmlLayer({
        url: parent + "parking2.kmz",
        strokeWeight: 20,
        strokeOpacity: 0,
        preserveViewport: !0
    });
    r.setMap(map);
    var p = (new google.maps.InfoWindow({
        content: "You are here!"
    }), null);
    e();
}

var parent = getBaseUrl();

google.maps.event.addDomListener(window, "load", initialize);

Паркинг2.слой kmz не будет отображаться, например, на 127.0.0.1 / localhost с xampp или at http://example.com/test/map.html . Однако это будет показано на http://example.com/map.html . Есть идеи?

1 ответ

  1. Geoxml3 использует объект xmlHttpRequest для получения KML / KMZ. Это подчиняется той же политике происхождения. Доступ к KML/KMZ возможен только из одного домена. Относительные URL-адреса должны работать или вы можете использовать прокси для доступа к данным в других доменах.

    google.maps.KmlLayer может отображать только общедоступные KML/KMZ (KML/KMZ, которые могут получить доступ к серверам Google), поэтому не будет работать с localhost (127.0.0.1 / localhost).

    из документации:

    Слои KML и GeoRSS
    : Общее представление

    Google Maps JavaScript API поддерживает форматы данных KML и GeoRSS для отображения географической информации. Эти форматы данных отображаются на карте с помощью объекта KmlLayer, конструктор которого принимает URL общедоступного файла KML или GeoRSS.

    Похожие:
    XML подчиняется той же политике домена в JavaScript при использовании XMLHttpRequest