ArcGIS Server и устаревший Оракл :)

0 голосов
спросил 18 Ноя от giser (420 баллов) в категории Программные продукты Esri
Здравствуйте!

Имеются ArcGIS Server 10.6 и Oracle 10.

Понимаю, что Оракл слишком старый для прямого подключения. Поэтому я произвел подключение через ODBC-драйвер. Добавил необходимую таблицу с колонками координат, создал слой событий, после чего опубликовал сервис. Все прошло успешно, но вылезли некоторые проблемы.

1. В слое событий имеется столбец с датой и временем. Время в столбце московское. Когда я добавляю сервис в веб-карту (ArcGIS Portal 10.5.1), то умный ArcGIS переводит его якобы во время моего пояса, т.е. прибавляет еще 3 часа, видимо, думая, что мои данные в UTC. Чтобы этого избежать, мне необходимо публиковать данные, указав, в каком часовом поясе даты и время в моих данных. Что я и сделал. Но это не работает со слоем событий! Даже проводил эксперимент: сохранил слой событий в базу геоданных и опубликовал этот слой вместе со слоем событий в одном сервисе, указав часовой пояс. Для слоя из базы эта настройка сработала.

Почему так происходит и как разрешить ситуацию? Возможно ли без изменений в базе Oracle? Перевод времени в текстовое поле не подходит, поскольку будет применяться виджет фильтра по времени. Единственный вариант выхода из ситуации, который пришел мне на ум: создать поле в таблице Oracle со временем в UTC и работать с ним.

2. Веб-карта, содержащая вышеупомянутый слой событий, добавлена в приложение WAB. Виджет Attribute Table открывает таблицу объектов, но не позволяет их выбирать и приближаться к ним. В чем может быть проблема?

1 Ответ

0 голосов
ответил 19 Ноя от Grigoriy (124,340 баллов)
выбран 19 Ноя от giser
 
Лучший ответ

1. Портал берёт настройки даты и времени из настроек Вашего профиля на портале.

https://enterprise.arcgis.com/en/portal/latest/use/set-language-region.htm

https://enterprise.arcgis.com/ru/portal/latest/use/set-language-region.htm

Вы можете настроить отображение атрибутов используя выражение на языке Arcade.

https://enterprise.arcgis.com/ru/portal/latest/use/configure-pop-ups.htm#ESRI_SECTION1_BE0D1CA2E46742F18E7D442FB2E0F47D

Попробуйте, например: ToUTC( $feature.DATECREATED )

DATECREATED - это имя столбца в таблице.

Ну или как вариант - напишите view в оракле, сдвинув время :)

2. События должны иметь уникальное заполненное целочисленное поле, которое также является "ключом" в СУБД. Тогда возможно Вы сможете выделять объекты и приближаться к ним.

Если Вы не добьётесь этого поведения в ArcMap или ArcGIS Pro, то в сервисе его не будет.

http://desktop.arcgis.com/ru/arcmap/10.3/map/working-with-layers/adding-x-y-coordinate-data-as-a-layer.htm#GUID-FA6A8424-C372-4CC0-8456-C7244A224DE1

оставил комментарий 19 Ноя от giser (420 баллов)
редактировать 19 Ноя от giser
Спасибо за ответ!

1. Про возможность создания пользовательского поля с помощью выражения Arcade информацию находил. Но у меня Portal 10.5.1, и там еще нет поддержки выражений. Я попробовал эту возможность в ArcGIS Online, как раз применив выражение toUTC, которое позволило мне "откатить" дату на 3 часа. В карточке объекта стало отображаться правильное время. К сожалению, пользовательское поле нельзя использовать в виджете "Filter".
В итоге, пошел по варианту времени UTC в поле вьюхи.

2. Действительно, в ArcMap могу выбирать объекты в таблице, но приближаться к ним не могу. Жаль. Как вариант, попробую создать поле в Оракле с названием OBJECTID. Надеюсь, ArcGIS станет сговорчивее :)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...