GIS Tools

Language

Made withfor the GIS community

Feature Identify Tool

Click features to view attributes in a popup

Query & Filter

Drop files here or click to browse

Supported formats: GeoJSON

GeoJSON

About Feature Identify

  • Click any feature to see its attributes
  • View geometry metrics (area, length, centroid)
  • Selected feature is highlighted in green

What Is the Feature Identify Tool?

The feature identify tool is the most basic and most-used interaction in any GIS application: click on a feature, see its attributes. It is the digital equivalent of pointing at a paper map with your finger and asking "what is this?" Despite being conceptually simple, identify is the gateway interaction for almost all spatial data exploration. You load a file, you want to know what is in it, you click on a polygon, and a popup tells you the name, the population, the area, the source, and whatever other fields the data carries.

The tool sits at the intersection of map rendering and attribute table lookup. When you click, the renderer determines which features are under the cursor (often using a hit-test against a spatial index), then looks up the matching rows in the attribute table and displays them in a popup, sidebar, or info panel. The simplest implementations show one feature at a time; more sophisticated ones handle clicks that hit multiple stacked features and let you cycle through them.

The gis.tools feature identify tool runs entirely in the browser against the in-memory FeatureCollection. It supports point, line, and polygon click targets, handles multi-feature stacks gracefully, and renders attribute tables with type-aware formatting (dates, URLs, numbers, booleans). Because everything is local, identify works on sensitive datasets without leaking attribute values to a server.

Identify is often the first tool a user reaches for after loading a new file, and the speed and clarity of its popups shape the entire user experience of the viewer.

How Feature Identify Works

Hit testing

When you click on the map, the viewer takes the screen pixel coordinates and converts them to a geographic coordinate using the inverse of the current map transform. It then queries the spatial index of each visible layer for features whose bounding box contains the click location. Bounding box matches are filtered through a precise point-in-polygon test (or distance-to-line test for line layers, or distance-to-point test for point layers).

Tolerance for points and lines

Clicking exactly on a point or line is hard with a mouse and impossible with a finger on a touchscreen. The identify tool applies a pixel tolerance (typically 5-10 pixels) so that a click within that radius of a point or line still counts as a hit.

Multi-feature handling

When multiple features are stacked under the cursor β€” for example, a point on top of a polygon on top of a polygon β€” the tool returns all of them in a list and lets the user pick which one to inspect.

Key Parameters and Options

Click tolerance

The pixel radius for point and line hit-testing. Higher values are more forgiving on touchscreens but cause spurious hits in dense layers.

Layer selection

Identify can be restricted to a single layer or run against all visible layers. For complex maps, restricting to one layer at a time gives cleaner results.

Popup vs panel

Results can render as a floating popup anchored to the click location or in a persistent side panel. Popups are good for quick lookup; panels are better for comparing multiple features.

Attribute formatting

Type-aware formatters render dates as human-readable strings, URLs as clickable links, long text as expandable cells, and booleans as checkmarks.

Practical Applications

Open data exploration

A citizen downloads a parcel layer from their city's open data portal and wants to know who owns the lot next door, how big it is, and when it was last assessed. They load the GeoJSON, click on the parcel, and the popup shows owner name, area in square feet, and last assessed value.

Field verification

A biologist on a survey route uses a tablet with the gis.tools viewer loaded in offline mode. When they spot a tagged tree, they click on it on the map to verify the species recorded in the database matches what they see in the field.

Real estate due diligence

A property investor clicks on a candidate parcel and sees the zoning code, lot size, FEMA flood zone designation, and last sale price all in a single popup, accelerating the initial screen of potential acquisitions.

Education

A geography teacher uses identify to make a layer of countries interactive: students click on a country to see its capital, population, GDP, and primary language as a learning exercise.

Infrastructure inspection

A utility worker clicks on a hydrant on the map to see install date, maintenance history, last flow test result, and assigned inspector. The popup links to a maintenance ticket form.

Journalism

A reporter investigating campaign finance loads a precinct-level donation dataset and clicks through individual precincts to spot anomalies in donation patterns.

Emergency dispatch

A 911 dispatcher uses identify on a building footprint to retrieve the building's hazardous materials inventory, occupancy load, and access notes before sending units to a fire call.

Step-by-Step Workflow

  1. Load your dataset into the GeoJSON, KML, Shapefile & GIS File Viewer.
  2. Click on a feature on the map.
  3. Read the popup showing the feature's attribute fields and values.
  4. Cycle through stacked features using the next/previous buttons if multiple features are under the cursor.
  5. Copy attribute values to your clipboard for downstream use.
  6. Open external links if any URL fields are present.
  7. Close the popup by clicking elsewhere or pressing Escape.

Worked Example

A land use researcher loads a county-wide GeoJSON of 18,000 zoning parcels. They click on a parcel they suspect has been recently rezoned. The popup displays the current zoning code (R3 - Multi-Family Residential), the previous zoning code (R1 - Single-Family Residential), the rezoning date, the case number, and a URL to the planning commission's case file.

The researcher clicks the URL, reads the case file, copies the case number into a spreadsheet they are building of recent rezoning actions, and moves on to the next parcel. Without identify, this workflow would require exporting the entire attribute table to CSV and using lookup formulas β€” minutes instead of seconds per parcel.

Common Pitfalls and Gotchas

  • Empty popups. A feature with no attributes (just a geometry) renders an empty popup. Check the source file's properties object.
  • Unicode mangling. Attribute values in non-Latin scripts may render as boxes or question marks if the file's encoding is not detected correctly.
  • Long text fields. Multi-paragraph descriptions can blow out the popup. Use a panel layout instead.
  • Stacked features confusion. Clicking where multiple features overlap may pick the wrong one. Use the cycle buttons.
  • Hit-test misses on thin lines. Lines under 1 pixel wide can be hard to click; increase the tolerance.
  • Touchscreen accuracy. Fingers are imprecise; allow at least 10 pixels of tolerance for mobile.
  • HTML in attribute values. Some datasets store HTML in fields. Render carefully to avoid XSS.
  • NULL fields. Display "-" or "N/A" rather than literal null to keep popups readable.

Tips for Best Results

  • Hide irrelevant fields in the popup configuration to reduce clutter.
  • Use a panel layout for comparing several features.
  • Add a permalink button to the popup so you can share a deep link to a specific feature.
  • Sort fields by importance, not alphabetical order.
  • Render numeric fields with thousands separators and units.
  • Format dates in the user's locale.
  • Provide a "copy to clipboard" button on each value.
  • Make URLs clickable.

Comparison with Desktop GIS

QGIS calls this the Identify Tool and binds it to the i key. ArcGIS calls it Identify and accesses it from the toolbar. Both desktop tools support multi-layer identify and cycling through stacked features. The gis.tools approach is conceptually identical but adapted for the web: popups instead of dockable windows, touch tolerance for mobile, and instant rendering against a small in-memory dataset rather than a database round-trip.

The browser-based version is faster for small datasets and simpler to use, but lacks features like joined tables from multiple sources or computed fields. For those, use the Join Tool or the Spatial Join.

Performance Considerations

Identify is essentially free in terms of computation: a single hit-test against a spatial index takes microseconds. The bottleneck is usually rendering the popup, especially when attributes are long or numerous. For very dense layers with thousands of features per square pixel, consider using a clustered view via the Marker Cluster Renderer and identifying the cluster instead of individual features.

Data Privacy and Browser-Based Processing

Feature identify operates entirely on data already loaded in your browser. The popup contents come from the same in-memory FeatureCollection β€” nothing is fetched from a server when you click. This means even sensitive datasets like patient addresses, witness locations, or trade secret coordinates can be safely identified without any network leakage.

Related GIS Concepts

Hit test. The geometric operation of determining which features lie under a given screen coordinate.

Pixel tolerance. The radius around the click point used for fuzzy hit testing of points and lines.

Popup template. A configuration that controls which attributes display and how they are formatted.

Attribute table. The tabular component of vector data, where each row is a feature and each column is a field.

Frequently Asked Questions

Why does my click not select anything?

Make sure the layer is visible. Increase the click tolerance for thin lines or small points.

How do I see all features under a click?

The popup shows a counter and next/previous buttons when multiple features are stacked.

Can I customize which attributes show?

Yes. Most viewers let you hide or rename fields in the popup configuration.

Why do attribute values look corrupted?

The source file may use a non-UTF-8 encoding. Re-save the file as UTF-8.

Can I copy values to the clipboard?

Yes β€” most popups have a copy button on each value.

Related Tools on gis.tools

100% client-side processing - your data stays private and never leaves your device