Openlayers, добавление .gpx в массив при клике на маркер

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
ballbess
Новоприбывший
Сообщения: 11
Зарегистрирован: 18 янв 2012, 04:14
Репутация: 0

Openlayers, добавление .gpx в массив при клике на маркер

Сообщение ballbess »

Что есть сейчас:
векторный слой с точками, onSelect на точку 1 включает векторный слой с массивом треков, onUnclick точки 2 - выключает

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

select1.onSelect = function(featUre) 
		{		if(featUre.attributes.note == '1') 
  
   			for (var i = 0, l = gpx_list.length; i < l; i += 1) {
   				var features = [];
			    new OpenLayers.Request.GET
				({
       				url: gpx_list[i],
			        success: function(e)
					{
           			features = gpx.read(e.responseText);
		            lgpx.addFeatures(features);
					}
	    		});
			};
			lgpx.setVisibility(true);  
			lgpx.refresh();
			lgpx.redraw(true)

    	};
					
        select1.onUnselect = function(feature) 
		{
       		if (feature.attributes.note == '2') 
			lgpx.setVisibility(false);  
		};


(Сделано именно так чтобы самому разобраться как это работает, но сейчас предел понимания достигнут, поэтому и спрашиваю)

Функционально нужно чтобы по щелчку на точку с прописанным в файле значением тэга note = n+1 к массиву подключался трек N+1.gpx и, соответственно, чтобы на onUnclick массив обнулялся.

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

Re: Openlayers, добавление .gpx в массив при клике на маркер

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

Не понял вопроса, вроде все что нужно вы уже написали, или нет?
Spatial is now, more than ever, just another column- The Geometry Column.
ballbess
Новоприбывший
Сообщения: 11
Зарегистрирован: 18 янв 2012, 04:14
Репутация: 0

Re: Openlayers, добавление .gpx в массив при клике на маркер

Сообщение ballbess »

Вроде бы все, да, но с синтаксисом у меня беда. Разобрался с добавлением, теперь проблема с удалением - в массиве остаются "лишние" треки, учу матчасть дальше

onSelect работает исправно:

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

select1.onSelect = function(featUre) 	{
// Выдергиваем атрибут и добавляем соответствующий файл в ячейку массива с тем же номером
		var g = parseInt(featUre.attributes.note);
                gpx_list[g]=("http://site.com/"+featUre.attributes.note + ".gpx");
    //Проходим по всем *.gpx файлам массива и добавляем объекты в слой
		for (var i = 0, l = gpx_list.length; i < l; i += 1) {
   			var features = [];
			new OpenLayers.Request.GET({
       				url: gpx_list[i],
			        success: function(e){
           				features = gpx.read(e.responseText);
		           		lgpx.addFeatures(features);
					}});};
		lgpx.refresh();
		lgpx.redraw(true)
		};
а вот onUnselect пока мучаю:

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

select1.onUnselect = function(feature) {
		var g = parseInt(feature.attributes.note);
		for (var i = 0, l = gpx_list.length; i < l; i += 1) {
   			var features = [];
			new OpenLayers.Request.GET({
       				url: gpx_list[i],
			        success: function(e){
           				features = gpx.read(e.responseText);
		            		lgpx.refresh(features);
		}});};    
		lgpx.destroyFeatures();
		lgpx.redraw(true);
		};
Ответить

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

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

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