Здесь показаны различия между двумя версиями данной страницы.
отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных [08/03/2011 15:51] 93.91.4.251 создано |
отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных [04/03/2014 05:15] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Отображение на карте произвольной информации (точек, картинок и т.п.) из базы данных ====== | ||
+ | |||
+ | |||
SAS Планета имеет средства для работы с метками. К сожалению, их функциональность имеет некоторые ограничения. | SAS Планета имеет средства для работы с метками. К сожалению, их функциональность имеет некоторые ограничения. | ||
Строка 7: | Строка 10: | ||
__Решить все эти задачи возможно путем создания собственного слоя, накладываемого поверх карты.__ | __Решить все эти задачи возможно путем создания собственного слоя, накладываемого поверх карты.__ | ||
+ | |||
+ | {{:wiki:intro.jpg?442|}} | ||
Это совсем не сложно, если Вы знаете, что такое PHP, MySQL. Как это сделать, мы сейчас и разберем. | Это совсем не сложно, если Вы знаете, что такое PHP, MySQL. Как это сделать, мы сейчас и разберем. | ||
Строка 13: | Строка 18: | ||
Обратите внимание! | Обратите внимание! | ||
- | - В моем примере используется ряд функций PHP по работе с изображениями. Модуль для работы с изображениями (gd2) в PHP по умолчанию выключен. В случае PHP для Windows для того, чтобы включить его, в файле php.ini уберите комментарий в начале строки ''extension=php_gd2.dll'' А если такой строки нет - добавьте ее. После чего перезапустите службу веб-сервера. | + | - В моем примере используется ряд функций PHP по работе с изображениями. Модуль для работы с изображениями (gd2) в PHP по умолчанию выключен. В случае PHP для Windows для того, чтобы включить его, в файле php.ini уберите комментарий в начале строки ''extension=php_gd2.dll''. А если такой строки нет - добавьте ее. После чего перезапустите службу веб-сервера. |
- Чтобы было проще работать с MySQL, установите какое-нибудь средство управления MySQL сервером, например phpMyAdmin | - Чтобы было проще работать с MySQL, установите какое-нибудь средство управления MySQL сервером, например phpMyAdmin | ||
- | **Скачайте и распакуйте файл с примером: sas_demo_db.zip.** | + | **Скачайте и распакуйте файл с примером: {{:wiki:sas_demo_db.zip|}}** |
+ | |||
+ | //В связи с ошибкой в библиотеке работы с изображениями в SASПланете необходимо изменить файл map.php (см. [[http://sasgis.org/mantis/view.php?id=1953|Багтрекер]]). Исправленный файл с примером {{:sas_demo.zip|}}// | ||
- Содержимое каталога htdocs скопируйте в каталог document_root веб-сервера. | - Содержимое каталога htdocs скопируйте в каталог document_root веб-сервера. | ||
Строка 31: | Строка 39: | ||
(это три наших новых слоя, зачем столько - расcкажу позже) необходимо отредактировать файлы params.txt. В параметре DefUrlBase укажите имя или IP адрес веб-сервера (вместо стоящего по умолчанию значения 127.0.0.1). | (это три наших новых слоя, зачем столько - расcкажу позже) необходимо отредактировать файлы params.txt. В параметре DefUrlBase укажите имя или IP адрес веб-сервера (вместо стоящего по умолчанию значения 127.0.0.1). | ||
* в каталоге SAS Планеты необходимо отредактировать файл sascm.ini, в нем указать адрес веб-сервера (вместо стоящего по умолчанию значения 127.0.0.1) | * в каталоге SAS Планеты необходимо отредактировать файл sascm.ini, в нем указать адрес веб-сервера (вместо стоящего по умолчанию значения 127.0.0.1) | ||
+ | |||
**Можно начинать** | **Можно начинать** | ||
- Запустите SAS Cache Manager - файл sascm.exe (из каталога SAS Планеты). Что это такое - см. ниже. Он сам запустит SAS Планету. | - Запустите SAS Cache Manager - файл sascm.exe (из каталога SAS Планеты). Что это такое - см. ниже. Он сам запустит SAS Планету. | ||
- | - Включите слои DemoDB - картинки (png) и DemoDB - подписи (kml) | + | - Включите слои DemoDB - картинки (png) и DemoDB - подписи (kml). __Слой DemoDB - разметка (kml) включать НЕ НАДО.__ |
- Найдите на карте Москву и установите масштаб так, чтобы Москва заняла весь экран. Вы должны увидеть картинку, как в начале статьи. | - Найдите на карте Москву и установите масштаб так, чтобы Москва заняла весь экран. Вы должны увидеть картинку, как в начале статьи. | ||
+ | |||
**Как редактировать/удалять точки** | **Как редактировать/удалять точки** | ||
Строка 43: | Строка 53: | ||
- Непосредственно из SAS Планеты. | - Непосредственно из SAS Планеты. | ||
* Для этого два раза кликните по белому квадратику рядом с иконкой точки. Откроется окно с информацией о точке и ссылками для редактирования/удаления точки. | * Для этого два раза кликните по белому квадратику рядом с иконкой точки. Откроется окно с информацией о точке и ссылками для редактирования/удаления точки. | ||
- | * Отредактируйте информацию и нажмите "Сохранить". Закройте окно редактирования. Обновите слои с точками (масштаб увеличить - подождать 4 сек - масштаб уменьшить. Если слой не обновился - мало ждали). | + | |
+ | {{:wiki:edit1.png|}} | ||
+ | |||
+ | * Отредактируйте информацию и нажмите "Сохранить" | ||
+ | |||
+ | {{:wiki:edit2.png|}} | ||
+ | |||
+ | * Закройте окно редактирования. Обновите слои с точками (масштаб увеличить - подождать 4 сек - масштаб уменьшить. Если слой не обновился - мало ждали). | ||
К сожалению, в этом окне срабатывают "горячие" клавиши SAS Планеты. Избежать этого можно следующим образом: | К сожалению, в этом окне срабатывают "горячие" клавиши SAS Планеты. Избежать этого можно следующим образом: | ||
* в окне, которое открывается после двойного клика по карте, ссылку "Отредактировать точку" кликайте, держа нажатой клавишу Shift. В этом случае форма редактирования откроется в окне браузера а не дочернем окне SAS Планеты. | * в окне, которое открывается после двойного клика по карте, ссылку "Отредактировать точку" кликайте, держа нажатой клавишу Shift. В этом случае форма редактирования откроется в окне браузера а не дочернем окне SAS Планеты. | ||
+ | |||
+ | {{:wiki:edit3.png|}} | ||
+ | |||
**Как добавлять точки** | **Как добавлять точки** | ||
Строка 52: | Строка 72: | ||
- Средствами СУБД | - Средствами СУБД | ||
- Непосредственно из SAS Планеты | - Непосредственно из SAS Планеты | ||
- | * Включите слой DemoDB - разметка (kml). | + | * Включите слой DemoDB - разметка (kml) |
+ | |||
+ | {{:wiki:add1.png|}} | ||
* Увеличьте масштаб для точного позиционирования | * Увеличьте масштаб для точного позиционирования | ||
* кликните по тому месту, куда Вы хотите добавить точку | * кликните по тому месту, куда Вы хотите добавить точку | ||
+ | |||
+ | {{:wiki:add2.png|}} | ||
+ | |||
* Дальше действия аналогичны редактированию точки | * Дальше действия аналогичны редактированию точки | ||
* После добавления отключите слой DemoDB - разметка (kml) и обновите слои с точками. | * После добавления отключите слой DemoDB - разметка (kml) и обновите слои с точками. | ||
+ | |||
**Как это работает** | **Как это работает** | ||
- | В программе SAS планета карты состоят из тайлов (tile - черепица), т.е. подогнанных друг к другу кусочков. Их размер - 256х256 точек (пикселей). | + | В программе SAS планета карты состоят из тайлов (tile - кафельная плитка), т.е. подогнанных друг к другу кусочков. Их размер - 256х256 точек (пикселей). |
При запуске программа начинает запрашивать тайлы с сервера с картами. Это наглядно видно, когда вы выбираете место, которое еще ни разу не посещали (иначе карты грузятся из кэша). Происходит это так в соответствие с параметрами карты настроенными в файлах params.txt и GetUrlScript.txt zmp. | При запуске программа начинает запрашивать тайлы с сервера с картами. Это наглядно видно, когда вы выбираете место, которое еще ни разу не посещали (иначе карты грузятся из кэша). Происходит это так в соответствие с параметрами карты настроенными в файлах params.txt и GetUrlScript.txt zmp. | ||
Строка 73: | Строка 100: | ||
Кроме того, нам необходимо иметь возможность добавлять точки в произвольное место на карте. Для этого используется слой DemoDB - разметка (kml) который заполняет весь экран "кликабельными" метками. | Кроме того, нам необходимо иметь возможность добавлять точки в произвольное место на карте. Для этого используется слой DemoDB - разметка (kml) который заполняет весь экран "кликабельными" метками. | ||
+ | |||
**Что такое sascm.exe** | **Что такое sascm.exe** | ||
Строка 80: | Строка 108: | ||
Эту задачу решает программа SAS Cache Manager (sascm.exe). Она запрашивает у веб-сервера информацию о выводимых тайлах слоев к веб-серверу и удаляет из кэша уже отображенные тайлы. | Эту задачу решает программа SAS Cache Manager (sascm.exe). Она запрашивает у веб-сервера информацию о выводимых тайлах слоев к веб-серверу и удаляет из кэша уже отображенные тайлы. | ||
- | Для настройки sascm используется файл sascm.ini | + | Для настройки sascm используется файл sascm.ini. Параметры: |
- | ''MapServer=127.0.0.1'' - имя или IP адрес сервера со слоем. | + | |
- | ''ClientName=client1'' - имя клиента. Можно не задавать, в этом случае в качестве имени используется IP адрес клиента. Необходимо для того, чтобы различать запросы от разных клиентов в условиях, когда к одной и той же базе подключено несколько пользователей. | + | MapServer=127.0.0.1 - имя или IP адрес сервера со слоем. |
- | ''MapCaches=demopng,demokml,demorazmetka'' - имена каталогов с кэшами слоев, которые надо "чистить". Должны совпадать со значениями, указанными в параметре 'NameInCache' в файлах params.txt этих слоев. | + | |
+ | ClientName=client1 - имя клиента. Можно не задавать, в этом случае в качестве имени используется IP адрес клиента. Необходимо для того, чтобы различать запросы от разных клиентов в условиях, когда к одной и той же базе подключено несколько пользователей. | ||
+ | |||
+ | MapCaches=demopng,demokml,demorazmetka - имена каталогов с кэшами слоев, которые надо "чистить". Должны совпадать со значениями, указанными в параметре 'NameInCache' в файлах params.txt этих слоев. | ||
Непосредственно после запуска sascm проверяет, запущена ли SAS Планета и если не запущена - запускает ее. Сделано для того, чтобы не надо было запускать 2 файла. | Непосредственно после запуска sascm проверяет, запущена ли SAS Планета и если не запущена - запускает ее. Сделано для того, чтобы не надо было запускать 2 файла. | ||