Refre sh KML файл хранится в Документах Google - PullRequest
0 голосов
/ 07 января 2020

Я экспериментирую с сетевым подключением к сетевому способу обновления файла * stati c kml. В настоящее время я вытягиваю KML, который дает все местоположения буев, прямо из NOAA через https://www.ndbc.noaa.gov/kml/marineobs_by_owner.kml

Однако я знаю, что этот файл имеет статус c, хотя сам KML имеет 30-минутный рефр sh интервал в нем.

Я написал файл XML, основанный на информации, полученной на этом форуме, для использования сетевых ссылок, чтобы попытаться обновить sh kml, но мог бы воспользоваться небольшой помощью. Сначала я написал файл KML и назвал его update.kml, используя пространство имен http://earth.google.com/kml/2.0 со ссылкой на файл KML, предоставленный NOAA.

Updating.kml

<?xml version="1.0" encoding="UTF-8"?>
     <kml xmlns="http://earth.google.com/kml/2.0">
     <Document>
     <NetworkLink>
     <Link> <href>https://www.ndbc.noaa.gov/kml/marineobs_by_owner.kml</href>
      <refreshMode>onInterval</refreshMode>
      <refreshInterval>1800</refreshInterval>
     </Link>
     <name>SaltWx</name>
      <open>1</open>
    <visibility>1</visibility>
    </NetworkLink>
   </Document>
</kml>

Затем я загрузил файл в Google Docs, который дал мне URL-адрес https://docs.google.com/uc?id=1YkJAGSHCQdxbLn-JyI7Jgz5ZV-0sFqIM Я вставил этот URL-адрес во вторую сетевую ссылку XML с именем networklink.kml, используя то же пространство имен Google.

networklink.kml

<?xml version="1.0" encoding="UTF-8"?>
  <kml xmlns="http://earth.google.com/kml/2.0">
  <Document>
  <NetworkLink>
    <Link>
    <href>https://docs.google.com/uc?id=1YkJAGSHCQdxbLn-JyI7Jgz5ZV-0sFqIM</href>
    <refreshMode>onInterval</refreshMode>
     <refreshInterval>1800</refreshInterval>
    </Link>
    <name>SaltWx</name>
    <open>1</open>
    <visibility>1</visibility>
  </NetworkLink>
  </Document>
</kml>

Затем я загрузил файл networklink.kml в документы Google и сослался на его ссылку в HTML

HTML

<script>

  function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 6,
      streetViewControl: false,
      mapTypeId: 'satellite',
      center: {lat: 40.248, lng: -73.580},
      disableDefaultUI: true
    });

   var ctaLayer = new google.maps.KmlLayer({
      url: 'https://docs.google.com/uc?id=1a7J3iBBBKzHE0oEG7-EsWaDy-Mxde9dz&amp;export=kml',
      preserveViewport:true,
      map: map
    });

  }
</script>

К сожалению, это не сработало, так как слой не появился, поэтому я надеюсь, что более опытные, чем я, могут предложить некоторые предложения. Возможно, это пространство имен, но я не знаю.

...