XooCode(){

GeoShape

GeoShape describes a shaped geographic region — a bounding box, a circle of radius around a point, a polygon, or a line. It's what you reach for when GeoCoordinates (a single lat/lng point) is too narrow: service areas, delivery zones, event coverage regions, sports-event routes.

Full example of schema.org/GeoShape json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/GeoShape
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TaxiService",
  "name": "Dunmore Taxi Co-op",
  "areaServed": [
    {
      "@type": "GeoShape",
      "name": "Primary service area — 15 km radius around downtown",
      "circle": "41.4259 -75.6327 15000",
      "addressCountry": "US"
    },
    {
      "@type": "GeoShape",
      "name": "Lackawanna County polygon (extended coverage)",
      "polygon": "41.65 -75.85 41.65 -75.40 41.25 -75.40 41.25 -75.85 41.65 -75.85",
      "addressCountry": "US"
    }
  ]
}
</script>

Direct properties (8)

  • box: "southwest northeast" coordinate pair ("40.7,-74.2 40.9,-73.9"). The simplest shape.
  • circle: "lat lng radius" (meters) — "41.45 -75.60 10000" = 10km radius around Dunmore.
  • polygon: space-separated coordinate pairs forming a closed ring.
  • line: two or more coordinate pairs (parade route, coastline).
  • address and addressCountry: anchor the shape to a postal entity.
  • postalCode: when the shape matches a postal code's boundary.
  • elevation: meters above WGS 84 sea level (for 3D applications).

GeoShape coordinates follow the WGS 84 pair order lat lng (lat first), space-separated within a pair and space-separated between pairs. Google accepts GeoShape on areaServed, DeliveryChargeSpecification.areaServed, and as Place.geo.

Minimal valid version

The smallest markup that still produces a valid GeoShape entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/GeoShape (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "GeoShape",
  "circle": "41.4259 -75.6327 15000",
  "addressCountry": "US"
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Local service / area-served signals (indirect)
    Google docs

Common GeoShape mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Coordinates in lng lat order

    Wrong
    "circle": "-75.63 41.43 15000"
    Right
    "circle": "41.43 -75.63 15000"

    schema.org is lat-first (WGS 84 convention). GeoJSON uses lng-first; they're easy to confuse.

  2. 02

    Polygon not closed

    Wrong
    3 coordinate pairs with different start / end
    Right
    First and last pair must match

    Consumers fail to parse open rings; repeat the first pair at the end.

  3. 03

    Radius in kilometers

    Wrong
    "circle": "41.43 -75.63 15"
    Right
    "circle": "41.43 -75.63 15000"

    Radius is meters, not kilometers. 15 meters would cover about one parking space.

Also mentioned in 8 other examples

GeoShape also appears in AdministrativeArea, BodyOfWater, Canal, Dataset, GeoCircle, LocalBusiness, OceanBodyOfWater, and SeaBodyOfWater. See the full GeoShape schema page for every reference.

About the example data

Dunmore Taxi Co-op's service area — a 15 km radius around downtown Dunmore, clipped by the Lackawanna County boundary polygon.

Comments

Loading comments...

Leave a comment