2015-10-22 5 views
0

Я создал карту в веб-приложении Google MyMaps. Теперь я хочу включить его на свою страницу (но не как встроенную карту!).Маркеры, которые не отображаются в файле KML в Картах Google

Я загрузил kml-файл и добавил его на страницу html. Все в порядке, за исключением того, что маркеры не отображаются. Кто-нибудь знает, в чем проблема?

Вот мои 3 файла:

HTML:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Map</title> 
<script src="http://maps.googleapis.com/maps/api/js?key=MY-KEY"></script> 
<script src="script.js"></script> 
</head> 
<body onload="initialize()"> 
<h1>Map</h1> 
<div id="map" style="width:750px;height:520px;"></div> 
<div id="capture"></div> 
</body> 
</html> 

script.js:

var map; 
var src = 'http://my-website.com/map.kml'; 
function initialize() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeId: google.maps.MapTypeId.TERRAIN 
    }); 
    loadKmlLayer(src, map); 
} 
function loadKmlLayer(src, map) { 
var kmlLayer = new google.maps.KmlLayer(src, { 
    suppressInfoWindows: true, 
    preserveViewport: false, 
    map: map 
}); 
google.maps.event.addListener(kmlLayer, 'click', function(event) { 
    var content = event.featureData.infoWindowHtml; 
    var testimonial = document.getElementById('capture'); 
    testimonial.innerHTML = content; 
}); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

KML:

<?xml version='1.0' encoding='UTF-8'?> 
<kml xmlns='http://www.opengis.net/kml/2.2'> 
<Document> 
    <name>My Map</name> 
    <description><![CDATA[]]></description> 
    <NetworkLink> 
     <name>locations</name> 
     <Link> 
      <href>http://mapsengine.google.com/map/kml?mid=zVGRYK81syB4.kFYbbKCtNMQw</href> 
     </Link> 
    </NetworkLink> 
</Document> 
</kml> 

ответ

2

См KML documentation <StyleMap> не поддерживается KmlLayer.

Ваш КМЗ использует <StyleMap> для определения иконки:

<Style id='icon-960-F8971B-normal'> 
     <IconStyle> 
      <color>ff1B97F8</color> 
      <scale>1.1</scale> 
      <Icon> 
       <href>http://www.gstatic.com/mapspro/images/stock/960-wht-star-blank.png</href> 
      </Icon> 
     </IconStyle> 
     <LabelStyle> 
      <scale>0.0</scale> 
     </LabelStyle> 
    </Style> 
    <Style id='icon-960-F8971B-highlight'> 
     <IconStyle> 
      <color>ff1B97F8</color> 
      <scale>1.1</scale> 
      <Icon> 
       <href>http://www.gstatic.com/mapspro/images/stock/960-wht-star-blank.png</href> 
      </Icon> 
     </IconStyle> 
     <LabelStyle> 
      <scale>1.1</scale> 
     </LabelStyle> 
    </Style> 
    <StyleMap id='icon-960-F8971B'> 
     <Pair> 
      <key>normal</key> 
      <styleUrl>#icon-960-F8971B-normal</styleUrl> 
     </Pair> 
     <Pair> 
      <key>highlight</key> 
      <styleUrl>#icon-960-F8971B-highlight</styleUrl> 
     </Pair> 
    </StyleMap> 

Вы должны удалить те, использовать «стандартные иконки», если вы хотите работать с KmlLayer (по крайней мере в настоящее время):

<Style id='icon-960-F8971B'> 
     <IconStyle> 
      <color>ff1B97F8</color> 
      <scale>1.1</scale> 
      <Icon> 
       <href>http://www.gstatic.com/mapspro/images/stock/960-wht-star-blank.png</href> 
      </Icon> 
     </IconStyle> 
     <LabelStyle> 
      <scale>0.0</scale> 
     </LabelStyle> 
    </Style> 

example with (partially) modified KMZ

+0

Yay, it works! Тх, сэр! :) – user2126790

Смежные вопросы