OpenLayers и kml

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

OpenLayers и kml

Сообщение Denis Rykov »

Кто работал с OpenLayers? Необходимо визуализировать данные в формате kml средствами OpenLayers. Файл kml прилагается.

Вот такой скрипт работает:

Код: Выделить всё

<html>
<head>
  <title>OpenLayers Example</title>
    <script
    src="http://openlayers.org/api/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
        var map = new OpenLayers.Map('map');
	var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", 
        "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
        map.addLayer(wms);
	var kml = new OpenLayers.Layer.GML( "OpenLayers KML","1.kml",{format: OpenLayers.Format.KML});
	map.addLayer(kml);
        map.zoomToMaxExtent();
      </script>
</body>
</html>
А такой почему-то нет:

Код: Выделить всё

<html>
<head>
  <title>OpenLayers Example</title>
    <script
    src="http://openlayers.org/api/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
        var map = new OpenLayers.Map('map');
	var kml = new OpenLayers.Layer.GML( "OpenLayers KML","1.kml",{format: OpenLayers.Format.KML});
	map.addLayer(kml);
        map.zoomToMaxExtent();
      </script>
</body>
</html>
Вложения
1.kml
(2.5 МБ) 1038 скачиваний
Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: OpenLayers и kml

Сообщение Максим Дубинин »

все правильно показывает и не показывает

в OL может быть два типа слоев - BaseLayer и Overlay, причем BaseLayer должен обязательно присутствовать и может быть только один. В первом примере - им является слой WMS, во втором - он отсутствует, поэтому ничего не работает. Соответственно, чтобы заставить работать надо объявить слой - BaseLayer'ом:

Код: Выделить всё

graphic.setIsBaseLayer(true);
Вот так - работать должно:

Код: Выделить всё

<html>
<head>
<title>OpenLayers Example</title>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
</head>
<body>
<div style="width:100%; height:100%" id="map"></div>
<script type="text/javascript">
map = new OpenLayers.Map('map');
var bounds = new OpenLayers.Bounds(-180, -88.759, 180, 88.759);
var options = {numZoomLevels: 3};
var graphic = new OpenLayers.Layer.GML(
	"OpenLayers KML",
	"2.kml",
	{format: OpenLayers.Format.KML},
	options);
graphic.setIsBaseLayer(true);
map.addLayers([graphic]);
map.zoomToExtent(bounds);
</script>
</body>
</html>
Вложения
2.kml
от файла примера мой браузер напрочь зависал, следующий раз лучше добавлять что-нибудь попроще и легче
(2.64 КБ) 1071 скачивание
пристегивайтесь, турбулентность прямо по курсу
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers и kml

Сообщение Denis Rykov »

Большое спасибо.
Spatial is now, more than ever, just another column- The Geometry Column.
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя