Code Monkey home page Code Monkey logo

nextgisweb's Introduction

NextGIS Web

image_2024-04-26_09-41-28

NextGIS Web (NGW) is a server based application/server-side framework for geodata storage, management and visualization. NGW can be used on premise and in the cloud to:

  • Upload vector/raster geodata
  • Create WMS, WFS(-T) services
  • Create unlimited number of web-maps with embedded front-end application
  • Manage user permissions in detail
  • Connect and publish external resources
  • lots more...

Important links:

License

This program is licensed under GNU GPL v3.

Commercial support

Need to fix a bug or add a feature to NextGIS Web? We provide custom development and support for this software. Contact us to discuss options!

https://nextgis.com

nextgisweb's People

Contributors

bishopgis avatar botanegg avatar cybergeo82 avatar dezhin avatar drnextgis avatar edpop avatar eduard-kazakov avatar floatline avatar jekhor avatar karavanjo avatar kinda-me avatar kogor avatar kolesovdmitry avatar lisovenkonastya avatar ngserver avatar rendrom avatar romchik93 avatar ruslankiselev avatar simgislab avatar sirflyingv avatar togachev avatar trolleway avatar yellow-sky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nextgisweb's Issues

Модуль dojo/data/ItemFileWriteStore отмечен как deprecated

Вместо dojo/data/ItemFileWriteStore теперь следует использовать dojo/store/Memory, но это подразумевает, что серверная часть должна отдавать данные в ином формате, нежели сейчас (иначе не будет работать дерево, построенное на базе хранилища и функции DnD):

  • Каждый объект должен содержать идентификатор
  • Ответ должен быть представлен в виде плоского списка (без children), и каждый объект списка должен содержать ссылку parent на идентификатор родительского объекта.

Полезная информация: Connecting a Store to a Tree, dojo/store/Memory: make put() support "parent" and "before" options

При добавлении слоя из внешней PostGIS создавать view для одного типа геометрии

При добавлении слоя из внешней PostGIS с геометрией типа GEOMETRY предлагать пользователю на выбор для отрисовки мультиточку (точку), мультилинию(линию), мультиполигон(полигон).
Создавать в БД необходимый view и подключать его как слой.

Просмотр и редактирование атрибутов слоёв PostGIS

Сейчас в окне просмотра отдельного объекта слоя PostGIS нет виджета с полями, содержащими значения атрибутов. В случае если пользователь БД имеет права на запись, то можно реализовать и редактирование данных.

Идентификация раскалибровывается после сдвигания слайдера

-Инструмент идентификации ищет координаты со сдвигом.

Шаги для воспроизведения:
Загружаем страницу
Включаем точечный слой. Он идентифицируется.
Сдвигаем слайдер между списком слоёв и картов.
Теперь инструмент идентификации ищет координаты со сдвигом, и не находит то что нужно.

Виджет выбора стартового охвата с помощью карты

Сейчас при настройке карты стартовый охват приходится вбивать вручную, что очень неудобно. Было бы уместным поместить чуть ниже виджет с картой, на которой пользователь мог бы выделять прямоугольником нужный стартовый охват.

Не считываются записи из отдельных таблиц PostGIS.

Таблицы
base_geo_mo."railway-line"
base_geo_mo."highway-line"
base_geo_mo."boundary-polygon"
добавляются в веб-гис, но "таблица объектов" показывается пустой, и тайлы не рендрятся.
Поле ID пробовал указывать и gid, и osm_id.
В то же время, таблица base_geo_mo.vegetation_polygon показывается правильно.

При загрузке некоторых слоев с кодировкой UTF-8 атрибутика становится нечитаемой

Прежде все слои загружались нормально, но я выгрузил (используя QGIS) слой с дорогами из БД по Красногорску в Shape файл и при его загрузке в ngw атрибутика становится нечитаемой, хотя я явно указываю при загрузке кодировку UTF-8. Пример значения атрибута: Ð�оÑ�ога.

Unhandled Exception при попытке открыть карту

При работе с картой время от времени получаем 500 ошибку, в случае же если сама страница открывается, то 500 ошибка происходит при запросе тайлов. Замечено, что проблема может исчезнуть через какое-то время, но потом опять появиться. В логах всегда одно и то же:

[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:     rows = [process[0](row, None) for row in fetch], referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:   File "/home/tenzorr/projects/ngw_krasnogorsk/env/lib/python2.7/site-packages/sqlalchemy/orm/loading.py", line 343, in _instance, referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:     return _instance(row, result), referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:   File "/home/tenzorr/projects/ngw_krasnogorsk/env/lib/python2.7/site-packages/sqlalchemy/orm/loading.py", line 447, in _instance, referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:     populate_state(state, dict_, row, isnew, only_load_props), referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:   File "/home/tenzorr/projects/ngw_krasnogorsk/env/lib/python2.7/site-packages/sqlalchemy/orm/loading.py", line 301, in populate_state, referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:     populator(state, dict_, row), referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:   File "/home/tenzorr/projects/ngw_krasnogorsk/env/lib/python2.7/site-packages/sqlalchemy/orm/strategies.py", line 151, in fetch_col, referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr:     dict_[key] = row[col], referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display
[Wed Jan 15 23:28:40 2014] [error] [client 83.246.196.7] FastCGI: server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" stderr: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128), referer: http://demo.nextgis.ru/ngw_krasnogorsk/webmap/1/display

Не добавляется слой из внешней базы данных PostGIS с типом геометрии geometry

В базе по Красногорску есть таблица krasnogorsk.landscaping, а в ней записи с разным типом геометрии (точки, линии и полигоны). Его надо отображать в веб-гисе, но этот слой туда не добавляется. В таблице geometry_columns его тип геометрии показывается как "geometry".
Если написать представление

CREATE OR REPLACE VIEW krasnogorsk.landscaping_polygons AS 
SELECT krasnogorsk.landscaping.*
FROM krasnogorsk.landscaping
WHERE GeometryType(krasnogorsk.landscaping.geometry) IN ('POLYGON, MULTIPOLYGON') ;

то в geometry_columns тип геометрии показывается как "geometry", и всё равно не добавляется в веб-гис.

Определяющий запрос для слоя

В проекте Красногорска ряд слоев имело определяющий запрос. Например, слой дорог имел поле для индикации является ли дорога правильной и проверенно отделом транспорта или требует уточнения. Дороги правильные были в одном слое, требующие уточнения в другом.
Конечно можно в БД сделать view, но для такой простой вещи, мне кажется стоит предусмотреть поддержку определяющих запросов через настройки слоя в Веб.

Обновление развернутой Веб ГИС

При выходе обновлений, в админке должна быть индикация о наличии обновления и возможности обновится, а также список изменений.

Картостили для развёртывания Красногорска

Создаю этот issue для тренировки работы с гитхабом, и чтоб не забыть. Я тут буду отмечать себе, по каким слоям нужно настроить картостили.

Благоустройство - точечные
Благоустройство - площадные
Благоустройство - линейные
МАФ на детских площадках
МАФ вне детских площадок


Базовые данные OSM

Автодороги
Реки
Растительность
Остальное

Алиасы полей при идентификации

При пользовании инструментом идентификации
Сейчас показывается:

name    Контейнерная площадка
notes   null
status  null

Пользователю наверняка захочется видеть:

Название    Контейнерная площадка
Примечание      -
Статус         -

Поддержка авторизации в API

Список слоев (http://demo.nextgis.ru/ngw_rosavto/api/layer_group/0/tree) и иные действия пользователя в системе являются "чувствительными" и должны предоставляться только авторизованным пользователям с соответствующими правами.
При вызове функций API необходимо неавторизованному пользователю возвращать ошибку в теле JSON.

Добавить поддержку ПКК

В Веб ГИС должен быть слой публичной кадастровой карты

С учетом специфики источника, возможно это должен быть "особый" слой. Поддержка в виде модуля

FastCGI: incomplete headers (0 bytes) received from server

При попытке загрузить векторный слой получил сообщение об ошибке. Содержание лога:

[Thu Jan 16 08:34:53 2014] [error] [client 46.229.66.22] FastCGI: comm with server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk" aborted: idle timeout (30 sec), referer: http://demo.nextgis.ru/ngw_krasnogorsk/layer/create?layer_group_id=0&identity=vector_layer
[Thu Jan 16 08:34:53 2014] [error] [client 46.229.66.22] FastCGI: incomplete headers (0 bytes) received from server "/usr/local/www/demo_nextgis/data/ngw_krasnogorsk", referer: http://demo.nextgis.ru/ngw_krasnogorsk/layer/create?layer_group_id=0&identity=vector_layer 

По факту - слой загрузился. Такую же ошибку получал и при отрисовке тайлов векторного слоя.

Ссылка на язык картостиля

webgis mark language
Оформления некоторых слоёв не конвертируются из QGIS, нужно сочинять их вручную. Не могу найти описание языка, потому что у MapServer qml несколько другой.

Переход на GeoAlchemy 2

Последняя версия SQLAlchemy 0.9 не совместима с используемой версией GeoAlchemy, приходится использовать SQLAlchemy 0.8. Поддержка SQLAlchemy 0.9 реализована в GeoAlchemy 2.

Добавить поиск по адресу

Необходимо разработать подключаемый модуль для поиска по адресу.

На первом этапе поисковые запросы обрабатываются внешним геокодером, далее необходимо добавить оффлановый поиск.

Можно добавить слой PostGIS с полем ID типа String, и тогда глючит идентификация

Можно создать слой, у которого не работает идентификация.

Если при создании слоя в качестве поля id выбрано поле типа String, то при идентификации не показывается названия и содержимое полей,

Я бы предложил где-то это явно указать, что бы не чесать репу каждый раз при развёртывании.

Некорректная работа рендерера MapServer c повторяющимися узлами геометрий

При работе с проектом по Красногорску, собранном на базе ngw, возникает ситуация, когда страница с картой перестает открываться. Попытался разобраться в том, что происходит. Оказалось, что зависание приложения вызывает функция mapObj.draw() используемого в ngw рендерера MapServer. Выяснилось, что эта функция не может быть выполнена (выполняется бесконечно) на таких слоях, где геометрии некоторых объектов содержат дублирующиеся точки. Так как я тестировал слой, в котором были еще и подписи, то в ходе экспериментов удалось выяснить, что обеспечить нормальное выполнение функции можно двумя способами: либо удалить полностью секцию, описывающую подписи, либо удалить повторяющийся узел. Очевидно, что первый вариант нам не подходит, поэтому необходимо обеспечить рендерер геометриями без дублирующихся узлов.

Смещение слоёв, данные которых изначально в EPSG:3857

При загрузке слоёв, данные которых находятся в проекции EPSG:3857, при последующем отображении их на карте видно смещение относительно подложки OSM, при этом если загружать данные, например, в EPSG:4326, то всё ложится корректно.

Недоступна часть полей настроек слоя

  • Создаём новую карту
  • Создаём в ней новую группу
  • Создаём новый слой, он автоматом создаётся в только что созданной группе
  • Разворачиваем группу и выбираем слой в дереве - панель настроек слоя содержит не все элементы.

Uncaught Error: assertion failed in ItemFileWriteStore

Если создать новую карту и добавить в неё группу или слой, а затем выбрать их в дереве, то панель с настройками не появляется, а в консоли видим ошибку Uncaught Error: assertion failed in ItemFileWriteStore. Аналогичная ошибка возникает при попытке удалить любой элемент дерева.

Uncaught Error: dojo.data.ItemFileWriteStore: Invalid item argument

Если в окне настройки дерева слоёв не выбран ни один элемент дерева, то при нажатии на кнопку 'Удалить' получаем ошибку. Нужно блокировать кнопку в случае, если ни один элемент дерева не выбран.

Обновление OSM

В веб ГИС необходимо предусмотреть ряд модулей для подключения сервисов NextGIS - геокодирование, выгрузки, пикетаж и т.п.
Сервис выгрузок должен обеспечивать:

  • указание источника выгрузок
  • возможность остановки выгрузок
  • откат к предыдущему обновлению (например, если нужны локальные данные ОСМ, а они поломались) - не более одного шага
    • задание расписания обновления
  • предустановленные стили отрисовки слоев ОСМ в Веб ГИС

Не отображать "+" возле имени стиля

В окне настройки списка слоёв при добавлении на карту нового слоя элемент дерева, отвечающий за стиль отображается со знаком "+", что как бы говорит о том, что стиль может иметь дочерние элементы, но это не так.

Масштабная шкала

Неплохо бы добавить настройку отображения масштабной шкалы.

  1. Расположение: нижний левый угол, верхний левый угол и т.п.
  2. Единицы - отдельно м, футы или метры + футы (в старой веб ГИС по Красногорску были только метры)
  3. Вкл/выкл

API работы с фото

Для исправления настольного клиента необходим API для работы с фотографиями (картинками)

  1. Получение фото для записи (для отображения в диалоге идентификации)
  2. Добавление фото к записи
  3. Удаление фото (всех фото) из записи

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.