Mapserver запрос к MySql и php
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 16 апр 2011, 13:28
- Репутация: 0
Mapserver запрос к MySql и php
Доброго времени суток.
Появился вопрос общего характера:
Можно ли реализовать запрос к MySql при нажатии на какой-то элемент карты.
Проще говоря, чтобы, ткнув на домик человеку вывелось всплывающее окно (можно js), содержание которого будет взято с таблицы БД.
Если это возможно выполнить, то посоветуйте в какую сторону копать )
Заранее всем спасибо!
Появился вопрос общего характера:
Можно ли реализовать запрос к MySql при нажатии на какой-то элемент карты.
Проще говоря, чтобы, ткнув на домик человеку вывелось всплывающее окно (можно js), содержание которого будет взято с таблицы БД.
Если это возможно выполнить, то посоветуйте в какую сторону копать )
Заранее всем спасибо!
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Mapserver запрос к MySql и php
Например, такой вариант:
Раз имеем дело с UMN MapServer, то, как правило, сразу создаем враппер на MapScript. Примеры есть в документации. Соответственно, модифицируем обычный враппер:
- если request типа GetMap, то пересылаем запрос на сервер для генерации карты
- если request равен GetFeatureInfo, то:
1. обращаемся к MapServer'у и получаем инфу по указанному элементу (это может быть например id объекта)
2. по полученному id обращаемся в MySql и забираем атрибутивные данные
3. собираем все данные в правильный формат GML (GeoJSON и пр.) и отдаем клиенту
Раз имеем дело с UMN MapServer, то, как правило, сразу создаем враппер на MapScript. Примеры есть в документации. Соответственно, модифицируем обычный враппер:
- если request типа GetMap, то пересылаем запрос на сервер для генерации карты
- если request равен GetFeatureInfo, то:
1. обращаемся к MapServer'у и получаем инфу по указанному элементу (это может быть например id объекта)
2. по полученному id обращаемся в MySql и забираем атрибутивные данные
3. собираем все данные в правильный формат GML (GeoJSON и пр.) и отдаем клиенту
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 16 апр 2011, 13:28
- Репутация: 0
Re: Mapserver запрос к MySql и php
Возвращаясь к старому теме появилось еще несколько вопросов:
А есть в сети примеры врапперов работающих с запросами GetFeatureInfo?
Для запросов GetMap и GetFeaureInfo нужно писать два разных враппера или их можно запаковать в один файл?
Спасибо.
А есть в сети примеры врапперов работающих с запросами GetFeatureInfo?
Для запросов GetMap и GetFeaureInfo нужно писать два разных враппера или их можно запаковать в один файл?
Спасибо.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Mapserver запрос к MySql и php
Я делал на php (объединял WMS и WFS), но раздавать не разрешают 
Поговорю с др. заказчиком, может согласится открыть враппер с пересечением dateline...
Объединить в одном враппере два запроса можно. В доках есть примеры на Perl и Python:
Считываем аргументы:и сравниваем тип запроса
дальше ветвление if ... else.

Поговорю с др. заказчиком, может согласится открыть враппер с пересечением dateline...
Объединить в одном враппере два запроса можно. В доках есть примеры на Perl и Python:
Считываем аргументы:
Код: Выделить всё
$req->loadParams();
Код: Выделить всё
$req->getValueByName('REQUEST') eq "GetCapabilities"
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 16 апр 2011, 13:28
- Репутация: 0
Re: Mapserver запрос к MySql и php
Жаль, конечно, что не дают показать ваши решения, но это их право...
Я так понял, нужно написать что-то вроде:
Правда, пока не понятно, как в переменную php запихнуть сам ответ сервера, ну и следовательно, как потом, после обработки, полученный в html результат выдать на-гора?
Спасибо!
Я так понял, нужно написать что-то вроде:
Код: Выделить всё
if ($request->getValueByName('REQUEST') == "GetMap") {
bla-bla-bla;
}
else {
bla-bla;
}
Спасибо!
- wmk
- Активный участник
- Сообщения: 102
- Зарегистрирован: 11 янв 2009, 17:38
- Репутация: 0
- Откуда: Казань
- Контактная информация:
Re: Mapserver запрос к MySql и php
Столько буковок написали уже
я пожалуй тоже чутка добавлю.
Обработчик клика вешался на элемент вроде так
Либо на чистом JS
Отправить запрос на сервак, я так понял бэк на пхп написан, легче всего через JQuery либо OpenLayers если есть
OL, нашел в древних скриптах, сейчас возможно все поменялось
Либо на JQuery
На стороне сервера нужно просто выдать ту информацию которая нужна пользователю по типу

Обработчик клика вешался на элемент вроде так
Код: Выделить всё
element.events.register("click", null, myFunction);
Либо на чистом JS
Код: Выделить всё
element.addEventListener("load",handler,false);
Отправить запрос на сервак, я так понял бэк на пхп написан, легче всего через JQuery либо OpenLayers если есть
OL, нашел в древних скриптах, сейчас возможно все поменялось
Код: Выделить всё
function setHTML(response)
{
alert(response.responseText);
}
...
function GetHTML(response)
{
var url = layer.getFullRequestString(
{
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: layer.map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
QUERY_LAYERS: 'streets',
WIDTH: layer.map.size.w,
HEIGHT: layer.map.size.h
});
OpenLayers.loadURL(url, '', this, setHTML);
}
Либо на JQuery
Код: Выделить всё
function twitter_import(div){ $.post("/system/dom/GetTwitterMessages.php", {}, function(data) { $('#'+div).html(data); });}
На стороне сервера нужно просто выдать ту информацию которая нужна пользователю по типу
Код: Выделить всё
echo 'Hello world!';
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 16 апр 2011, 13:28
- Репутация: 0
Re: Mapserver запрос к MySql и php
Не знаю, может я сделал и не правильно, но оказалось всё просто:
Обычное echo вывело результат в OL...
Код: Выделить всё
$feature = ms_iogetstdoutbufferstring();
echo $feature;
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя