Страница 1 из 1

OpenLayers и kml

Добавлено: 03 окт 2008, 19:44
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>

Re: OpenLayers и kml

Добавлено: 05 окт 2008, 03:06
Максим Дубинин
все правильно показывает и не показывает

в 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>

Re: OpenLayers и kml

Добавлено: 05 окт 2008, 04:38
Denis Rykov
Большое спасибо.