
Как вы, наверняка, знаете, в виджетах на странице карты в CoGIS можно использовать блоки "Таблица с исходными данными" с выборкой объектов из заданного слоя. Классический набор возможностей здесь - список полей для отображения, сортировка, действия по клику на строку и прочие важные мелочи.
Однако знали ли вы, что внешний вид этого блока может быть не только в виде классической таблицы, но и в виде плашек (плиток)? И что в плашке каждой объекта можно показывать фото из вложений этого объекта?
Рассмотрим несколько карт на нашем демо-портале как раз в вариантами такого блока "Таблица с исходными данными", оформленного в виде плашек:
1. АРМ Лесопользователя для формирования лесных деклараций
https://cogisdemo.dataeast.com/portal/arm_forest
В простом режиме вы можете в "Шаблоне вывода" для каждой колонки использовать небольшой html-код для оформления ячейки каждого поля объекта, для чего значение можно вставлять как макрос "{value}". А можно использовать и значения других полей по их имени в квадратных скобках, например, "[myfield]" в рамках каждой из ячейки такой таблицы.
2. Состояние оборудования на ЖД станции
https://cogisdemo.dataeast.com/portal/customers/lampyris/cherepanovo
Если оформление плашки объекта не ложиться на набор визуально выделяемых колонок, можно определить общую ячейку, "Шаблон вывода" у которой будет включать значение всех необходимых полей объекта в нужном вам расположении.
3. Инвестиционная карта Сахалинской области
https://cogisdemo.dataeast.com/portal/regions_rf/sakhalin/invest
Кроме того, через такой же механизм вставки значения полей можно выводить превью-фото из файловых вложений объекта. Для чего источник слоя должен быть не физической таблицей, а SQL-представлением (SQL-вьюшкой), где в плюс к физическим полям исходной таблицы будут добавлены ещё и расчетные поля, например, вместо вырожденного SQL-запроса для определения SQL-вьюшки по таблице:
SELECT * FROM "myschema"."mytable"
вы можете использовать хотя бы такой простой в написании, хоть и не оптимальный запрос (на примере PostgreSQL)
SELECT *, (SELECT "ATTACHMENTID" FROM "myschema"."mytable__ATTACH" WHERE "mytable__ATTACH"."REL_OBJECTID" = "mytable".oid AND "mytable__ATTACH"."ATT_NAME" LIKE 'preview%' LIMIT 1) AS logo_id FROM "myschema"."mytable"
(для эстетов можете оптимизировать запрос с помощью SQL-функции ROW_NUMBER() с фильтрацией по номеру строки в группе, заждойнив исходную таблицу и аттач-таблицу)
В результате слой в вашем карт.проекте будет использовать данную SQL-вьюшку, которая кроме исходных полей вашей таблицы будет выдавать и ID первой превьюшки прикреплённой фотографии. И этот ID можно использовать для формирования URL до картинки в теге <img src="">
А чтобы данный слой оставался редактируемым, то используйте свойство elitegis_view_source_table в вашем QGS-проекте (см. в документации "Подмена источника для отображения").