Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
arzobispo
Активный участник
Сообщения: 230
Зарегистрирован: 10 сен 2008, 10:28
Репутация: 3
Контактная информация:

Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Сообщение arzobispo » 05 ноя 2008, 07:02

Доброго времени суток!
У меня такая проблема, не могу сделать (вернее связать его с запросом SQL) выпадающий список на html-странице. Сейчас у меня на html-странице все сделано с использованием checkbox'ов, но по скольку это не самый удобный вариант, если список значений велик. Описание проблемы: на web-странице есть выпадающий список <SELECT></SELECT>, его необходимо связать с SQL запросом, находящимся в мар-файле, чтобы при выборе нужного значения на карте закрашивались квадратики соответствующие запросу. Например, в 36 клетках сидят животные, 2 белого цвета, один черного, 3 рыжих, в остальныех одного цвета, и вот когда выбираю из списка "Белый", нажимаю кнопку Выбрать, в результате на карте закрашиваются 2 квадратика.
Последний раз редактировалось arzobispo 05 ноя 2008, 18:15, всего редактировалось 1 раз.
С Уважением, Антон

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Сообщение Максим Дубинин » 05 ноя 2008, 08:10

так чем не годится, то как это сделано здесь?
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
arzobispo
Активный участник
Сообщения: 230
Зарегистрирован: 10 сен 2008, 10:28
Репутация: 3
Контактная информация:

Re: Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Сообщение arzobispo » 05 ноя 2008, 09:50

Видишь в чем дело, в примере, что ты мне давал линк, там формирутеся запрос на JavaScript и отправляется в мар-файл, у меня наоборот, в мар-файле есть SQL запрос, к которому мне надо привязать выпадающий список <select></select>. Это вызвано тем, что у меня с JavaScript туго, а том случае, что у меня JavaScript не нужен :)
С Уважением, Антон

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

Re: Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Сообщение Denis Rykov » 05 ноя 2008, 13:03

Подобная задача решается элементарно путем использования html форм. Например:

1. Map-файл:

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

MAP
IMAGETYPE GIF
EXTENT -1.782351 0.244013 -0.618259 1.314817
SIZE 400 300
 WEB 
	TEMPLATE	"/ms4w/apps/mslocal/templates/example.html"
	IMAGEPATH	"/ms4w/tmp/ms_tmp/"
	IMAGEURL	"/ms_tmp/"
 END

 LAYER 
  NAME "base" 
  CONNECTIONTYPE postgis
  CONNECTION "user=postgres password=1234 dbname=postgis host=localhost"
  DATA "the_geom FROM prostokarta_region USING SRID=4326"
  TYPE POLYGON
   CLASS
    COLOR 125 234 100
    OUTLINECOLOR 100 100 100
  END
 END
 LAYER
  NAME "prostokarta_region"
  CONNECTIONTYPE postgis
  CONNECTION "user=postgres password=1234 dbname=postgis host=localhost"
  DATA "the_geom FROM 
			(
            SELECT prostokarta_region.the_geom AS the_geom,
            prostokarta_region.oid AS oid,
			animals.color AS acolor
            from prostokarta_region, animals
            where (animals.id = prostokarta_region.id) and (animals.color='%col%')
            )
            AS new_table USING SRID=4326"
  TYPE POLYGON
  CLASSITEM "acolor"
  CLASS
   NAME "Белые"
   EXPRESSION 'Белый'
   COLOR 255 255 255
   OUTLINECOLOR 100 100 100
  END
  CLASS
   NAME "Черные"
   EXPRESSION 'Черный'
   COLOR 0 0 0
   OUTLINECOLOR 100 100 100
  END
  CLASS
   NAME "Желтые"
   EXPRESSION 'Желтый'
   COLOR 255 255 0
   OUTLINECOLOR 100 100 100
  END
  CLASS
   NAME "Серые"
   EXPRESSION 'Серый'
   COLOR 100 100 100
   OUTLINECOLOR 100 100 100
  END
  CLASS
   NAME "Рыжие"
   EXPRESSION 'Рыжий'
   COLOR 200 100 0
   OUTLINECOLOR 100 100 100
  END
 END
END
2. HTML-шаблон:

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

<html>
<head>
<title>Example</title>
</head>
<body>
<!-- ОПИСАНИЕ MAPSERVER-ФОРМЫ -->
<form name="mapserv" method="GET" action="/cgi-bin/mapserv.exe">
	<input type="hidden" name="map" value="[map]">
	<select name ="col" size=1>
	<option value='Белый'>Белые</option>
	<option value='Черный' selected>Черные</option>
	<option value='Желтый'>Желтые</option>
	<option value='Серый'>Серые</option>
	<option value='Рыжий'>Рыжие</option>
	</select>
	<input type="submit"  value="Запросить">
	<input type="hidden" name="layer" value="prostokarta_region">
	<input type="hidden" name="layer" value="base">
	<input type="hidden" name="mode" value="browse">
</form>
<div align="center">
<input type="image" name="img" src="[img]" width="300" height="200">
</div>
</body>
</html>
3. Пример URL:

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

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mslocal/map/example.map&layer=prostokarta_region&layer=base&mode=browse
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
arzobispo
Активный участник
Сообщения: 230
Зарегистрирован: 10 сен 2008, 10:28
Репутация: 3
Контактная информация:

Re: Выпадающие списки <SELECT>, PostgreSQL+PostGIS, MapServer

Сообщение arzobispo » 05 ноя 2008, 18:15

Денис, выражаю тебе ОГРОМНУЮ благодарность!!!!
Всё работает!!!
С Уважением, Антон

Ответить

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

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

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