В Marklogi c Я использую cts.geospatialRegionQuery
для поиска документов, которые содержат (проиндексированную) геометрию, которая пересекается с геометрией, с которой я ищу.
В индексе геопространственной области в качестве системы координат используется etrs89/double
. Все геометрии в данных имеют 9 десятичных знаков.
Согласно документации Marklogi c Прикладные программы геопространственного поиска :
[...] Запросы геопространственных данных с индексами одинарной точности с точностью до 1 метра для систем координат geodeti c.
Поэтому я ожидал бы, что мои запросы будут иметь точность менее метра. Тем не менее, я получаю результаты поиска от cts.geospatialRegionQuery
, содержащего геометрию на расстоянии ~ 5 метров от моей геометрии поиска. Насколько я вижу, единственной причиной этого может быть параметр tolerance
, который я еще не определяю и поэтому использую по умолчанию.
В документации упоминается, что
Если вы явно не установите допуск, MarkLogi c использует допуск по умолчанию, соответствующий системе координат. Чтобы гарантировать точность, MarkLogi c применяет минимальный допуск для каждой системы координат.
Это подводит нас к актуальному вопросу:
Что такое стандартное (и минимальное) допуск для система координат etrs89 в Марклоги c?
РЕДАКТИРОВАТЬ: Подробно рассмотрел проблему с помощью службы поддержки Marklogi c и обнаружил причину низкой точности моих геопространственных запросов.
Перед использованием cts.geospatialRegionQuery
я проанализировал геометрию поиска с помощью geo.parseWkt
. Эта функция не позволяет вам явно установить систему координат, которая будет использоваться, и поэтому использует систему координат, заданную в настройках AppServer. По умолчанию это wgs84 одинарной точности. Это привело к потере 2-3 цифр в моей геометрии поиска.
После установки системы координат на etrs89 / double в настройках AppServer geo.parseWkt
больше не снижал точность геометрии поиска, и мои геопространственные запросы имели ожидаемую точность 5 мм.