Skip to content

About

Small, self-contained web apps that illustrate capabilities and recent additions of the ArcGIS Geocoding service

Topics

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ArcGIS Geocoding sample apps

Small, self-contained web apps that illustrate capabilities and recent additions of the ArcGIS Geocoding service.

Each sample focuses on one parameter or capability, has a UI designed for that specific idea, links to the Esri blog post that explains it, and ships saved service responses so you can see the result without issuing new requests.

Everything is static: no build step, no server. The samples are published with GitHub Pages.

Samples

Sample Capability Blog post
street-address-interpolation interpolatePointAddress — interpolate a location between adjacent rooftop addresses instead of falling back to a street-segment match (Addr_type = PointAddressInt) June 2026 updates

Running locally

The samples need a static server: they load their saved responses with fetch(), which browsers block for file:// URLs, and their basemap key is restricted by referrer, which file:// does not send.

No key is stored in this repository. Copy config.local.example.js to config.local.js inside the sample folder and paste your own — that file is git-ignored, and the published site gets its key from the ARCGIS_API_KEY repository secret instead (see Deployment).

The key should be authorized for the hostname arcgis-samples.localhost rather than plain localhost, so it cannot be reused by any other project running on the same machine. Anything under .localhost resolves to the loopback address without configuration on macOS and in Chromium-based browsers; if your setup does not resolve it, add it to your hosts file once:

echo "127.0.0.1 arcgis-samples.localhost" | sudo tee -a /etc/hosts

Serve the repository root and browse through that hostname:

npm run dev     # http://arcgis-samples.localhost:8123/ — opens the browser for you

That runs scripts/dev-server.mjs, a dependency-free static server (plain Node, no npm install); PORT=3000 npm run dev changes the port. python3 -m http.server 8123 works just as well as long as you browse through the same hostname.

VS Code's Live Server is preconfigured for it in .vscode/settings.json, but that setting is window-scoped: in a multi-root workspace VS Code ignores it and serves 127.0.0.1 instead, so copy those entries into your .code-workspace file — or just use npm run dev.

Deployment

.github/workflows/deploy.yml publishes the repository to GitHub Pages on every push to main. Before the artifact is uploaded, .github/scripts/inject-key.py replaces the __ARCGIS_API_KEY__ placeholder in every examples/*/config.js with the ARCGIS_API_KEY repository secret, so the key reaches the published site without ever being committed.

One-time setup: add the ARCGIS_API_KEY secret (Settings → Secrets and variables → Actions) and set Pages to build from GitHub Actions (Settings → Pages → Source: GitHub Actions).

Live requests

By default the samples read the JSON files under each sample's data/ folder — no credentials needed. Where a sample offers a live mode, you supply your own API key or OAuth 2.0 access token at runtime; it is never stored in this repository.

Geocoding requests are billable and subject to the ArcGIS Location Platform terms; in particular, storing results requires forStorage=true.

Repository layout

index.html                landing page listing the samples
examples/<capability>/    one folder per sample
    index.html            entry point
    README.md             what it shows, blog link, requests used
    data/                 saved service responses
    postman/              optional Postman collection

Contributing a sample

  1. Create examples/<capability-name>/ (kebab-case, named after the parameter or capability).
  2. Capture the service responses you need into data/, stripping any token from the request URLs, and document the exact requests in the sample README.
  3. Build a static UI shaped around what the capability actually shows.
  4. Link the blog post, and the Postman request if there is one.
  5. Add a row to the table above.

License

Apache License 2.0.

About

Small, self-contained web apps that illustrate capabilities and recent additions of the ArcGIS Geocoding service

Topics

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages