Карты Google не показывают синие маркеры местоположения (при использовании на сайте Sitecore) - PullRequest
1 голос
/ 17 ноября 2011

Мои карты Google настроены на отображение синих маркеров местоположения.

В моих картах используется следующий файл .kml ( только данные XML, описывающие места для отображения синих маркеров местоположения с помощью API Карт Google ), которые я загружаю с простым старым объектом XMLHttpRequest.

Моя проблема заключается в том, что когда я загружаю файл .kml из внешнего источника, такого как "http://xyz.com/kumedplaces.kml",, он работает, но когда я сохраняю его и пытаюсь загрузить его с локального сервера, на котором работает мой сайт sitecore,Google Map Object не загружает / не показывает синие маркеры местоположения на карте.

Ниже описано, что я делаю в своем файле .js после загрузки адресов из файла .kml:

 <div id="map" style="width: 400px; height: 300px"></div>

    var kmlUrl = "http://xyz.com/kumedplaces.kml";  works
    var kmlUrl = "/js/heart/kumedplaces.kml";   doesn't work

    var geoXml = new GGeoXml(kmlUrl);
    map.addOverlay(geoXml);

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

Пример моего файла .kml:

 <?xml version="1.0" encoding="utf-8" ?> 
    <kml xmlns="http://earth.google.com/kml/2.1">
      <Document>
        <name>University of Kansas Hospital Locations</name>
        <description>The various buildings around the city that comprise the University of Kansas Hospital</description>

    <Style id="randomColorIcon">
      <IconStyle>
        <color>ff00ff00</color>
        <colorMode>random</colorMode>
        <scale>1.1</scale>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/pal3/icon21.png</href>
        </Icon>
      </IconStyle>
    </Style>

    <Placemark id="kumed">
      <name>The University of Kansas Hospital</name>
      <description>
        Part of the Kansas University Medical Center complex.
        3901 Rainbow Blvd, Kansas City, KS 66160
      </description>
      <address>3901 Rainbow Blvd, Kansas City, KS 66160</address>
      <phonenumber>xxxxxxx</phonenumber>
      <ExtendedData></ExtendedData>
      <!--<styleUrl>#randomColorIcon</styleUrl>-->
      <Point>
        <coordinates>-94.608800,39.0558241</coordinates>
      </Point>
    </Placemark>
  </Document>   
</kml>

Ответы [ 3 ]

0 голосов
/ 17 ноября 2011

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

0 голосов
/ 24 ноября 2011

Вам нужно добавить правильные типы MIME на ваш веб-сервер для обслуживания файлов kml и kmz.

Для kml - application/vnd.google-earth.kml+xml

Для kmz - application/vnd.google-earth.kmz

Если вы используете IIS7, добавьте их в разделе Mime Types в диспетчере IIS7.

0 голосов
/ 17 ноября 2011

Похоже, что файл KML не может быть сохранен или, по крайней мере, на него ссылаются локально. См. Этот другой вопрос .Вместо абсолютного пути попробуйте добавить свой домен HTTP в начало пути к файлу?(например, http://yourdomain.com/js/heart/kumedplaces.kml)

...