Orientação gerada a partir de informações públicas. Apenas para referência.
O pacote open_route_service fornece um invólucro amigável ao Dart e Flutter para as APIs do OpenRouteService, permitindo que desenvolvedores integrem facilmente planejamento de rotas e dados geoespaciais em seus aplicativos. Ele simplifica tarefas como cálculo de rotas, recuperação de direções e acesso a informações relacionadas ao mapa por meio de métodos limpos e intuitivos. Ideal para aplicativos baseados em localização que exigem navegação passo a passo ou cálculos de distância de viagem, suporta múltiplas plataformas, incluindo móvel, web e desktop. O pacote é leve e bem documentado, tornando-se acessível tanto para iniciantes quanto para desenvolvedores experientes.
Casos de uso
Planejamento de rotas em aplicativos de viagem
Navegação com instruções passo a passo
Cálculo de distância e duração
Rastreamento logístico baseado em mapa
Recuperação de dados geoespaciais
Serviços de localização multiplataforma
Principais recursos
Integração simples da API
Suporte para múltiplas plataformas
Geração de rota em tempo real
análise de resposta JSON
Tratamento de erro embutido
Compatibilidade multiplataforma
Indicado para
Desenvolvedores Flutter construindo recursos de navegação
Aplicativos que precisam de otimização de rota
Projetos usando as APIs do OpenRouteService
Desenvolvedores procurando ferramentas leves de geolocalização
Aplicativos móveis e web multiplataforma
Considerações
Requer uma chave de API do OpenRouteService
Dependente da conectividade com a internet
Limitado aos pontos finais disponíveis do OpenRouteService
Pode ser necessário análise adicional para respostas complexas
Limites de taxa se aplicam com base no nível de assinatura
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
open_route_service
A Dart and Flutter client for openrouteservice directions, isochrones, matrices, geocoding, points of interest, elevation, and route optimization.
The package provides typed request and response models around the openrouteservice API for Dart and Flutter projects.
The goal is to develop an all-encompassing package that can encapsulate everything openrouteservice API offers.
With all of their internal Optimizations, this includes:
Directions:
Route Generation between any two or more coordinates for any mode of transportation. For example, from a starting point to a destination on 'foot-walking'.
E.g. ORSDirections.directionsRouteCoordsGet gives a List of ORSCoordinate which can then be easily used to draw a Polyline route on a map in a Flutter Application or anything else you can think of.
Route Drawn on Flutter App Map using Coordinates
Elevation:
Get the elevation of a coordinate, or a list of coordinates. Fetches the ElevationData by taking a 2D ORSCoordinate or planar line geometry, and enriching it with elevation from a variety of datasets.
Elevation Response Received
Isochrones:
Obtain Isochrone (areas of reachability) Data for the locations given. The isochrone is a polygon that encloses a given point and is bounded by a given time.
The isochrone data can be used to draw them on a map in a Flutter Application, or anything else you can think of.
Isochrone Drawn on Map
Time-Distance Matrix:
Obtain one-to-many, many-to-one and many-to-many matrices for time and distance. Returns duration or distance matrix for multiple source and destination points.
Pelias Geocoding:
Resolve input coordinates to addresses and vice versa. Provides functionality for geocoding autocomplete queries, search queries, and reverse geocoding.
Reverse Geocoding Information used on Map
POIs:
Obtains information about the Points of Interest (POIs) in the area surrounding a geometry which can either be a bounding box, polygon or buffered linestring, or point.
The Points of Interest can be marked on a map in a Flutter Application, or their properties and information visualized in various ways, or anything else you can think of.
Points of Interest Drawn on Map
Routing Optimizations:
The optimization endpoint solves Vehicle Routing Problems and can be used to schedule multiple vehicles and jobs, respecting time windows, capacities and required skills.
Use the handy class methods to easily generate Directions, Isochrones, Time-Distance Matrix, Pelias Geocoding, POIs, Elevation and routing Optimizations etc, letting the package handle all the complex HTTP requests in the background for you.
Example Usage
To use the package with the Directions API to generate and draw a Route on a map in a Flutter application:
import'package:open_route_service/open_route_service.dart';
Future<void> main() async {
// Initialize the openrouteservice with your API key.finalOpenRouteService client = OpenRouteService(apiKey: 'YOUR-API-KEY');
// Example coordinates to test betweenconstdouble startLat = 37.4220698;
constdouble startLng = -122.0862784;
constdouble endLat = 37.4111466;
constdouble endLng = -122.0792365;
// Form Route between coordinatesfinalList<ORSCoordinate> routeCoordinates = await client.directionsRouteCoordsGet(
startCoordinate: ORSCoordinate(latitude: startLat, longitude: startLng),
endCoordinate: ORSCoordinate(latitude: endLat, longitude: endLng),
);
// Print the route coordinates
routeCoordinates.forEach(print);
// Map route coordinates to a list of LatLng (requires google_maps_flutter package)// to be used in the Map route Polyline.finalList<LatLng> routePoints = routeCoordinates
.map((coordinate) => LatLng(coordinate.latitude, coordinate.longitude))
.toList();
// Create Polyline (requires Material UI for Color)finalPolyline routePolyline = Polyline(
polylineId: PolylineId('route'),
visible: true,
points: routePoints,
color: Colors.red,
width: 4,
);
// Use Polyline to draw route on map or do anything else with the data :)
}
Security
Report vulnerabilities privately by following SECURITY.md. Do not include API keys or other credentials in issues, examples, or pull requests.
Contribution Guidelines
See CONTRIBUTING.md for the development workflow and test requirements. Use GitHub issues for reproducible bugs and focused feature requests.
Dependencies
Dart or Flutter, for the Dart SDK which this obviously runs on.
http, for internally making RESTful HTTP Network requests to the API endpoints.