HTTP de ESRI donde consulta

9

Un amigo y yo estamos creando una biblioteca LINQ to ESRI bastante sencilla que envía consultas HTTP a un ArcGIS MapServer y luego analiza la respuesta JSON de manera adecuada.

Actualmente todo funciona a la perfección, excepto una cosa; múltiples declaraciones Where. Esto parece un simple problema de sintaxis, pero parece que no puedo hacer que funcione, o averiguar si es compatible. Estoy tratando de hacer algo como esto.

No 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

También funciona:

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

He intentado varias versiones de sintaxis diferentes, pero parece que no puedo obtener una instrucción Where múltiple que funcione. Esta es mi fuente principal para desglosar estas consultas. Si alguien conoce la sintaxis para hacer esto, o conoce la fuente que dice que no es posible.

jsmith
fuente
1
LINQ to ESRI suena como una gran idea, háganos saber cómo va.
Britt Wescott

Respuestas:

8

Apéguese a un solo parámetro where en su cadena de consulta. Aquí hay un ejemplo de una cláusula where que golpea múltiples campos: http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/MapServer/0/query?geometryType=esriGeometryPoint&spatialRel=esriSpatialRelInterse+&HHD75% + ST% 27 + o + objectid% 3D193510 & returnIdsOnly = false & returnGeometry = true & outFields =% 27status, objectid% 27 & f = html

Derek Swingley
fuente
2
+1 El documento dice dónde arg puede ser "Se permite cualquier cláusula SQL legal donde opere en los campos de la capa". aunque sospecho que hay SQL legal donde las cláusulas no son compatibles.
Kirk Kuykendall
Puedo ver que eso sucede, ya que ESRI no admite algunas cláusulas sobre IQueryFilters simples ...
George Silva