GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


Поиск объектов на карте с помощью OpenLayers

Обсуждение материалов сайта: вопросы, замечания, предложения

Поиск объектов на карте с помощью OpenLayers

Сообщение updates-bot » 24 апр 2010, 07:34

Обсуждение статьи "Поиск объектов на карте с помощью OpenLayers"

http://gis-lab.info/qa/ol-search.html
  • 0

updates-bot
Bot
 
Зарегистрирован: 04 фев 2008
 
Сообщения: 276
Репутация: 2

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение fati » 26 май 2010, 17:28

Подскажите пожалуйста, на основе вашего примера пытаюсь организовать поиск для точек, но вот при определении геометрии, координаты широты/долготы не определяются. Выдает "Empty geometry".
SP_GEOMETRY - колонка геометрии. Как правильно запросить координаты точки?

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

$str = "SELECT * FROM bs WHERE shifr_bs= '".$code."'";
echo $str."*";


$result = pg_query($dbh, "select ST_X(SP_GEOMETRY) as st_x, ST_Y(SP_GEOMETRY) as st_y from ($str) AS coord"); 
$row = pg_fetch_array($result);
if (!empty($row['st_x'])&&!empty($row['st_y'])){
    echo $row['st_x'].",".$row['st_y'];
}
else
echo "Empty geometry";
  • 0

fati
Интересующийся
 
Зарегистрирован: 13 мар 2009
 
Сообщения: 22
Репутация: 0

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Denis Rykov » 27 май 2010, 03:10

Вроде все правильно делаете, а вручную (не через php) аналогичный запрос к базе возвращает какие-нибудь результаты?
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение fati » 27 май 2010, 10:09

все решилось, необходимо было добавить кавычки в запрос и все заработало)

Код: Выделить всё
$coord="select st_x(\"SP_GEOMETRY\") as st_x, st_y(\"SP_GEOMETRY\") as st_y from ($str) AS coord";
  • 0

fati
Интересующийся
 
Зарегистрирован: 13 мар 2009
 
Сообщения: 22
Репутация: 0

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Kherson » 31 май 2010, 01:33

почему то не выполняется функция layer.mergeNewParams({sql:response[1]}); (((
в чем может быть прикол?
  • 0

Kherson
Новоприбывший
 
Зарегистрирован: 31 май 2010
 
Сообщения: 10
Репутация: 0

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Denis Rykov » 31 май 2010, 07:54

В примере, рассмотренном в статье, вместо строки:
Код: Выделить всё
layer.mergeNewParams({sql:response[1]});
используется
Код: Выделить всё
sel.mergeNewParams({sql:response[0]});
Возможно, в этом ошибка.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение dobeer » 18 сен 2010, 08:23

А возможно ли повторно рэндерить по запросу слой, если этот слой из шейп файла, а не из базы PostGis? Чтоб сделать выделение контура при клике или по результату поиска
  • 0

Аватара пользователя
dobeer
Активный участник
 
Зарегистрирован: 25 дек 2009
Откуда: Чита (на карте)
 
Сообщения: 199
Репутация: 1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Mavka » 18 сен 2010, 20:02

Layer.redraw подойдет? Или так (у меня сейчас почему то не работает).
  • 0

лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
 
Зарегистрирован: 14 мар 2008
 
Сообщения: 2060
Репутация: 7
Статьи: 11
Проекты: 2/1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение dobeer » 18 сен 2010, 20:47

Во второй ссылке у меня тоже почемуто не работает выделение по клику))). Может я не правильно сформулировал вопрос...я имел ввиду можно ли из OL послать запрос мапсерверу, чтоб он показал слой (перерисовал его) на основе определенного фильтра. Например кликнул по зданию и отобразился второй слой с домами, где в качестве фильтра зданий можно было бы указать те поля, которые получил из объекта по которому кликнул. Т.е. кликаю по зданию, получаю его поля: "улица, номер дома", далее посылаю запрос мапсерверу: "улица, номер дома", он фильтрует здания по этому фильтру и выдает мне другой слой, где будет только этот дом (в описании слоя изменяем цвет дома на другой), в результате пользователь видет изменения цвета здания по которому кликнул. Вот как бы так динамически формировать новый слой для меня остается загадкой и возможно ли такое вообще реализовать при условии, что слои хранятся не в postgis, а в шейпах?...блин расписался тут, прям поэма :)))
  • 0

Аватара пользователя
dobeer
Активный участник
 
Зарегистрирован: 25 дек 2009
Откуда: Чита (на карте)
 
Сообщения: 199
Репутация: 1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Mavka » 19 сен 2010, 12:46

Теоретически можно. Проще всего через SLD (и фильтр и цвет), но в UMN [на апрель месяц] был баг, который все ломает. Можно через подстановку значений в FILTER слоя. (Черновик моей статьи именно про это валяется в админке блога уже полгода и еще столько же, вероятно, будет пылится...)
  • 0

лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
 
Зарегистрирован: 14 мар 2008
 
Сообщения: 2060
Репутация: 7
Статьи: 11
Проекты: 2/1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение dobeer » 19 сен 2010, 15:24

Через SLD...это как, где можно посмотреть об этом и черновик тоже?
  • 0

Аватара пользователя
dobeer
Активный участник
 
Зарегистрирован: 25 дек 2009
Откуда: Чита (на карте)
 
Сообщения: 199
Репутация: 1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Mavka » 19 сен 2010, 19:18

Забросил черновик в wiki. Учтите, что это только набросок статьи.
Про SLD нужно рассказывать отдельно, с наскоку там все кажется очень навороченным.
  • 0

лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
 
Зарегистрирован: 14 мар 2008
 
Сообщения: 2060
Репутация: 7
Статьи: 11
Проекты: 2/1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Mavka » 24 сен 2010, 13:17

dobeer
Как продвигается?
  • 0

лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
 
Зарегистрирован: 14 мар 2008
 
Сообщения: 2060
Репутация: 7
Статьи: 11
Проекты: 2/1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение dobeer » 24 сен 2010, 14:00

Бегло взглянул...как то все замутно показалось, решил пока отложить разбирательство этого вопроса
  • 0

Аватара пользователя
dobeer
Активный участник
 
Зарегистрирован: 25 дек 2009
Откуда: Чита (на карте)
 
Сообщения: 199
Репутация: 1

Re: Поиск объектов на карте с помощью OpenLayers

Сообщение Djinn18 » 19 дек 2010, 23:22

хочу создать организовать поиск, но почему-то не получилось со своими данными http://niczem.zapto.org/geo/search.html

теперь повторно пытаюсь разобраться, но не получается запустить даже пример который на странице
это тестовая http://niczem.zapto.org/geo/test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://gis-lab.info/programs/js/ol-search.js"></script>
<title>Документ без названия</title>
</head>

<body onLoad="init()">
<form name='form'>
<table>
<tr>
<td valign="top">
<div id="map" style="width: 400px; height: 300px">
</div>
</td>
<td>
<p><strong>Название населенного пункта:</strong></p>
<select name='name'>
<option value=''>Select one</option>
<option value='2200800000200'>Акутиха</option>
<option value='2200000200000'>Алейск</option>
<option value='2200300000100'>Алтайский</option>
<option value='2204700000300'>Алтайское</option>
</select>
<input type="button" value="Search" onclick="getext()">
</td>
</tr>
</table>
</form>
</body>
</html>

разве с этим примером не должен работать? брать информацию с ваших сайтов?
  • 0

Djinn18
Участник
 
Зарегистрирован: 29 ноя 2010
 
Сообщения: 76
Репутация: 0

След.

Вернуться в Материалы сайта

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

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


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).