nextgis / android_gisapp

:dart: GIS application for Android
http://nextgis.com/nextgis-mobile
GNU General Public License v3.0
134 stars 107 forks source link

Create layer in nextgis.com should write human-readabile names in attribute names, not aliases #624

Open trolleway opened 6 years ago

trolleway commented 6 years ago
  1. Create new layer in mobile app with some useful attributes, upload in to nextgis.com
  2. Attribute names will became useless in NextGIS QGIS screenshot from 2018-05-21 17-33-23 screenshot from 2018-05-21 17-35-14
simgislab commented 6 years ago

это же проблема того, как ты добавляешь данные, не так ли? коннект должен уметь добавлять данные с учетом алиасов

BishopGIS commented 6 years ago

Это баг мобильного приложения. Приложение должно позволять вводить имена полей и алиасы. Если алиас не введен - то берется имя поля. Если имя поля не корректно - то дожно исправляться - добавление перед именем _ или после - цифры - например - поле count --> _count. В SDK v3 поддерживается аж 3 имени:

simgislab commented 6 years ago

какой еще баг, у нас никогда не было ввода алиаса при создании поля

и про _ не понял, как это поможет, если в имени есть символы типа кириллицы, а именно её пользователи и вводят в имя слоя

BishopGIS commented 6 years ago

Транслит для кирилицы, для запрещенных имен - добавка.

И это именно баг - потому что приложение самопроизвольно переименовывает то, что ввел пользователь. Так делать нельзя - нужно либо красным подсвечивать, либо не давать создавать запрещенные имена. А имена типа fieldXXX такого ни у кого нет и так не делается.

Именя полей крайне важны для построения SQL запросов что в QGIS что в мобильном SDK v3. То что приложение самостоятельно переимновывает поля - это именно баг - опять же не дает составлять SQL запросы.

Если бы эти имена были строго для внутреннего использования в приложении и никуда не экспортировались и не показывались (как в НГВ) - тогда да, так можно. Но текущая реализация - это баг.

4eRTuk commented 6 years ago

Текущая реализация предполагает наличие внутреннего названия, которое недоступно и не видно никому и вообще не должно никак беспокоить пользователя, и алиаса. И в этом случае то, что в НГВ показывается внутреннее название слоя - это тоже можно считать багом.

BishopGIS commented 6 years ago
  1. В текущей реализации внутренние имена полей как-то оказались в НГВ (см скриншот выше) - это баг
  2. В НГВ есть внутренние имена полей (guid), есть имена полей на которые распространяются все ограничения (только a-zA-Z0-9) и алиасы.
  3. В QGIS есть имена полей (обычно a-zA-Z0-9) и алиасы.

2 и 3 нормально взаимодействуют: имя поля из QGIS передается в имя поля в НГВ (может быть и правлено), алиас в алиас. Это умеет делать NextGIS Connect.

В случае мобильного изначально было предусмотрено имя поля и алиас (все как в QGIS). Почему-то кто-то решил что имя поля вдруг становится внутренним (это неверно и не согласовано). В результате и всплыл этот баг - тут либо менять поведения QGIS и НГВ по аналогии с мобильным либо исправить мобильное - что логичнее. Тем более в 3-ей версии все что нужно предусмотрено.

Этот тикет для 3-й версии мобильного. В версии 2 кидаться исправлять это не надо я думаю.