Данный компонент разрабатывался как демонстрационный. Он группирует объекты располагающиеся рядом с друг другом. Для работы компонента необходим скрипт, который будет передавать список объектов в формате geojson. Ознакомиться с примером работы можно, включив в настройках проекта компонент "Кластеризованные данные". Пример geojson, который внешний скрипт передает в компонент:
Еще вопросы по кластеризации: - в руководстве по вебсерверу на рисунке 84 в параметре Имя файла объектов указаны 2 json файла. Т.е. можно использовать разные файлы? - можно привести пример скрипта. Он должен принимать какие то параметры? например имя файла
Одновременно для кластеризации используется один файл, указанный в параметрах элемента управления GWTK.ClusterControl. На сервере Вы можете разместить несколько файлов и использовать необходимый. На рисунке 84 имя второго файла содержится в комментарии. Пример запроса файла объектов из JS: $.ajax({ url: this._options.url, type: "POST", data: { "request": "Markers", "name": "", "path": this._options.json }, dataType: "json", success: function (data) { ....// обработка данных файла }, error: function ( e ) { console.log( e.message ); } });
var $Request = null, $Folderpath=null, $Name = null, $Params=null;
function getParam() {
if ($_SERVER['REQUEST_METHOD'] == "GET") { $this->Params=$_GET; } else { //если не GET-запрос, то пробуем POST if ($_SERVER['REQUEST_METHOD'] != "POST") return; $this->Params=$_POST; }
foreach($this->Params as $key=>$val){ $key=strtolower($key); switch($key) { case "request": $this->Request = $val; break; case "path": $this->SetSlashOfPath(); $val = str_replace(array("\\","/"),$this->SlashOfPath,$val); $this->Folderpath = $val; break; case "name": $this->Name = $val; break; } } return; }
function readFile() { $this->SetSlashOfPath(); // обращаемся к пути, забираем файл $this->dirout = getcwd(); $openedFile =file_get_contents($this->dirout.$this->Folderpath); $this->openedFile=$openedFile; return $this->openedFile; }
Полный текст страницы GeoJSON.php отправим по почте.
В Панорама-Редакторе можно настроить кластеризацию объектов карты с отображением таких карт в настольном и Web приложениях. Если у пользователя в карте в одной точке расположено несколько объектов, то такой кластер не распадается на объекты, но в Панораме-Редакторе с такими объектами работать можно (редактировать семантику перебирая объекты), а вот в Web приложении получить информацию или отредактировать такие объекты нельзя. Поэтому для отображения на Webe объектов с кластеризацией, (с учетом еще и того, что в Панораме-Редакторе версии 12 карты с кластеризацией отображаются без нее) получается нужно использовать компонент "Кластеризованные данные" самого Web приложения. Как написано в руководстве оператора GISWebServerSЕ: "Для включения режима необходимо нажать кнопку «Отобразить кластеризованные данные", в руководстве системного программиста: "Для использования режима кластеризованных данных необходимо: 1) Указать адрес php-скрипта, который будет возвращать json-объект с метрикой и настройками. Адрес указывается в поле URLскрипта. 2) Указать имя файла, содержащего параметры объектов в формате geoJSON.Имя файла указывается в поле Имя файла объектов." Оказывается, что для работы компонента нужен скрипт, которого нет и который работает с только с одним файлом geojson, т.е. значит с картой, данные которой менять не предполагается, т.к. каждый раз получать из изменяемой карты файл geojson для отображения ну как то не правильно. Потенциальный покупатель программного продукта делает выбор исходя еще и из наличия необходимого ему инструментария в продукте. В старой версии РГИС РО обычный пользователь мог включить кластеризацию, здесь даже администратору стандартными средствами это не сделать. О том, что есть средства разработчика и можно реализовать самому стандартную для любого ГИС продукта функцию я знаю, но это не выход. Помогите решить вопрос с кластеризацией данных.
В Панорама-Редакторе можно настроить кластеризацию объектов карты с отображением таких карт в настольном и Web приложениях. Если у пользователя в карте в одной точке расположено несколько объектов, то такой кластер не распадается на объекты, но в Панораме-Редакторе с такими объектами работать можно (редактировать семантику перебирая объекты), а вот в Web приложении получить информацию или отредактировать такие объекты нельзя. Поэтому для отображения на Webe объектов с кластеризацией, (с учетом еще и того, что в Панораме-Редакторе версии 12 карты с кластеризацией отображаются без нее) получается нужно использовать компонент "Кластеризованные данные" самого Web приложения. Как написано в руководстве оператора GISWebServerSЕ: "Для включения режима необходимо нажать кнопку «Отобразить кластеризованные данные", в руководстве системного программиста: "Для использования режима кластеризованных данных необходимо: 1) Указать адрес php-скрипта, который будет возвращать json-объект с метрикой и настройками. Адрес указывается в поле URLскрипта. 2) Указать имя файла, содержащего параметры объектов в формате geoJSON.Имя файла указывается в поле Имя файла объектов." Оказывается, что для работы компонента нужен скрипт, которого нет и который работает с только с одним файлом geojson, т.е. значит с картой, данные которой менять не предполагается, т.к. каждый раз получать из изменяемой карты файл geojson для отображения ну как то не правильно. Потенциальный покупатель программного продукта делает выбор исходя еще и из наличия необходимого ему инструментария в продукте. В старой версии РГИС РО обычный пользователь мог включить кластеризацию, здесь даже администратору стандартными средствами это не сделать. О том, что есть средства разработчика и можно реализовать самому стандартную для любого ГИС продукта функцию я знаю, но это не выход. Помогите решить вопрос с кластеризацией данных.
Настроенную а Панораме карту с кластеризацией объектов необходимо опубликовать на сервисе GIS Webservice SE и использовать в GIS WebServer SE как WMS-слой. В этом случае все коррктировки объектов в карте будут отображаться в Web. Использовать компонент Кластеризатор GIS WebServer SE не требуется.