Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feature]: Read every feature of an ArcGIS FeatureServer or MapServer layer, past its record limit

Open
#764 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@Mavrick-F is already working on this.

Since Oct 23, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement
Before you start
  • I searched the existing issues and the roadmap and did not find a duplicate request.
What problem does this solve?

ArcGIS feature and map services return at most maxRecordCount features per query, often 1,000 or 2,000. A county's parcel or zoning layer is usually far bigger. RustGIS reads the first page only and then says "the server sent its first features only (its record limit); the rest aren't read" (ogc::partial_note). The layer looks complete on the map until you look closely, and many local governments publish their data only this way, through ArcGIS Hub or their own servers.

OGC API Features layers already read every page (#519, ogc::join_pages, desktop), but that follows next links. ArcGIS answers have no next link; they set exceededTransferLimit and expect the client to ask again with resultOffset.

Proposed solution
  • When an ArcGIS query answer sets exceededTransferLimit, fetch the following pages with resultOffset and resultRecordCount (the layer's maxRecordCount), within the same limits join_pages uses today (MAX_PAGED_FEATURES, the byte budget and the timeout), and keep the note when a limit cuts the layer short.
  • Fall back to the current first-page behaviour, with its note, for servers that don't support pagination (advancedQueryCapabilities.supportsPagination false, or ArcGIS Server before 10.3).
  • Tests with recorded answers: two pages that join, a server without pagination, a page limit reached, and a hostile maxRecordCount (0, negative, huge).

Open question: the web app doesn't page at all today, for OGC API either. Should this cover the browser too, or stay desktop-only like #519 for now?

Estimated scope

Small to medium: rustgis-data (ogc.rs) and engine/src/cmd/service.rs; no new dependency, no change to command ids or the project format.

Alternatives considered
  • Paging by object ID (returnIdsOnly, then batches of objectIds) works on servers without resultOffset, but costs an extra request and very long URLs. Possible later as the fallback.
  • Leaving it to GDAL's ESRIJSON driver needs GDAL installed and doesn't work in the browser.

I'm taking this one.

Dominant language
Rust
Stars
1.9k
Forks
268
Avg merge
3h 1m
Merged PRs (30d)
556

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from opengeos/RustGIS

All issues in opengeos/RustGIS

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.