Как преобразовать файл KML в API Google Планета Земля на моем веб-сайте?

Я создал файл KML и хочу представить его в API Google Планета Земля на своем веб-сайте. Я просмотрел игровую площадку кода Google.

но я не знаю, какой из них следует использовать для синтаксического анализа KML в API Google Планета Земля. Это ссылка на файл KML, который я создал: http://g.co/maps/6zp5a

Кто-нибудь может помочь, пожалуйста?


person hash__x    schedule 30.04.2012    source источник


Ответы (2)


Вместо этого вы должны использовать fetchKml.

http://code.google.com/apis/ajax/playground/?exp=earth#fetch_good_kml

Вам также необходимо указать действительный URL-адрес, поэтому вместо «короткого» URL-адреса вам нужно использовать полный и добавить «& output = kml» в конец.

http://maps.google.com/maps/ms?msid=201182140457027399871.0004bee0c7348bce68977&msa=0&ll=9.438,39.5105&spn=130.55749,316.054688&output=kml

поместите этот URL-адрес в образец кодовой страницы и запустите его, он работает

person lifeIsGood    schedule 30.04.2012
comment
Благодарим за ваше предложение! Я пробовал, но он не показывает ни одной точки. Вы видели какие-либо цветные точки на API, когда запускали его? Также я видел, что есть еще один файл KML (интерактивный). Я попытался ввести указанный выше URL-адрес в поле, но он также не работает. - person hash__x; 01.05.2012
comment
Я поместил URL-адрес, который я дал вам (с &output=kml в конце), как в обычном, так и в интерактивном примерах. Оба загружают метки для меня. вам нужно вручную переместить представление, чтобы вы могли их увидеть, но с дополнительным кодированием вы можете загрузить страницу и установить свое собственное представление. - person lifeIsGood; 02.05.2012

Ниже представлена ​​демонстрация «Hello Earth» с функцией извлечения для вашего файла kml. Вам, скорее всего, придется стилизовать значки в вашем kml, чтобы использовать синие лепестки.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <head>
<!--
Copyright 2008 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
    <title>Hello Google Earth!</title>
    <script src="http://www.google.com/jsapi"></script>
    <script>
google.load("earth", "1");

var ge = null;

function init() {
  google.earth.createInstance("map3d", initCallback, failureCallback);
}

function initCallback(object) {
  ge = object;
  ge.getWindow().setVisibility(true);
  function finished(object) {
    if (!object) {
      // wrap alerts in API callbacks and event handlers
      // in a setTimeout to prevent deadlock in some browsers
      setTimeout(function() {
        alert('Bad or null KML.');
      }, 0);
      return;
    }
    ge.getFeatures().appendChild(object);
  }
  // fetch the KML
  var url = 'http://maps.google.com/maps/ms?ie=UTF8&authuser=0&msa=0&output=kml&msid=201182140457027399871.0004bee0c7348bce68977';
  google.earth.fetchKml(ge, url, finished);

  document.getElementById('installed-plugin-version').innerHTML =
    ge.getPluginVersion().toString();
}

function failureCallback(errorCode) {
}
  </script>
  </head>
  <body onload='init()' id='body'>
    <center>
      <div>
        Hello, Earth!
      </div>
      <div id='map3d' align="left" style='border: 1px solid silver; height: 600px; width: 800px;'></div>
    </center>
  </body>
</html>
person jwilliams    schedule 02.05.2012
comment
Большое тебе спасибо! Точки видны, а круги нет. - person hash__x; 07.05.2012
comment
Вот рестайлинговый кмл с синими подрулевыми лепестками. Вы должны просто заменить URL-адрес этим (maps.google.com/maps/) - person jwilliams; 07.05.2012