Как добавить динамический кмл в Google Earth?

Мы пытаемся добавить динамический kml в Google Earth. Но мы терпим неудачу в одной ситуации.

КОД:

var currentKmlObject = null;
function loadkmlGE(){
     if (currentKmlObject != null) {
            ge.getFeatures().removeChild(currentKmlObject);
            currentKmlObject = null;
          }

    var url = 'test.kml';
    google.earth.fetchKml(ge, url, finished);
    }

function finished(kmlObject) {
      if (kmlObject) {
        currentKmlObject = kmlObject;
        ge.getFeatures().appendChild(currentKmlObject);
      } else {
        setTimeout(function() {
          alert('Bad or null KML.');
        }, 0);
      }
    }

Когда мы нажимаем на кнопку, мы звоним loadkmlGE() Мы можем получить kml в первый раз на Google Earth. Если мы нажмем второй раз, то мы не получим kml на Google Earth. Но test.kml Файл обновляет новые значения. Итак, как мы можем удалить kml из Google Earth?

Помощь будет оценена.

1 ответ

Решение

fetchKml Я считаю, использует браузер для получения файла. Обычно он кеширует файл, если не указано иное.

Вы можете настроить сервер так, чтобы он сообщал браузеру, что он не может кэшировать файл - используя заголовки HTTP. зависит от вашего сервера, как настроить это.

... или просто организовать URL-адрес, чтобы изменить каждый раз.

var url = 'test.kml?rnd='+Math.random();

или похожие. Сервер также будет игнорировать фиктивный параметр. Но поскольку URL изменился, браузер не будет иметь кешированной версии.

Другие вопросы по тегам