Отображение kml через openlayers

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Alexanderrr32
Новоприбывший
Сообщения: 5
Зарегистрирован: 22 фев 2013, 19:38
Репутация: 0

Отображение kml через openlayers

Сообщение Alexanderrr32 » 23 фев 2013, 00:36

Доброго времени суток. Только - только начинаю вникать в веб-картографию. Столкнулся со следующего рода задачей.

Имеются .rts и .mif/mid файлы, используемые в одной нераспространенной ГИС. Задача состоит в том, чтобы научиться отображать содержимое этих файлов через веб.

Для выполнения задачи использую openlayers. Переконвертировал mif файлы в .KML формат. Используя вот этот вот сайтик http://converter.mygeodata.eu/ , и, как альтернативный вариант - программу GeoConverter.

Далее пытался сделать так, как описано в faq-e - http://gis-lab.info/qa/ol-load.html (пункт 1) в качестве сервера используя денвер. Т.е. в директорию, в которой лежит html - файлик , кинул .kml .

Однако, не выводит(( А поскольку знаний мало, то ориентируюсь во всем плохо, и где собака зарыта, понять не могу. То ли кривая конвертация, то ли просто с ошибками написан код.

Код -

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

<html>
<head>
	<title> OpenLayers Example</title>
	<script scr ="OpenLayers.js"> </script>
</head>
<body>
	<div style="width:100%; height:100%; " id="map">
	
	<script type="text/javascript">
		map = new OpenLayers.Map('map');
		var bounds = new OpenLayers.Bounds(41, 44, 48, 48);
		var graphic = new OpenLayers.GML(
		"OpenLayers KML",
		"Russia.kml",
		{format: OpenLayers.Format.KML});
		graphic.setIsBaseLayer(true);
		map.addLayers([graphic]);
		max.zoomToExtent(bounds);
		</script>
		</div>
	
	
</body>
</html>
Заранее простите за глупый вопрос. И , если можно, подскажите пожалуйста, где зарыта собака и в какую сторону копать дальше. И напоследок. Существует ли возможность отображения файлов формата .rst через openlayers?

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

Re: Отображение kml через openlayers

Сообщение Denis Rykov » 23 фев 2013, 01:22

Для начала проверьте в браузере доступен ли ваш kml по http.
Spatial is now, more than ever, just another column- The Geometry Column.

Alexanderrr32
Новоприбывший
Сообщения: 5
Зарегистрирован: 22 фев 2013, 19:38
Репутация: 0

Re: Отображение kml через openlayers

Сообщение Alexanderrr32 » 23 фев 2013, 01:47

Спасибо. А каким образом можно это проверить? И ещё один вопрос. Во что и чем можно конвертировать Idrisi raster для отображения в браузере через openlayers?

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

Re: Отображение kml через openlayers

Сообщение Denis Rykov » 23 фев 2013, 08:41

Что значит каким? Набрать нужный адрес в строке браузера.

[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.

Alexanderrr32
Новоприбывший
Сообщения: 5
Зарегистрирован: 22 фев 2013, 19:38
Репутация: 0

Re: Отображение kml через openlayers

Сообщение Alexanderrr32 » 23 фев 2013, 21:25

Понял, извините)) Проверил, файл доступен.

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

Re: Отображение kml через openlayers

Сообщение Denis Rykov » 24 фев 2013, 00:28

Теперь по коду. Во-первых, вы неправильно написали - OpenLayers.GML вместо OpenLayer.Layer.GML. А во-вторых. так уже не делают, так как OpenLayer.Layer.GML - deprecated. Вы же используете OpenLayers 2.12? Код должен выглядеть примерно так:

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

var map = new OpenLayers.Map({
    div: "map",
    layers: [
        new OpenLayers.Layer.OSM(),
        new OpenLayers.Layer.Vector("KML", {
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.HTTP({
                url: "http://localhost/.../Russia.kml",
                format: new OpenLayers.Format.KML({
                    extractStyles: true, 
                    extractAttributes: true,
                    maxDepth: 2
                })
            })
        })
    ],
    center: new OpenLayers.LonLat(-112.169, 36.099),
    zoom: 2
});
И чтобы не было вопросов почему не работает - смотрите сообщения об ошибках в консоли.
Spatial is now, more than ever, just another column- The Geometry Column.

Alexanderrr32
Новоприбывший
Сообщения: 5
Зарегистрирован: 22 фев 2013, 19:38
Репутация: 0

Re: Отображение kml через openlayers

Сообщение Alexanderrr32 » 25 фев 2013, 01:05

Спасибо большое! Проблема решена. Подскажите пожалуйста, а можно ли использовать вместо подложки rst/rdc формат(idrisi raster?) И во что его можно переконвертировать для отображения через openlayers?

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

Re: Отображение kml через openlayers

Сообщение Denis Rykov » 25 фев 2013, 01:14

Конечно, для этого можно, например, создать WMS-сервис и опубликовать ваш растр, либо вручную создать тайловый кэш с помощью gdal2tiles и подключить его в OpenLayers как TMS-слой. Вариантов множество.
Spatial is now, more than ever, just another column- The Geometry Column.

Alexanderrr32
Новоприбывший
Сообщения: 5
Зарегистрирован: 22 фев 2013, 19:38
Репутация: 0

Re: Отображение kml через openlayers

Сообщение Alexanderrr32 » 10 мар 2013, 14:23

Извините пожалуйста за ещё один глупый вопрос. Но интересует, имеются ли какие-либо библиотеки, для конвертации rst в тот же json?

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

Re: Отображение kml через openlayers

Сообщение Denis Rykov » 10 мар 2013, 15:07

rst - растр, geojson - вектор, поэтому слово "конвертировать" здесь неуместно. Если вы хотите использовать свой растр в качестве подложки - то это не проблема поднять WMS-сервис, если же вы хотите сделать из него geojson, то есть векторизовать, то вам нужен векторизатор, например, Easy Trace.
Spatial is now, more than ever, just another column- The Geometry Column.

Vasiliy01234
Новоприбывший
Сообщения: 1
Зарегистрирован: 21 мар 2013, 15:14
Репутация: 0

Re: Отображение kml через openlayers

Сообщение Vasiliy01234 » 21 мар 2013, 15:19

Как уже писали выше, хороший вариант - gdal2tiles. С IDRISI растрами он, насколько мне известно, работает.
Для большего удобства можно использовать MapTiler (http://www.maptiler.org/) - GUI для gdal2tiles.

Ответить

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

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

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