Google Maps API, используя файл KML, карта пуста - PullRequest
0 голосов
/ 04 марта 2011

следующий код в моем KML показывает серую карту:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
    <name>test.kml</name>

    <Placemark>
            <name>Cha Boutique</name>
            <description>
                <![CDATA[
                    9666 Clayton Rd.<br />
                    Ladue, MO 63124<br />
                    Phone: 314-993-8080
                ]]>
            </description>
            <Point>
                <coordinates>38.638428,-90.389736</coordinates>
            </Point>
        </Placemark>

    </Document>
</kml>

Но этот код успешно показывает маркер:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>

        <name>test.kml</name>

<Placemark>
    <name>Yahoo! Inc.</name>
    <description><![CDATA[
      Yahoo! Inc.<br />
      701 First Avenue<br />
      Sunnyvale, CA 94089<br />
      Tel: (408) 349-3300<br />
      Fax: (408) 349-3301<br />
      <p>Home page: <a href="http://yahoo.com">http://yahoo.com</a></p>
      ]]>
    </description>
    <Point>
      <coordinates>-122.0250403,37.4163228</coordinates>
    </Point>
  </Placemark>

    </Document>
</kml>

Javascript, который создает карту:

Event.observe(window, 'load', function()
{
var chicago = new google.maps.LatLng(41.875696,-87.624207);
  var myOptions = {
    zoom: 11,
    center: chicago,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var ctaLayer = new google.maps.KmlLayer('http://www.domain.com/test.kml');
  ctaLayer.setMap(map);
});

Кто-нибудь знает, что мне здесь не хватает?Если вы думаете, что это должно сработать, то мне нужно начать смотреть на другие вещи на сайте, которые могут повлиять на это, но для меня замена маркеров KML не должна быть фактором, работает ли он или нет, если у меня нетнекоторая ошибка.

Спасибо за любую помощь!

-Ryan

Ответы [ 3 ]

2 голосов
/ 04 марта 2011

Что значит никогда не доверять пользовательскому вводу?

Оказывается, координаты поменялись местами.Они пришли прямо из Google Maps после того, как адрес был введен (из их URL), но, похоже, они нужны в KML-файле в обратном порядке.

Урок хорошо усвоен:)

-Ryan

1 голос
/ 26 мая 2011

Для нового google.maps.KmlLayer () требуется полное доменное имя. Например: http://localhost не может использоваться.

1 голос
/ 04 марта 2011

Вы проверяли, загружается ли kml в Google Maps?

Если вы зайдете на maps.google.com, там должна быть ссылка my maps (слева), которая позволяет импортировать файл KML. Если он загрузится, я начну смотреть на ваш код, если нет, то это может быть проблема с самим файлом KML.

Редактировать: Я пытался загрузить файлы kml, и это, кажется, вызывает зависание моих карт Google с помощью Chrome, поэтому я не могу точно сказать, является ли это kml или нет, но для меня это выглядит как правильно сформированный XML файл.

...