Отображение нескольких треков на слое

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Отображение нескольких треков на слое

Сообщение kau »

Здравствуйте.
Создаю слой для отображения трека из файла формата gpx:

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

//слой для отображения GPX
lgpx = new OpenLayers.Layer.Vector("GPX Data", {
					              protocol: new OpenLayers.Protocol.HTTP({
					 	      url: temp.xml",
						     format: new OpenLayers.Format.GPX({extractWaypoints: true, extractRoutes: true,  extractAttributes: true})
					}),
					strategies: [new OpenLayers.Strategy.Fixed()],
					styleMap: lgpx_style1,
					projection: new OpenLayers.Projection("EPSG:4326")
				});
Вопрос в том, как добавить еще несколько треков на карту? Сейчас я под каждый, создаю свой слой. Мне кажется это не совсем правильно.
Может кто-то подскажет: на одном слое можно отобразить несколько треков, загружаемых из файла? Или как это сделать правильнее?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Отображение нескольких треков на слое

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

Не совсем понял вопрос. У вас один файл gpx в котором несколько треков? В приведенном вами примере на карту добавляется только один трек из файла, а остальные нет?
Spatial is now, more than ever, just another column- The Geometry Column.
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Re: Отображение нескольких треков на слое

Сообщение kau »

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

Re: Отображение нескольких треков на слое

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

Тогда я не понял чего вы хотите, в первом посте вы спросили:
можно отобразить несколько треков, загружаемых из файла?
а получается, что в одном файле всего 1 трек.
Spatial is now, more than ever, just another column- The Geometry Column.
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Re: Отображение нескольких треков на слое

Сообщение kau »

В первом посте выразился может быть не совсем точно. Речь идет о разных файлах (для каждого файла свой трек). Мой вопрос-то в принципе о том, как можно корректно добавить на карту отображение нескольких треков?
А как это будет сделано из одного файла (но чтоб при этом треки не склеивались в один большой) или нескольких не столь важен. Тот механизм, который я сейчас использую мне кажется не совсем правильным (один трек - один слой, два трека - два слоя, ....). Или других вариантов нет?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Отображение нескольких треков на слое

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

Первое, что пришло в голову:

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

map = new OpenLayers.Map("mapdiv");
var epsg4326 = new OpenLayers.Projection("EPSG:4326");
var epsg900913 = new OpenLayers.Projection("EPSG:900913");
var center = new OpenLayers.LonLat(29,40).transform(epsg4326, epsg900913);

var gpxTrackStyle = {strokeColor: "#FF0000", strokeWidth: 2};

var base = new OpenLayers.Layer.OSM();

//слой для отображения GPX
lgpx = new OpenLayers.Layer.Vector();
lgpx.style = gpxTrackStyle;

map.addLayers([base,lgpx]);
map.setCenter(center, 2);

var gpx = new OpenLayers.Format.GPX({externalProjection: epsg4326, internalProjection: epsg900913});

var url_list = [
"http://gis-lab.info/share/DR/sandbox/gpx/1185846.gpx",
"http://gis-lab.info/share/DR/sandbox/gpx/1164963.gpx"
];

for (var i = 0, l = url_list.length; i < l; i += 1) {
var features = [];
new OpenLayers.Request.GET({
url: url_list,
success: function(e){
features = gpx.read(e.responseText);
lgpx.addFeatures(features);
}
});
}
Spatial is now, more than ever, just another column- The Geometry Column.
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Re: Отображение нескольких треков на слое

Сообщение kau »

Denis Rykov писал(а):Первое, что пришло в голову:
Вот такая ошибка возникает:

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

XMLHttpRequest cannot load http://gis-lab.info/share/DR/sandbox/gpx/1185846.gpx. Origin http://...  is not allowed by Access-Control-Allow-Origin.
Не подскажете в чем дело?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Отображение нескольких треков на слое

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

Подскажу. Либо поставбте прокси и пропишите там гислабовский хост, либо скачайте треки и разместите их на своём хосте.
Spatial is now, more than ever, just another column- The Geometry Column.
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Re: Отображение нескольких треков на слое

Сообщение kau »

Спасибо, с этим (XMLHttpRequest cannot load http...) разобрался. Все выполняется без ошибок. Но на карте ничего не появляется.
features создается такой

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

[Object { data={...}, id="OpenLayers.Feature.Vector_921", geometry=LINESTRING(4355895.8663649 6745578.2778295,4355970.2648913 6745563.6104373,4356089.3767464 6745720.7624454,4356160.806753 6745850.9764113,4356176.7625466 ....
Выполняю:

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

lgpx.addFeatures(features);
Ничего не происходит. Подскажите, что не так?
Может быть есть ссылка на рабочий пример?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Отображение нескольких треков на слое

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

Вот набросал.
Spatial is now, more than ever, just another column- The Geometry Column.
kau
Интересующийся
Сообщения: 19
Зарегистрирован: 23 дек 2011, 11:26
Репутация: 0

Re: Отображение нескольких треков на слое

Сообщение kau »

Denis Rykov писал(а):Вот набросал.
Спасибо, большое - все заработало.
Ответить

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

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

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