Building Location-Based Applications with Amazon Location Service - Maps, Geocoding, and Tracking

Explore implementation patterns for building location-based applications using four core features: map display, geocoding, route calculation, and device tracking.

Key Features of Location Service

Amazon Location Service provides six features: map display, geocoding (converting addresses to coordinates), reverse geocoding (converting coordinates to addresses), route calculation, geofencing, and device tracking. With the November 2024 overhaul, the API structure changed and split into three independent namespaces: geo-maps for maps, geo-places for place search, and geo-routes for routes. These three query families do not require creating map resources or search indexes in advance and can be called after you issue an API key. On the other hand, trackers, which store device positions, and collections, which hold geofences, are still created as AWS resources before use. As of August 2026, the data providers are Esri, HERE, and GrabMaps, which covers Southeast Asia, and for map tiles you can also choose styles derived from Open Data, but only when going through previous-generation map resources. Coverage and terms of use differ by provider, so choose according to your target region and use case.

Implementing Map Display and Geocoding

Embedding maps in a web application uses the MapLibre GL JS library. Simply pass the style descriptor URL returned by GetStyleDescriptor in geo-maps (https://maps.geo..amazonaws.com/v2/styles/Standard/descriptor with the color scheme, variant, and API key appended) to MapLibre's style, and an interactive map is displayed. Queries called directly from a browser are basically authorized with an API key, and you can set an expiration on the key and restrict its scope of use by HTTP referrer or app identifier. However, writing positions to a tracker, managing geofences, and managing the keys themselves require authorization through IAM or Amazon Cognito, so a two-tier configuration is easier to work with: keys for maps on public pages, and Cognito authenticated roles for the side that sends positions. For address search, Geocode in geo-places returns coordinates from an address string, and ReverseGeocode returns an address from coordinates. Also available are SearchText for full-text search, SearchNearby for nearby search, Autocomplete and Suggest for input completion, and GetPlace for looking up details from an identifier. For searches, you can specify a bias position (BiasPosition) that prioritizes nearby candidates and filters that narrow candidates by country code and so on, making it possible to tune the settings toward address searches within Japan. Note that SearchText follows an exclusive specification under which you specify only one of the bias position (BiasPosition), the bounding box filter (Filter.BoundingBox), or the circle filter (Filter.Circle).

Geofencing and Device Tracking

Geofencing is a feature that defines virtual geographic boundaries. Boundary shapes can be chosen from circles, polygons, and multipolygons, and shapes with many vertices can be registered in Geobuf format. When you associate a geofence collection with a tracker, an evaluation runs on every position update, and device entries and exits arrive at EventBridge as events. The events have source aws.geo and detail-type Location Geofence Event, and detail contains the ENTER or EXIT type, geofence ID, device ID, position, and sample time, so by placing Lambda or Step Functions on the subscribing side, you can automate notifications and records. Use cases include notifying when a delivery vehicle arrives at a delivery area, automating time clock entries when employees enter a specific zone, and alerting when a child leaves a school area. If you want to anticipate arrival, there is ForecastGeofenceEvents, which returns the predicted time of crossing a boundary when you pass a device's position and speed (if you omit the speed, it returns only the current containment result). A tracker is a component that collects and stores device location data, and when you send position updates through the API, the history is retained for 30 days (the value given in the official documentation as of August 2026). Besides accuracy, a position can carry up to three items of optional metadata, such as speed and heading. Filtering that trims redundant updates can be chosen from three methods, and the default is TimeBased, which stores only one update per 30 seconds. The others are DistanceBased, which ignores movements of less than 30 m, and AccuracyBased, which ignores movements within the range of measurement accuracy. Thinning out the positions that stationary vehicles keep sending directly reduces the number of billed position updates covered in the next section.

Location Service Pricing

(As of August 2026; checked separately in two Regions, US East (N. Virginia) and Asia Pacific (Tokyo). The prices are the same in both Regions.) Location Service is billed by usage rather than by holding, and the billing dimensions are map tiles; static map images; place search; route calculation; position writes, reads, and integrity verification; device deletion; geofence evaluation, management, and holding; and arrival forecasts. Map tiles cost 0.04 USD per 1,000 tiles, and static maps, which return a single image, cost 0.50 USD per 1,000 requests. Place search unit prices vary by response category: per 1,000, Core is 0.50 USD, Advanced is 1.50 USD, storing results is 4.00 USD, and input completion (Autocomplete and Suggest) is 0.20 USD per 1,000 requests. Route calculation is similar, at 0.50 USD for Core, 1.50 USD for Advanced, and 4.00 USD for Premium per 1,000 routes, and some operations, such as isoline calculation and snapping to roads, have no Core category. Which category applies appears in PricingBucket in the response, so the reliable approach is to call the operation you plan to use once and check. Position tracking is determined not by a monthly fee per device but by the number of positions you send, and it is tiered. Per 1,000, it is 0.05 USD up to 500,000 per month, 0.035 USD up to 5,000,000, 0.025 USD up to 50,000,000, and 0.0125 USD beyond that. Position reads and device deletions each cost 0.05 USD per 1,000, and position integrity verification (PositionVerify) costs 1.00 USD per 1,000. Geofence evaluation costs, per 1,000, 0.16 USD up to 250,000 per month, 0.11 USD up to 2,000,000, 0.07 USD up to 25,000,000, and 0.06 USD beyond that. Management operations such as creating, reading, updating, deleting, and listing geofences cost 0.05 USD per 1,000, and arrival forecasts cost 1.75 USD per 1,000. What is charged for holding rather than usage is geofences, at 0.20 USD per month per 1,000 registered. Running 100 vehicles that send their position every 10 seconds exceeds 860,000 records in a single day, so thinning out with filtering directly affects cost. Two free tier systems coexist: the "first 3 months" table on the pricing page and the Free Tier credits given to accounts created on or after July 15, 2025. The remaining amount changes depending on which one applies, so check the actual remainder in the Billing Dashboard. For usage above 5,000 USD per month, you can ask about volume discounts. The cost difference from commercial map APIs varies greatly with your usage breakdown, so the reliable approach is to estimate by applying your expected volumes to each of the dimensions above.

Choosing a Data Provider

Location Service relies on external data providers behind maps and place search. As of August 2026, the providers are Esri, HERE, and GrabMaps, which covers Southeast Asia, and you can also choose map styles derived from Open Data, but only when going through previous-generation map resources. Coverage, the granularity of address notation, and how maps look differ, so check them against your target region and the purpose of your app. Terms of use are not uniform either. The AWS Service Terms include a clause requiring written consent when Esri data is used for tracking or routing your own business assets, and storing results for Japan is not permitted with HERE data. GrabMaps is offered only in a limited set of Regions. If you want to store search results in your own database, you need to specify the storage use in the request's IntendedUse, and the unit price also differs from when you do not store them. Also note that the operations and map styles available differ by Region, so check the target Region in the official availability table before designing. Evaluating providers from both functional requirements and the terms leads to balancing quality and legal compliance.

Route Calculation and Travel-Time Analysis

geo-routes handles routes with five operations. CalculateRoutes returns routes and travel times from an origin and a destination (including waypoints), and OptimizeWaypoints rearranges the order of visiting multiple stops to shorten total travel. CalculateRouteMatrix returns travel times for many combinations of origins and destinations together, so you can use it for decisions such as choosing the nearest site or assigning dispatches. CalculateIsolines returns the area reachable within a specified time or distance as a polygon, which suits visualizing trade areas and deliverable areas. SnapToRoads aligns tracks that contain GPS jitter with actual roads, making driving records easier to aggregate. For each of these, you can specify constraints such as the travel mode (car, truck, pedestrian, and so on), conditions for roads to avoid, and truck dimensions and weight, and obtain routes closer to reality. Combined with map display, you can present routes to users clearly and build delivery and navigation applications.

Privacy and Security

Location information is sensitive data and requires careful handling. In place search, the request's IntendedUse makes you state explicitly whether results are limited to single use or stored, and if you do not need to store them, you can call with the default single use and operate without keeping unnecessary data. There are also constraints from provider terms; for example, storing results is not permitted for HERE data covering Japan. Control access with IAM; for queries called from a browser, attach an expiration and referrer restrictions to the API key, and allow position writes and geofence management only for authenticated principals. For uses that track device positions, state the purpose of collection clearly and put in place a mechanism for obtaining users' consent. Tracker position history disappears after 30 days, so if you need to keep it longer, prepare your own storage and design it to include the retention period and deletion. Pursuing convenience while also designing to protect users' privacy is the condition for a trusted location app.

Use Cases and Frontend Integration

Location Service can be built into a wide variety of applications. Typical examples include delivery tracking that shows delivery status on a map in real time, management that keeps track of the current locations of vehicles and assets, and store locators for finding nearby stores. On the frontend, you combine it with a map rendering library to display the retrieved data visually. By setting up geofences, you can detect entry into and exit from specific areas and trigger notifications or actions. By combining the basic functions of maps, search, routes, and tracking according to your requirements, you can deliver a wide variety of location services without building your own map platform.

Summary

Location Service is a service with which you can build location-based applications by combining three families, geo-maps for maps, geo-places for place search, and geo-routes for routes, with trackers and geofences. Queries can be called with an API key without creating resources, so if you only need maps and search, you can start small. When moving from another company's map API, there is a path to replace the calls in existing code with the Amazon Location Migration SDK published by AWS, and costs are estimated by applying expected volumes to each billing dimension. Protect position writes with IAM or Amazon Cognito, and by sending geofence entries and exits to EventBridge, you can extend into event-driven location-based applications.

References (Official AWS Resources)

The primary sources for this page are the official AWS website and documentation. Check the official pages below for the latest specifications and pricing.

If this page and the official documentation disagree, treat the official documentation as authoritative.

Share