2016-07-03 2 views
2

Я пытаюсь запросить для каждого состояния внутри геоида, таким образом, использование WITHIN, но оно не работает должным образом. Можете ли вы дать мне хороший пример этого. Документы не очень хороши для CQL-фильтров. Я использую следующиеМожет кто-нибудь объяснить использование CQL_Filter внутри в geoserver

"CQL_FILTER=WITHIN(the_geom,buffer(querySingle('"+ 
this.geoopts.lastLayer+"','the_geom','CODE=" + 
this.geoopts.lastId + "') ,0.0001))" 
+0

В этом контексте что такое «геоид»? –

ответ

0

это выглядит, как вы, возможно, пытается использовать расширение «querylayer» (1). У вас он установлен?

Ваш CQL действительно выглядит разумным (подробнее см. Ссылку 2 ниже).

В качестве примечания функция буфера действует непосредственно на геометрию. Таким образом, единственными единицами, которые могут использоваться, являются те из системы координат (CRS) первого уровня.

Если CRS этого уровня является единицей для долготы/широты, вы устанавливаете. Расстояние 0,0001 составляет около 10 метров.

Учитывая все это, все может быть легко ошибочным, если A) плагин querylayer не установлен или B) CRS для первого уровня находится в метрах.

  1. Документы для расширения запроса для запросов [http://docs.geoserver.org/stable/en/user/extensions/querylayer/index.html].

  2. Немного больше о пространственных предикатах в (E) CQL [http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html#geometric-filters].