ESRI HTTP où requête

9

Un ami et moi créons actuellement une bibliothèque LINQ to ESRI assez simple qui envoie des requêtes HTTP à un ArcGIS MapServer, puis analyse la réponse JSON de manière appropriée.

Tout fonctionne actuellement magnifiquement, sauf une chose; plusieurs instructions Where. Cela semble être un simple problème de syntaxe, mais je n'arrive pas à le faire fonctionner ou à savoir s'il est pris en charge. J'essaie de faire quelque chose comme ça.

Ne fonctionne pas:

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

Fonctionne:

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

Fonctionne également:

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

J'ai essayé plusieurs versions de syntaxe différentes, mais je n'arrive pas à obtenir une instruction Where multiple pour fonctionner. Ceci est ma principale source pour décomposer ces requêtes. Si quelqu'un connaît la syntaxe pour le faire, ou connaît la source qui dit que ce n'est pas possible.

jsmith
la source
1
LINQ to ESRI semble être une excellente idée, laissez-nous savoir comment cela se passe.
Britt Wescott

Réponses:

8

Respectez un seul paramètre where dans votre chaîne de requête. Voici un exemple de clause where frappant plusieurs champs: http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/MapServer/0/query?geometryType=esriGeometryPoint&spatialRel=esriSpatialRelIntersects&where=address%3D%27875+ + ST% 27 + ou + objectid% 3D193510 & returnIdsOnly = false & returnGeometry = true & outFields =% 27status, objectid% 27 & f = html

Derek Swingley
la source
2
+1 Le document indique que l'argument where peut être "Toute clause SQL juridique where opérant sur les champs de la couche est autorisée." bien que je soupçonne qu'il existe des clauses SQL légales qui ne sont pas prises en charge.
Kirk Kuykendall
Je peux voir cela se produire, car ESRI ne prend pas en charge certaines clauses sur les simples IQueryFilters ...
George Silva