compass_maps library

Amazon Location Service v2 en Dart puro, con la forma de Google Maps.

Las 44 operaciones —Places, Routes, Maps, geovallas y rastreo— detrás de un cliente tipado, con tope de gasto, reintentos y sin ninguna dependencia de Flutter.

import 'package:compass_maps/compass_maps.dart';

final maps = CompassMaps(
  region: 'us-east-1',
  credentials: const ApiKeyCredentials('...'),
  language: 'es',
);

final resultados = await maps.places.searchText(queryText: 'gasolinera');

La tesis

El LatLng que devuelve una búsqueda es el mismo que acepta un marcador. Una ruta calculada se pinta pasándola directamente a una polilínea. Sin conversiones, sin dos claves y sin dos sistemas de tipos.

Para pintar mapas

Este paquete no dibuja. El widget está en compass_maps_flutter, que reexporta todo lo de aquí: instalando solo ese ya se tienen las diecisiete operaciones más el mapa.

Vive aparte para poder probarse sin emulador y para servir en una herramienta de línea de órdenes o un servidor Dart.

Mapa de la biblioteca

Quiero… Miro en…
empezar CompassMaps
buscar, geocodificar PlacesClient
rutas, isócronas, snap a carretera RoutesClient
zonas y avisos anticipados GeofencingClient
histórico de dispositivos TrackingClient
el estilo del mapa MapsClient
autenticar Credentials
no llevarme un susto en la factura Budget

Classes

AccessPoint
Un punto por el que se entra o se sale de un sitio.
Address
Una dirección postal completa, tal como la desglosa Amazon Location v2.
AddressComponents
Los componentes de una dirección, para geocodificar campo a campo.
AdminArea
Una división administrativa con código y nombre: provincia, cantón, parroquia, según el nivel.
AlsBytes
Bytes con su tipo de contenido, lo que devuelve GetStaticMap.
ApiKeyCredentials
Autenticación con una clave de API de Amazon Location.
AutocompleteSuggestion
Una sugerencia de autocompletado.
BatchItemError
Un error por elemento en una operación por lotes.
BatchResult
El resultado de una operación por lotes.
BillingUnits
Cuántas unidades facturables cuesta cada operación.
Budget
Tope de gasto por ventana de tiempo, comprobado antes de enviar.
CompassMaps
La puerta de entrada a las 44 operaciones de Amazon Location.
ContactDetail
Una forma de contactar: teléfono, web, correo o red social.
Contacts
Los contactos de un sitio, agrupados por tipo.
Country
Un país, con sus dos códigos ISO y su nombre.
Credentials
Cómo se autentica una petición a Amazon Location.
DevicePosition
La posición de un dispositivo, tal como la devuelve el servicio.
DevicePositionUpdate
La posición de un dispositivo, tal como se envía al servicio.
DirectCredentials
Base cómoda para escribir una Credentials propia.
DriverOptions
Los descansos obligatorios del conductor, para optimizeWaypoints.
ForecastedGeofenceEvent
Un evento de geovalla que todavía no ha pasado.
ForecastGeofenceEventsResponse
La respuesta de forecastGeofenceEvents.
Geofence
Una geovalla guardada.
GeofenceCollection
Una colección de geovallas.
GeofenceGeometry
La forma de una geovalla: un círculo, un polígono o varios polígonos.
GeofencePage<T>
Una página de geovallas o de colecciones.
GeofencingClient
Las 12 operaciones de geovallas de Amazon Location.
HeaderCredentials
Autenticación con cabeceras que produce una función tuya.
Highlight
Qué parte del texto buscado coincidió con qué parte del resultado.
Isoline
Una isócrona: el polígono de lo alcanzable dentro de un umbral.
IsolineGranularity
Cuánto detalle tiene el polígono de una isócrona.
IsolineResponse
La respuesta de calculateIsolines.
LatLng
Un punto geográfico: latitud y longitud en grados decimales.
LatLngBounds
Un rectángulo geográfico, definido por sus esquinas suroeste y noreste.
MapsClient
Las operaciones de Amazon Location Maps v2.
MatrixCell
Una celda de la matriz origen-destino.
OpeningHours
El horario de un sitio, con si está abierto ahora.
OpeningHoursComponent
Una franja horaria en formato legible por máquina.
OptimizationWaypoint
Una parada que hay que visitar, para optimizeWaypoints.
OptimizedWaypoint
Una parada ya colocada en su sitio dentro del recorrido óptimo.
Place
Un resultado de búsqueda o geocodificación.
PlaceCategory
Una categoría de punto de interés: «restaurante», «gasolinera», «hospital».
PlacesClient
Las siete operaciones de Amazon Location Places v2.
PlaceSearchResponse
Una página de resultados de búsqueda.
PositionVerification
El resultado de comprobar si una posición es de fiar.
ProxyCredentials
Autenticación delegada en un backend propio que firma con SigV4.
QueryRefinement
Una propuesta de reescritura de lo que se buscó.
Route
Una ruta completa entre un origen y un destino.
RouteAvoidance
Qué evitar al calcular la ruta.
RouteGeometry
La geometría de un tramo, venga como lista de puntos o como polilínea.
RouteIncident
Una incidencia en la ruta: obras, accidente, corte.
RouteLeg
Un tramo de la ruta: el trozo entre dos paradas consecutivas.
RouteMatrix
La respuesta de calculateRouteMatrix.
RouteResponse
La respuesta de calculateRoutes.
RoutesClient
Las cinco operaciones de Amazon Location Routes v2.
SearchFilter
Cómo se acota una búsqueda: por rectángulo, por círculo, por país o por varias cosas a la vez.
SnappedTracePoint
Un punto de rastro ya pegado a la calle.
SnapToRoadsResponse
La respuesta de snapToRoads.
StreetComponent
Una pieza del nombre de una calle, ya separada.
SuggestResponse
La respuesta de suggest, con sus refinamientos.
SuggestResult
Un elemento de la respuesta de suggest.
Thresholds
Los umbrales de una isócrona: por tiempo, por distancia o los dos.
TimeZoneInfo
La zona horaria de un sitio.
Toll
Un peaje de la ruta.
TracePoint
Un punto de un rastro GPS, tal como se envía a snapToRoads.
Tracker
Un rastreador: el recurso donde se guardan las posiciones.
TrackingClient
Las 15 operaciones de rastreo de dispositivos de Amazon Location.
TrackingPage<T>
Una página de posiciones o de rastreadores.
TransportOptions
Ajustes de red compartidos por los tres clientes.
TravelModeOptions
Las características del vehículo, que cambian la ruta.
TravelStep
Una indicación de navegación.
WaypointConnection
El enlace entre dos paradas consecutivas del recorrido óptimo.
WaypointOptimizationResponse
La respuesta de optimizeWaypoints.
WiFiAccessPoint
Un punto Wi-Fi visto por el dispositivo, para verificar su posición.

Enums

AlsService
Los tres servicios de Amazon Location v2.
BudgetPolicy
Qué hacer cuando se agota el presupuesto.
ForecastedEventType
Qué le va a pasar a un dispositivo respecto a una geovalla.
GeometryFormat
Formato en el que llega la geometría de una ruta o una isócrona.
IntendedUse
Si el resultado se va a guardar en tu propia infraestructura.
MapBuildings
Cómo se dibujan los edificios.
MapColorScheme
Tono del mapa.
MapContourDensity
Densidad de las curvas de nivel.
MapPoiCategory
Categorías de puntos de interés que se dibujan.
MapPoiDensity
Cuántos puntos de interés se dibujan.
MapStyle
Catálogo de estilos de mapa de Maps v2.
MapTerrain
Cómo se dibuja el relieve del terreno.
MapTraffic
Tráfico en tiempo real dibujado dentro del estilo.
MapTravelMode
Información adicional de un modo de transporte, dibujada en el estilo.
PlaceFeature
Datos extra que se pueden pedir en una operación de Places.
PlaceType
Qué clase de sitio es un resultado.
PositionFiltering
Cómo decide el rastreador qué posiciones guarda.
PostalCodeMode
Cómo se tratan los códigos postales en un autocompletado.
RouteFeature
Datos extra que se pueden pedir por tramo de ruta.
RouteOptimization
Qué se optimiza al calcular una ruta.
ScaleBarUnit
Unidad de la barra de escala de un mapa estático.
SuggestResultType
Qué clase de sugerencia devolvió suggest.
TrafficUsage
Cómo se usa la información de tráfico al calcular.
TravelMode
Modo de viaje para las operaciones de Routes.
TravelStepType
Detalle de las indicaciones paso a paso de una ruta.
WaypointOptimization
Qué se optimiza al reordenar las paradas de optimizeWaypoints.

Constants

earthRadiusMeters → const double
Radio medio de la Tierra en metros, el valor que usa Amazon Location.

Functions

decodeFlexiblePolyline(String encoded) List<LatLng>
Decodifica el formato Flexible Polyline de HERE, que es el que devuelve Amazon Location v2 cuando se pide GeometryFormat.flexiblePolyline.
decodeGooglePolyline(String encoded, {int precision = 5}) List<LatLng>
Decodifica el formato de polilínea codificada de Google.
encodeFlexiblePolyline(Iterable<LatLng> points, {int precision = 5}) String
Codifica una lista de puntos en el formato Flexible Polyline de HERE.

Exceptions / Errors

AlsApiException
El servicio respondió, pero con un error.
AlsParseException
La respuesta llegó con un 200 pero no se pudo interpretar.
AlsParseExceptionForMatrix
La matriz llegó con unas dimensiones distintas de las que se pidieron.
AlsTransportException
No se pudo hablar con el servicio: sin red, DNS caído, TLS rechazado o se agotó el tiempo en todos los intentos.
BudgetExhaustedException
Se alcanzó el tope de gasto configurado en Budget.
CompassMapsConfigurationException
Falta configuración para poder llamar al servicio.
CompassMapsException
Raíz de todo lo que este paquete lanza a propósito.