ESRI HTTP em que consulta

9

No momento, um amigo e eu estamos criando uma biblioteca LINQ to ESRI bastante direta que envia consultas HTTP para um ArcGIS MapServer e analisa a resposta JSON adequadamente.

Atualmente, tudo está funcionando lindamente, exceto uma coisa; várias instruções Where. Parece um problema simples de sintaxe, mas não consigo fazê-lo funcionar ou descobrir se é compatível. Estou tentando fazer algo assim.

Não funciona:

MapServer/22/query?where=MY_FIELD='Whatever'&where=MY_OTHER_FIELD='Whatever'&f=json

Funciona:

MapServer/22/query?where=MY_FIELD='Whatever'&f=json

Também funciona:

MapServer/22/query?where=MY_OTHER_FIELD='Whatever'&f=json

Eu tentei várias versões de sintaxe diferentes, mas não consigo obter uma instrução Where múltipla para funcionar. Esta é minha fonte principal de detalhamento dessas consultas. Se alguém conhece a sintaxe para fazer isso, ou conhece a fonte que diz que não é possível.

jsmith
fonte
11
O LINQ to ESRI parece uma ótima idéia, deixe-nos saber como vai.
Britt Wescott

Respostas:

8

Atenha-se a um único parâmetro where na sua string de consulta. Aqui está um exemplo de uma cláusula where que atinge vários campos: http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/MapServer/0/query?geometryType=esriGeometryPoint&spatialRel=esriSpatialRelIntersects&where=address%3D%278 + ST% 27 + ou + objectid% 3D193510 & returnIdsOnly = false & returnGeometry = true & outFields =% 27status, objectid% 27 & f = html

Derek Swingley
fonte
2
+1 O documento diz que arg pode ser "Qualquer cláusula SQL SQL legal que opera nos campos da camada é permitida". embora eu suspeito que haja cláusulas SQL where legais que não são suportadas.
Kirk Kuykendall
Eu posso ver isso acontecendo, já que ESRI não suporta algumas cláusulas em IQueryFilters simples ...
George Silva