2

我花了好几个小时试图弄清楚如何自定义谷歌纵横徽章公共提要。问题在于它是来自谷歌的预定义 KML 文件,无法更改。我想出的是使用一点 PHP 提取坐标并将它们加载到我自己的 KML 文件中,该文件由我自己的网络服务器提供(我假设是公共访问)。

这可行,但我面临的最新问题是,当我重新加载页面时,我对 KML(Ballonstyle 等)所做的样式更改没有反映出来。我正在使用以下 Javascript 加载地图和叠加层:

var map;
var src = 'https://myip/kml/kmlfile.kml
    function initialize() {
      map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: new google.maps.LatLng(-19.257753, 146.823688),
        zoom: 2,
        mapTypeId: google.maps.MapTypeId.TERRAIN
      });
      loadKmlLayer(src, map);
    }

    function loadKmlLayer(src, map) {
      var kmlLayer = new google.maps.KmlLayer(src, {
        suppressInfoWindows: true,
        preserveViewport: false,
        map: map
      });
    }

KML 文件是由 PHP 脚本编写的文件,它从纬度提要中获取最新的一组坐标。

现在这是真正奇怪的一点。为了尝试诊断问题,我从我的服务器中删除了 kml 文件....但是地图仍然加载并且似乎使用了许多迭代前的旧样式。当'src'位置甚至不存在kml文件时,我对javascript如何加载地图感到非常困惑!?!这是缓存问题吗?

我最初在谷歌网站上有 kml 文件,但它不是一个可写的位置,所以我把它从那里移到了我自己的网络服务器上。事实上,我已经从谷歌网站和我的网络服务器上删除了所有旧的 kml 文件,但地图和样式仍然像魔法一样继续加载!

我会感谢任何能够帮助我诊断这个奇怪问题的 KML 专家。

4

0 回答 0