
Интеграция между системами с помощью ссылок? Да, нередко громкие слова про интеграцию разных систем в рамках одной организации сводятся к простой переброске контекста выбранного объекта из одной системы в другую. Например, картографическая часть данных с минимальным набором атрибутов у вас реализована на CoGIS, а расширенная атрибутика со сложными связами в какой-то другой системе, и хочется упростить жизнь пользователям хотя бы серез простую переброску из одной системы в другую.
Что для такой лёгкой интеграции между системами на уровне ссылок есть в CoGIS:
1. Ссылка на объект в CoGIS
Функционал "Поделиться ссылкой" в CoGIS чуть умнее, чем кажется на первый взгляд. Рассмотрим как раз вариант "С сохранением основных параметров", что доступен из коробки без какой-либо настройки.
В окне "Поделиться ссылкой на карту" формируется ссылка на карту с учетом текущего экстента. А если в этот момент была открыта карточка объекта, то в ссылке будут и параметры, которые позволят перейти к карте сразу с открытой карточкой на объект.
Типичная ссылка выглядит вот так: https://cogisdemo.dataeast.com/portal/solutions/cadastre#id=0_30_207370& scale=18056¢erX=82.92546987533571& centerY=55.029387280634516& layers=0.23.32
В хвосте этого URL, после символа решетки, идёт перечисление параметров - какой объект открыть, на какой экстент приблизиться при открытии карты по ссылке, какие виджеты должны открыться и т.д. Все параметры необязательны, и можно оставить только один. Нас интересует параметр id. В приведённой ссылке он выглядит как id=0_30_207370. В итоге рабочая короткая ссылка на объект выглядит так: https://cogisdemo.dataeast.com/portal/solutions/cadastre#id=0_30_207370
При переходе по этой ссылке в CoGIS откроется не только карточка этого объекта, но и карта автоматически спозиционируется на этот объект.
Рассмотрим значение параметра id. Оно состоит из трёх частей: порядковый номер карт.сервиса в веб-карте, номер слоя в этом сервисе и идентификатор (objectid) объекта. Всё разделено подчёркиванием.
Сформировав вручную один раз ссылку по одному из объектов, вы теперь знаете, какие должны быть ссылки по другим объектам этого же слоя - просто подменяете objectid. Но вот незадача - ведь идентификатор объекта почти всегда задаётся и формируется в базе геоданных и не известен сторонней системе. Но для этого в CoGIS есть хитрость. Третья составляющая может быть не только значением objectid, но и атрибутивным фильтром! Ведь системы между собой должны иметь хотя бы один общий атрибут для объектов. Для указанной кадастровой карты это будет кадастровый номер объекта. В итоге значение id будем заканчиваться таким фильтром: cadastral_number='54:35:101350:6'
А итоговая ссылка будет следующая:
https://cogisdemo.dataeast.com/portal/solutions/cadastre#id=0_30_cadastral_number='54:35:101350:6'
Вам остаётся лишь в сторонней системе формировать и показывать пользователям ссылку, которую вы будете формировать по шаблону вида
https://cogisdemo.dataeast.com/portal/solutions/cadastre#id=0_30_cadastral_number='XXXXXX'
2. Ссылка из CoGIS по выбранному объекту
Рассмотрим ситуацию наоборот. Надо из карточки объекта в CoGIS перейти в другую систему. Требование к ней одно - она должна открываться по ссылке. Это может быть URL до веб-системы или же такая же ссылка, просто не по http/https, а по своему собственному протоколу, который реализуется desktop-программой.
Если значение атрибута объекта в его карточке является такая ссылка, то она будет автоматически распознаваться и быть кликабельной (например, это может быть строка "Notes://Proton15/4125/0146763/79128").
Кроме того, если значение атрибута содержит составной текст, среди которого есть одна или даже несколько ссылок - все они станут кликабельными. К таким ссылкам относятся и "mailto:" для открытия диалога написания нового письма, и "tel:" для звонков (актуально для мобильной веб-вёрстки в браузерах на смартфонах).
А если вы хотите сформировать ссылку динамически на основе нескольких атрибутов, то это можно легко сделать в Конструкторе через HTML-блок в шаблоне карточки объекта, применяя вставку значений полей в квадратных скобках по типу "[myfield]", например:
<a href="https://www.google.com/search?q=[cadastral_number]">Искать в Google</a>,
<a href="https://yandex.ru/search/?text=%22[cadastral_number]%22">Искать в Яндекс</a>