KML не отображается на Карте

программирование google xml Google Maps kml

Пытаюсь прикрепить к Карте KML со своими объектами. Но слои никак не хочет отображаться. Даже примеры KML из http://code.google.com/intl/ru-RU/apis/maps/documentation/javascript/overlays.html#KMLLayers если вставлять ссылку на KML из примера (т.е. var ctaLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml'); ) то все прекрасно работает, но стоит мне скачать KMLку на свой Web сервер, и указать уже var ctaLayer = new google.maps.KmlLayer('http://localhost/cta.kml'); слой перестает отображаться.

Вот мой KML:
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>Transciever Map</name>
<description>Карта передатчиков</description>
<Style id="trIcon">
<IconStyle>
<Icon>
<href>http://localhost/network-wireless.png</href>
</Icon>
</IconStyle>
</Style>

<Placemark>
<name>Бестужева</name>
<address>Бестужева д.1</address>
<description>Передатчик в офисе</description>
<styleUrl>#trIcon</styleUrl>
<Point>
<coordinates>53.41772, 58.95269</coordinates>
</Point>
</Placemark>
</Document>
</kml>
------------------------------------------------------------------------

А вот HTML страница:
------------------------------------------------------------------------

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: KmlLayer GeoRSS</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
// Инициализируем карту
var myLatlng = new google.maps.LatLng(53.41772, 58.95269);
var myOptions = {
zoom: 12,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

// Задаем слой с OSM

var openStreet = new google.maps.ImageMapType({
getTileUrl: function(ll, z) {
var X = ll.x % (1 << z); // wrap
return "http://tile.openstreetmap.org/" + z + "/" + X + "/" + ll.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 18,
name: "OSM",
alt: "Слой с Open Streetmap"
});

//Добавляем слои к карте

map.mapTypes.set('osm', openStreet);
map.setMapTypeId('osm');

map.setOptions({
mapTypeControlOptions: {
mapTypeIds: [
'osm',
google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN,
google.maps.MapTypeId.SATELLITE,
google.maps.MapTypeId.HYBRID
],
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}
});

// Отображение KML
var yourKML = new google.maps.KmlLayer("http://localhost/transc.kml");
yourKML.setMap(map);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
------------------------------------------------------------------------
Ответы:
попробуйте поставить "?" в конце ссылки. Вот так "http://localhost/transc.kml?". Или поищите ошибки в kml c помощью валидатора http://www.feedvalidator.org.
P.s. С локалхоста вроде не работает
дык а API Key где?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.