Amazon Location Service

2025/07/29 - Amazon Location Service - 4 updated api methods

Changes  This release 1) adds support for multi-polygon geofences with disconnected territories, and 2) enables polygon exclusion zones within geofences for more accurate representation of real-world boundaries.

BatchPutGeofence (updated) Link ¶
Changes (request)
{'Entries': {'Geometry': {'MultiPolygon': [[[['double']]]]}}}

A batch request for storing geofence geometries into a given geofence collection, or updates the geometry of an existing geofence if a geofence ID is included in the request.

See also: AWS API Documentation

Request Syntax

client.batch_put_geofence(
    CollectionName='string',
    Entries=[
        {
            'GeofenceId': 'string',
            'Geometry': {
                'Polygon': [
                    [
                        [
                            123.0,
                        ],
                    ],
                ],
                'Circle': {
                    'Center': [
                        123.0,
                    ],
                    'Radius': 123.0
                },
                'Geobuf': b'bytes',
                'MultiPolygon': [
                    [
                        [
                            [
                                123.0,
                            ],
                        ],
                    ],
                ]
            },
            'GeofenceProperties': {
                'string': 'string'
            }
        },
    ]
)
type CollectionName:

string

param CollectionName:

[REQUIRED]

The geofence collection storing the geofences.

type Entries:

list

param Entries:

[REQUIRED]

The batch of geofences to be stored in a geofence collection.

  • (dict) --

    Contains geofence geometry details.

    • GeofenceId (string) -- [REQUIRED]

      The identifier for the geofence to be stored in a given geofence collection.

    • Geometry (dict) -- [REQUIRED]

      Contains the details to specify the position of the geofence. Can be a circle, a polygon, or a multipolygon. Polygon and MultiPolygon geometries can be defined using their respective parameters, or encoded in Geobuf format using the Geobuf parameter. Including multiple geometry types in the same request will return a validation error.

      • Polygon (list) --

        A Polygon is a list of up to 250 linear rings which represent the shape of a geofence. This list must include 1 exterior ring (representing the outer perimeter of the geofence), and can optionally include up to 249 interior rings (representing polygonal spaces within the perimeter, which are excluded from the geofence area).

        A linear ring is an array of 4 or more vertices, where the first and last vertex are the same (to form a closed boundary). Each vertex is a 2-dimensional point represented as an array of doubles of length 2: [longitude, latitude].

        Each linear ring is represented as an array of arrays of doubles ( [[longitude, latitude], [longitude, latitude], ...]). The vertices for the exterior ring must be listed in counter-clockwise sequence. Vertices for all interior rings must be listed in clockwise sequence.

        The list of linear rings that describe the entire Polygon is represented as an array of arrays of arrays of doubles ( [[[longitude, latitude], [longitude, latitude], ...], [[longitude, latitude], [longitude, latitude], ...], ...]). The exterior ring must be listed first, before any interior rings.

        • (list) --

          • (list) --

            • (float) --

      • Circle (dict) --

        A circle on the earth, as defined by a center point and a radius.

        • Center (list) -- [REQUIRED]

          A single point geometry, specifying the center of the circle, using WGS 84 coordinates, in the form [longitude, latitude].

          • (float) --

        • Radius (float) -- [REQUIRED]

          The radius of the circle in meters. Must be greater than zero and no larger than 100,000 (100 kilometers).

      • Geobuf (bytes) --

        Geobuf is a compact binary encoding for geographic data that provides lossless compression of GeoJSON polygons. The Geobuf must be Base64-encoded.

        This parameter can contain a Geobuf-encoded GeoJSON geometry object of type Polygon OR MultiPolygon. For more information and specific configuration requirements for these object types, see Polygon and MultiPolygon.

      • MultiPolygon (list) --

        A MultiPolygon is a list of up to 250 Polygon elements which represent the shape of a geofence. The Polygon components of a MultiPolygon geometry can define separate geographical areas that are considered part of the same geofence, perimeters of larger exterior areas with smaller interior spaces that are excluded from the geofence, or some combination of these use cases to form complex geofence boundaries.

        For more information and specific configuration requirements for the Polygon components that form a MultiPolygon, see Polygon.

        • (list) --

          • (list) --

            • (list) --

              • (float) --

    • GeofenceProperties (dict) --

      Associates one of more properties with the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence.

      Format: "key" : "value"

      • (string) --

        • (string) --

rtype:

dict

returns:

Response Syntax

{
    'Successes': [
        {
            'GeofenceId': 'string',
            'CreateTime': datetime(2015, 1, 1),
            'UpdateTime': datetime(2015, 1, 1)
        },
    ],
    'Errors': [
        {
            'GeofenceId': 'string',
            'Error': {
                'Code': 'AccessDeniedError'|'ConflictError'|'InternalServerError'|'ResourceNotFoundError'|'ThrottlingError'|'ValidationError',
                'Message': 'string'
            }
        },
    ]
}

Response Structure

  • (dict) --

    • Successes (list) --

      Contains each geofence that was successfully stored in a geofence collection.

      • (dict) --

        Contains a summary of each geofence that was successfully stored in a given geofence collection.

        • GeofenceId (string) --

          The geofence successfully stored in a geofence collection.

        • CreateTime (datetime) --

          The timestamp for when the geofence was stored in a geofence collection in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

        • UpdateTime (datetime) --

          The timestamp for when the geofence was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

    • Errors (list) --

      Contains additional error details for each geofence that failed to be stored in a geofence collection.

      • (dict) --

        Contains error details for each geofence that failed to be stored in a given geofence collection.

        • GeofenceId (string) --

          The geofence associated with the error message.

        • Error (dict) --

          Contains details associated to the batch error.

          • Code (string) --

            The error code associated with the batch request error.

          • Message (string) --

            A message with the reason for the batch request error.

GetGeofence (updated) Link ¶
Changes (response)
{'Geometry': {'MultiPolygon': [[[['double']]]]}}

Retrieves the geofence details from a geofence collection.

See also: AWS API Documentation

Request Syntax

client.get_geofence(
    CollectionName='string',
    GeofenceId='string'
)
type CollectionName:

string

param CollectionName:

[REQUIRED]

The geofence collection storing the target geofence.

type GeofenceId:

string

param GeofenceId:

[REQUIRED]

The geofence you're retrieving details for.

rtype:

dict

returns:

Response Syntax

{
    'GeofenceId': 'string',
    'Geometry': {
        'Polygon': [
            [
                [
                    123.0,
                ],
            ],
        ],
        'Circle': {
            'Center': [
                123.0,
            ],
            'Radius': 123.0
        },
        'Geobuf': b'bytes',
        'MultiPolygon': [
            [
                [
                    [
                        123.0,
                    ],
                ],
            ],
        ]
    },
    'Status': 'string',
    'CreateTime': datetime(2015, 1, 1),
    'UpdateTime': datetime(2015, 1, 1),
    'GeofenceProperties': {
        'string': 'string'
    }
}

Response Structure

  • (dict) --

    • GeofenceId (string) --

      The geofence identifier.

    • Geometry (dict) --

      Contains the geofence geometry details describing the position of the geofence. Can be a circle, a polygon, or a multipolygon.

      • Polygon (list) --

        A Polygon is a list of up to 250 linear rings which represent the shape of a geofence. This list must include 1 exterior ring (representing the outer perimeter of the geofence), and can optionally include up to 249 interior rings (representing polygonal spaces within the perimeter, which are excluded from the geofence area).

        A linear ring is an array of 4 or more vertices, where the first and last vertex are the same (to form a closed boundary). Each vertex is a 2-dimensional point represented as an array of doubles of length 2: [longitude, latitude].

        Each linear ring is represented as an array of arrays of doubles ( [[longitude, latitude], [longitude, latitude], ...]). The vertices for the exterior ring must be listed in counter-clockwise sequence. Vertices for all interior rings must be listed in clockwise sequence.

        The list of linear rings that describe the entire Polygon is represented as an array of arrays of arrays of doubles ( [[[longitude, latitude], [longitude, latitude], ...], [[longitude, latitude], [longitude, latitude], ...], ...]). The exterior ring must be listed first, before any interior rings.

        • (list) --

          • (list) --

            • (float) --

      • Circle (dict) --

        A circle on the earth, as defined by a center point and a radius.

        • Center (list) --

          A single point geometry, specifying the center of the circle, using WGS 84 coordinates, in the form [longitude, latitude].

          • (float) --

        • Radius (float) --

          The radius of the circle in meters. Must be greater than zero and no larger than 100,000 (100 kilometers).

      • Geobuf (bytes) --

        Geobuf is a compact binary encoding for geographic data that provides lossless compression of GeoJSON polygons. The Geobuf must be Base64-encoded.

        This parameter can contain a Geobuf-encoded GeoJSON geometry object of type Polygon OR MultiPolygon. For more information and specific configuration requirements for these object types, see Polygon and MultiPolygon.

      • MultiPolygon (list) --

        A MultiPolygon is a list of up to 250 Polygon elements which represent the shape of a geofence. The Polygon components of a MultiPolygon geometry can define separate geographical areas that are considered part of the same geofence, perimeters of larger exterior areas with smaller interior spaces that are excluded from the geofence, or some combination of these use cases to form complex geofence boundaries.

        For more information and specific configuration requirements for the Polygon components that form a MultiPolygon, see Polygon.

        • (list) --

          • (list) --

            • (list) --

              • (float) --

    • Status (string) --

      Identifies the state of the geofence. A geofence will hold one of the following states:

      • ACTIVE — The geofence has been indexed by the system.

      • PENDING — The geofence is being processed by the system.

      • FAILED — The geofence failed to be indexed by the system.

      • DELETED — The geofence has been deleted from the system index.

      • DELETING — The geofence is being deleted from the system index.

    • CreateTime (datetime) --

      The timestamp for when the geofence collection was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

    • UpdateTime (datetime) --

      The timestamp for when the geofence collection was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

    • GeofenceProperties (dict) --

      User defined properties of the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence.

      Format: "key" : "value"

      • (string) --

        • (string) --

ListGeofences (updated) Link ¶
Changes (response)
{'Entries': {'Geometry': {'MultiPolygon': [[[['double']]]]}}}

Lists geofences stored in a given geofence collection.

See also: AWS API Documentation

Request Syntax

client.list_geofences(
    CollectionName='string',
    NextToken='string',
    MaxResults=123
)
type CollectionName:

string

param CollectionName:

[REQUIRED]

The name of the geofence collection storing the list of geofences.

type NextToken:

string

param NextToken:

The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.

Default value: null

type MaxResults:

integer

param MaxResults:

An optional limit for the number of geofences returned in a single call.

Default value: 100

rtype:

dict

returns:

Response Syntax

{
    'Entries': [
        {
            'GeofenceId': 'string',
            'Geometry': {
                'Polygon': [
                    [
                        [
                            123.0,
                        ],
                    ],
                ],
                'Circle': {
                    'Center': [
                        123.0,
                    ],
                    'Radius': 123.0
                },
                'Geobuf': b'bytes',
                'MultiPolygon': [
                    [
                        [
                            [
                                123.0,
                            ],
                        ],
                    ],
                ]
            },
            'Status': 'string',
            'CreateTime': datetime(2015, 1, 1),
            'UpdateTime': datetime(2015, 1, 1),
            'GeofenceProperties': {
                'string': 'string'
            }
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Entries (list) --

      Contains a list of geofences stored in the geofence collection.

      • (dict) --

        Contains a list of geofences stored in a given geofence collection.

        • GeofenceId (string) --

          The geofence identifier.

        • Geometry (dict) --

          Contains the geofence geometry details describing the position of the geofence. Can be a circle, a polygon, or a multipolygon.

          • Polygon (list) --

            A Polygon is a list of up to 250 linear rings which represent the shape of a geofence. This list must include 1 exterior ring (representing the outer perimeter of the geofence), and can optionally include up to 249 interior rings (representing polygonal spaces within the perimeter, which are excluded from the geofence area).

            A linear ring is an array of 4 or more vertices, where the first and last vertex are the same (to form a closed boundary). Each vertex is a 2-dimensional point represented as an array of doubles of length 2: [longitude, latitude].

            Each linear ring is represented as an array of arrays of doubles ( [[longitude, latitude], [longitude, latitude], ...]). The vertices for the exterior ring must be listed in counter-clockwise sequence. Vertices for all interior rings must be listed in clockwise sequence.

            The list of linear rings that describe the entire Polygon is represented as an array of arrays of arrays of doubles ( [[[longitude, latitude], [longitude, latitude], ...], [[longitude, latitude], [longitude, latitude], ...], ...]). The exterior ring must be listed first, before any interior rings.

            • (list) --

              • (list) --

                • (float) --

          • Circle (dict) --

            A circle on the earth, as defined by a center point and a radius.

            • Center (list) --

              A single point geometry, specifying the center of the circle, using WGS 84 coordinates, in the form [longitude, latitude].

              • (float) --

            • Radius (float) --

              The radius of the circle in meters. Must be greater than zero and no larger than 100,000 (100 kilometers).

          • Geobuf (bytes) --

            Geobuf is a compact binary encoding for geographic data that provides lossless compression of GeoJSON polygons. The Geobuf must be Base64-encoded.

            This parameter can contain a Geobuf-encoded GeoJSON geometry object of type Polygon OR MultiPolygon. For more information and specific configuration requirements for these object types, see Polygon and MultiPolygon.

          • MultiPolygon (list) --

            A MultiPolygon is a list of up to 250 Polygon elements which represent the shape of a geofence. The Polygon components of a MultiPolygon geometry can define separate geographical areas that are considered part of the same geofence, perimeters of larger exterior areas with smaller interior spaces that are excluded from the geofence, or some combination of these use cases to form complex geofence boundaries.

            For more information and specific configuration requirements for the Polygon components that form a MultiPolygon, see Polygon.

            • (list) --

              • (list) --

                • (list) --

                  • (float) --

        • Status (string) --

          Identifies the state of the geofence. A geofence will hold one of the following states:

          • ACTIVE — The geofence has been indexed by the system.

          • PENDING — The geofence is being processed by the system.

          • FAILED — The geofence failed to be indexed by the system.

          • DELETED — The geofence has been deleted from the system index.

          • DELETING — The geofence is being deleted from the system index.

        • CreateTime (datetime) --

          The timestamp for when the geofence was stored in a geofence collection in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

        • UpdateTime (datetime) --

          The timestamp for when the geofence was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

        • GeofenceProperties (dict) --

          User defined properties of the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence.

          Format: "key" : "value"

          • (string) --

            • (string) --

    • NextToken (string) --

      A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.

PutGeofence (updated) Link ¶
Changes (request)
{'Geometry': {'MultiPolygon': [[[['double']]]]}}

Stores a geofence geometry in a given geofence collection, or updates the geometry of an existing geofence if a geofence ID is included in the request.

See also: AWS API Documentation

Request Syntax

client.put_geofence(
    CollectionName='string',
    GeofenceId='string',
    Geometry={
        'Polygon': [
            [
                [
                    123.0,
                ],
            ],
        ],
        'Circle': {
            'Center': [
                123.0,
            ],
            'Radius': 123.0
        },
        'Geobuf': b'bytes',
        'MultiPolygon': [
            [
                [
                    [
                        123.0,
                    ],
                ],
            ],
        ]
    },
    GeofenceProperties={
        'string': 'string'
    }
)
type CollectionName:

string

param CollectionName:

[REQUIRED]

The geofence collection to store the geofence in.

type GeofenceId:

string

param GeofenceId:

[REQUIRED]

An identifier for the geofence. For example, ExampleGeofence-1.

type Geometry:

dict

param Geometry:

[REQUIRED]

Contains the details to specify the position of the geofence. Can be a circle, a polygon, or a multipolygon. Polygon and MultiPolygon geometries can be defined using their respective parameters, or encoded in Geobuf format using the Geobuf parameter. Including multiple geometry types in the same request will return a validation error.

  • Polygon (list) --

    A Polygon is a list of up to 250 linear rings which represent the shape of a geofence. This list must include 1 exterior ring (representing the outer perimeter of the geofence), and can optionally include up to 249 interior rings (representing polygonal spaces within the perimeter, which are excluded from the geofence area).

    A linear ring is an array of 4 or more vertices, where the first and last vertex are the same (to form a closed boundary). Each vertex is a 2-dimensional point represented as an array of doubles of length 2: [longitude, latitude].

    Each linear ring is represented as an array of arrays of doubles ( [[longitude, latitude], [longitude, latitude], ...]). The vertices for the exterior ring must be listed in counter-clockwise sequence. Vertices for all interior rings must be listed in clockwise sequence.

    The list of linear rings that describe the entire Polygon is represented as an array of arrays of arrays of doubles ( [[[longitude, latitude], [longitude, latitude], ...], [[longitude, latitude], [longitude, latitude], ...], ...]). The exterior ring must be listed first, before any interior rings.

    • (list) --

      • (list) --

        • (float) --

  • Circle (dict) --

    A circle on the earth, as defined by a center point and a radius.

    • Center (list) -- [REQUIRED]

      A single point geometry, specifying the center of the circle, using WGS 84 coordinates, in the form [longitude, latitude].

      • (float) --

    • Radius (float) -- [REQUIRED]

      The radius of the circle in meters. Must be greater than zero and no larger than 100,000 (100 kilometers).

  • Geobuf (bytes) --

    Geobuf is a compact binary encoding for geographic data that provides lossless compression of GeoJSON polygons. The Geobuf must be Base64-encoded.

    This parameter can contain a Geobuf-encoded GeoJSON geometry object of type Polygon OR MultiPolygon. For more information and specific configuration requirements for these object types, see Polygon and MultiPolygon.

  • MultiPolygon (list) --

    A MultiPolygon is a list of up to 250 Polygon elements which represent the shape of a geofence. The Polygon components of a MultiPolygon geometry can define separate geographical areas that are considered part of the same geofence, perimeters of larger exterior areas with smaller interior spaces that are excluded from the geofence, or some combination of these use cases to form complex geofence boundaries.

    For more information and specific configuration requirements for the Polygon components that form a MultiPolygon, see Polygon.

    • (list) --

      • (list) --

        • (list) --

          • (float) --

type GeofenceProperties:

dict

param GeofenceProperties:

Associates one of more properties with the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence.

Format: "key" : "value"

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'GeofenceId': 'string',
    'CreateTime': datetime(2015, 1, 1),
    'UpdateTime': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • GeofenceId (string) --

      The geofence identifier entered in the request.

    • CreateTime (datetime) --

      The timestamp for when the geofence was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ

    • UpdateTime (datetime) --

      The timestamp for when the geofence was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ