Пишу функцию, которая при клике на объект выводит с БД информацию. Есть проблемы с подключением внешней функции слоя (скрин 1, 2). Не отрабатывает. Если же в скрипте запускать анонимную функцию после полной загрузки документа(скрин 3,4), все работает. Подскажите, пожалуйста, в чем проблема. скрин 1 скрин 2 скрин 3 скрин 4
Для надежного срабатывания функции, указанная в поле "Внешняя функция" она должна быть определена перед блоком <script type="text/javascript"> ... </script> в файле index.php. Например, можно добавить функцию в блок перед указанным блоком:
Выложил на сайте подготовленный Валерием пример создания внешней функции GIS WebServer SE 3.3. Функция по клику на объекте карты выводит в информационную панель фотографию и справку об объекте карты из базы PostgreSQL.
Пример простой, как раз для тех, кто первый раз взялся за программирование под GIS WebServer SE.
Скачал пример, подключил к своим проектам. Есть пожелания, на будущее: 1. Учитывать, что при работе с БД чаще всего есть такой параметр, как "password" - сначала не смог запустить у себя пример, потом разобрался, добавил, запустил; 2. Параметр linkSheet - в идеологии "панорама" - это название карты, из Паспорта. Тем более, Вы ссылаетесь в описании примера на работу "модуля БД" из настольных приложений, где linkSheet в БД как раз и заполняется из Паспорта карты. А Вы не правильно используете его в данном примере. Ваш 'layer' <> 'linkSheet', у Вас layer - это название (ID) слоя, который прописан в GIS WebService SE. Да, он в частном случае может быть такой же, как и linkSheet. 3. Думаю, более правильно будет размещать свои коды/картинки не в корне приложения, а в отдельной папке. У Вас же сейчас все должно быть размещено в корне приложения. Внеся правку в код, сами коды перенес в отдельный каталог, а вот папку img пока не смог перенести из корневого каталога - src=".$row['img']. Такая возможность есть? 4. Также, пока не совсем "презентабельно" вызывается форма - она перекрывает кнопки. В файле стилей можно добавить доп. параметры смещения - left/top/... В общем, начало хорошее! Думаю, в дальнейшем примеры будут усложняться;)
Vitaliy Belenkov написал: Скачал пример, подключил к своим проектам. Есть пожелания, на будущее: 1. Учитывать, что при работе с БД чаще всего есть такой параметр, как "password" - сначала не смог запустить у себя пример, потом разобрался, добавил, запустил; 2. Параметр linkSheet - в идеологии "панорама" - это название карты, из Паспорта. Тем более, Вы ссылаетесь в описании примера на работу "модуля БД" из настольных приложений, где linkSheet в БД как раз и заполняется из Паспорта карты. А Вы не правильно используете его в данном примере. Ваш 'layer' <> 'linkSheet', у Вас layer - это название (ID) слоя, который прописан в GIS WebService SE. Да, он в частном случае может быть такой же, как и linkSheet. 3. Думаю, более правильно будет размещать свои коды/картинки не в корне приложения, а в отдельной папке. У Вас же сейчас все должно быть размещено в корне приложения. Внеся правку в код, сами коды перенес в отдельный каталог, а вот папку img пока не смог перенести из корневого каталога - src=".$row['img']. Такая возможность есть? 4. Также, пока не совсем "презентабельно" вызывается форма - она перекрывает кнопки. В файле стилей можно добавить доп. параметры смещения - left/top/... В общем, начало хорошее! Думаю, в дальнейшем примеры будут усложняться;)
Спасибо, пожелания учту. В базе данных можно поменять путь к картинке, в данном примере значение $row['img' ] = " img/name.jpg".
Валерий Стасюк написал: В базе данных можно поменять путь к картинке
Валерий, хотелось бы не в БД, а в файлах настройки (на будущее - все настройки нужно выносить в отдельные файлы типа xml/json), в крайнем случае, в кодах. Да, и прошу учесть, что само приложение "многоязычное" - т.е. нужно выносить в "локали" текстовые переменные/сообщения и др. Спасибо.
Добрый вечер, возник следующий вопрос. Внешняя функция слоя в администраторе сервера: test.additionalInfo gisWebServer 3.2.1 var test = { additionalInfo: function(){ console.log('test') } } Функция добавлена, но в консоле ничего не выводит. В чем особенность такого поведения? Возможно я что-то упустил в механизме обработки внешней функции слоя?