ESRI HTTP gdzie zapytanie

9

Razem z przyjacielem tworzymy teraz całkiem prostą bibliotekę LINQ do biblioteki ESRI, która wysyła zapytania HTTP do ArcGIS MapServer, a następnie odpowiednio analizuje odpowiedź JSON.

Obecnie wszystko działa pięknie, z wyjątkiem jednej rzeczy; wiele instrukcji Where. Wydaje się, że to prosty problem ze składnią, ale wydaje mi się, że nie mogę go uruchomić ani dowiedzieć się, czy jest obsługiwany. Próbuję zrobić coś takiego.

Nie działa:

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

Działa:

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

Działa również:

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

Wypróbowałem kilka różnych wersji składni, ale wydaje się, że nie można uzyskać wielu instrukcji Where do działania. To jest moje główne źródło do dzielenia tych zapytań. Jeśli ktoś zna składnię, aby to zrobić, lub zna źródło, które mówi, że nie jest to możliwe.

jsmith
źródło
1
LINQ do ESRI brzmi jak świetny pomysł, daj nam znać, jak to idzie.
Britt Wescott,

Odpowiedzi:

8

Trzymaj się pojedynczego parametru where w ciągu zapytania. Oto przykład klauzuli where uderzającej w wiele pól: http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incident/MapServer/0/query?geometryType=esriGeometryPoint&spatialRel=esriSpatialRelIntersects&where=address%HD + ST% 27 + lub + objectid% 3D193510 & returnIdsOnly = false & returnGeometry = true & outFields =% 27status, objectid% 27 & f = html

Derek Swingley
źródło
2
+1 doc mówi, gdzie mogą być arg „Każdy SQL prawny gdzie operacyjny klauzula na polach w warstwie jest dozwolone.” chociaż podejrzewam, że istnieją legalne instrukcje SQL, w których nie są obsługiwane klauzule.
Kirk Kuykendall
Widzę, że tak się dzieje, ponieważ ESRI nie obsługuje niektórych klauzul dotyczących prostych filtrów IQuery ...
George Silva