GeoMesa: совместимость с Cassandra WMS

Я заметил внизу этой страницы GeoMesa Cassandra:

http://www.geomesa.org/documentation/1.3.0/user/cassandra/geoserver.html

что он говорит:

«Также помните, что все запросы к слою Cassandra должны включать как компонент bbox, так и дату/время между компонентами как часть фильтра CQL».

Как это влияет на совместимость с WMS-совместимыми инструментами/apis (т. е. с использованием API-интерфейса геосервера для доступа к слоям), такими как Leaflet.js и подключаемый модуль QGIS time manager? Что я хотел бы сделать, так это реализовать автоматическое воспроизведение (например, воспроизведение фильма) в течение определенного периода времени, отображая слои за определенный период времени с данными, хранящимися в Cassandra через GeoMesa, но, очевидно, я хочу использовать Leaflet.js и/или подключаемый модуль менеджера времени QGIS, чтобы автоматически предоставлять обновленные параметры времени для реализации этого. Однако кажется, что приведенное выше утверждение, применимое к GeoMesa и Cassandra, не будет соответствовать стандарту WMS, которому следуют Leaflet.js и плагин для управления временем.

Я ошибаюсь в этой оценке GeoMesa и того, как она хранит/предоставляет данные в/из Cassandra? Если я ошибаюсь, можно ли использовать инструменты с открытым исходным кодом, которые я упомянул, для автовоспроизведения, соответствующие стандарту WMS?

Спасибо.


person user1930364    schedule 27.02.2018    source источник


Ответы (1)


Полная поддержка запросов была добавлена ​​в реализацию GeoMesaa Cassandra, начиная с версии 1.3.1. Однако даже в более ранних версиях хранилище данных Cassandra по-прежнему совместимо с WMS при установке в GeoServer. Он не будет возвращать данные для запросов, которые не имеют ни ограничивающей рамки, ни временного диапазона, но если вы удовлетворяете этим требованиям, вы можете вызывать его из листовки или qgis.

person Emilio Lahr-Vivaz    schedule 27.02.2018
comment
Спасибо за ответ, Эмилио. Я только что понял, посмотрев на вызов REST, что параметр bbox добавляется из-за создания/конфигурации слоя (извините, я этого не понял). Но как насчет параметра времени, то есть если я добавлю Time на вкладке слоя Dimensions в GeoServer, выберу атрибут времени, а затем добавлю &TIME=2018-01-08T00:00:00.0Z/2018-01-08T23:59:59.999 Z до конца ничего не отображается. Для измерения времени у меня есть Представление в виде списка и значение по умолчанию как Использовать наименьший домен. Если это должен быть другой вопрос, я и lmk вступлю, но я думаю, что это уместно здесь. - person user1930364; 27.02.2018
comment
Является ли атрибут времени, который вы выбрали, основной датой, индексируемой geomesa? См. здесь - person Emilio Lahr-Vivaz; 27.02.2018
comment
Когда вы говорите основную дату, вы имеете в виду атрибут, который я устанавливаю для этого: simpleFeatureType.getUserData().put(SimpleFeatureTypes.DEFAULT_DATE_KEY, myDateTime). Это то, что вы имеете в виду? Если да, то да, это атрибут, который я пытаюсь использовать для времени в определении слоя GeoServer. Обратите внимание, что я не устанавливаю индекс ни для одного из атрибутов. В простом определении атрибута типа объекта мой атрибут времени просто определяется как myDateTime:Date. И это то, что я пытаюсь использовать в качестве поля времени. Должен ли я установить :index=full на myDateTime? Спасибо еще раз - person user1930364; 27.02.2018
comment
да, это основная дата. вам не нужно использовать 'index=full' для использования основного пространственно-временного индекса - это создаст индекс только для даты, хотя это не реализовано в Cassandra до версии geomesa 1.3.1. - person Emilio Lahr-Vivaz; 27.02.2018
comment
Есть ли в вашем запросе ограничивающая рамка, которая меньше, чем весь мир? Если ограничивающая рамка -180,-90,180,90, то она не считается фактическим фильтром. - person Emilio Lahr-Vivaz; 27.02.2018
comment
Есть ли причина, по которой вы используете более старую версию geomesa? Вы выбрали последнюю версию, которая не имеет полной поддержки Cassandra. Я бы посоветовал попробовать последнюю версию, в настоящее время 2.0.0-m.1. - person Emilio Lahr-Vivaz; 27.02.2018
comment
Пара вещей - я дважды проверил, и я действительно устанавливаю :index=full для атрибута времени. Похоже, я должен удалить это. Что касается ограничивающей рамки, для Native я просто выбираю Compute from data на экране создания слоя GeoServer, что дает мне: Min X: -180, Min Y: -90, Max X: 180, Max Y: 90 и для Широты/Долготы BBox я выбираю Вычисление из собственных границ, и это дает мне те же значения, которые я только что перечислил. Это неправильно? Если да, то что я мог бы уменьшить их тоже для тестирования, допустим, если все мои полигоны в США / Европе? И да, я могу попробовать обновиться до 2.0.0-m.1 - person user1930364; 27.02.2018
comment
вам не нужно изменять границы на экране слоя, но вам нужно изменить границы в URL-адресе запроса геосервера - person Emilio Lahr-Vivaz; 27.02.2018
comment
Я только что заметил, что вы упомянули многоугольники - я считаю, что 1.3.0 Cassandra поддерживает только точечную геометрию. Если вы используете полигоны, вам необходимо обновиться до более новой версии. - person Emilio Lahr-Vivaz; 27.02.2018
comment
Что, если бы я просто уменьшил границы bbox на экране слоя? Будет ли этого достаточно, чтобы собрать данные, просто оставив bbox в покое, а затем просто позволив Leaflet.js и плагину qgis time manager обновить только параметры TIME? Или вы говорите, что параметр геомесы bbox каким-то образом должен изменяться при каждом запросе? Но зачем, особенно если изображения слоев прогрессируют во времени в одной и той же общей области. Например, что, если бы я просто хотел установить для bbox регион южной Луизианы здесь (последнее видео): anitagraser.com/2015/08/10/using-timemanager-for-wms-t-layers ty - person user1930364; 27.02.2018
comment
Или даже установка границ слоя на всю территорию США в этом случае также должна быть достаточной, не так ли? Я предполагаю, что я говорю о том, что я каждый раз меняю параметры bbox to (можете ли вы привести пример), если я просто пытаюсь сделать визуальное автовоспроизведение для одного и того же региона во временном ряду. ? Спасибо еще раз - person user1930364; 27.02.2018
comment
ограничивающая рамка не должна меняться, но у вас должна быть ограничивающая рамка меньше, чем весь мир. ваш пример всегда отправлять ограничительную рамку для Луизианы было бы хорошо. - person Emilio Lahr-Vivaz; 27.02.2018
comment
Теперь я добавил меньшую ограничительную рамку в конфигурацию слоя и продвинулся немного дальше, но запрос времени никогда ничего не возвращает, когда указана часть запроса с отметкой времени. Когда я нажимаю точку в предварительном просмотре openlayer, в поле времени отображается: 08.01.18, 9:42. Этот запрос работает, но возвращает все за день: &TIME=2018-01-08/2018-01-08, а этот параметр времени вообще ничего не возвращает: &TIME=2018-01-08T09:40:00.0Z/2018- 01-08T09:43:00.0Z Как было отмечено в предварительном просмотре OL, у меня есть строка с 09:42:00 в данных, и я попробовал &TIME=2018-01-08T09:40Z/2018-01-08T09:43Z и несколько других вариаций. - person user1930364; 28.02.2018
comment
Эмилио - большое спасибо за понимание того, как уменьшить ограничивающую рамку. Как оказалось, мои значения времени в запросе были неверными. Спасибо еще раз! - person user1930364; 28.02.2018