분류, 패키지 및 저장소 검색

패키지 상세v3.0.2

gmaps_by_road_distance_calculator

지도상의 한 지점에서 다른 지점까지 도로 거리를 계산하는 패키지입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
119
좋아요
14
Pub 점수
120

패키지 설치

flutter pub add gmaps_by_road_distance_calculator

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

이 Flutter 패키지는 Google Maps 데이터를 사용하여 두 지리적 위치 사이의 도로 기반 거리를 계산합니다. 실제 도로 네트워크를 활용함으로써 정확한 이동 거리와 경로 예측을 가능하게 하여 내비게이션 및 물류 애플리케이션에 적합합니다. 안드로이드, iOS, 웹, macOS, Windows, 리눅스 등 다양한 플랫폼을 지원하여 광범위한 호환성을 보장합니다. 간단한 명령줄 추가를 통해 개발자가 쉽게 통합할 수 있습니다. 직선 거리(새처럼 날아가는 것처럼) 측정이 아닌 실제 도로 경로를 기반으로 한 정밀하고 실시간 거리 계산이 필요한 사례용으로 설계되었습니다.

사용 사례

  • 내비게이션 앱
  • 물류 및 배송 추적
  • 경로 계획 도구
  • 이동 시간 예측
  • 지도 기반 거리 기반 필터링

주요 기능

  • 도로 거리 계산
  • 다중 플랫폼 지원
  • Google 지도 통합
  • 간단한 API 인터페이스
  • 실시간 거리 업데이트

적합한 대상

  • 내비게이션 기능을 구축하는 개발자
  • 정확한 여행 거리가 필요한 앱
  • 크로스플랫폼 지도 애플리케이션
  • 배달 및 라이드셰어링 서비스
  • 위치 인식 분석

고려 사항

  • API 호출을 위해 인터넷 연결이 필요합니다
  • Google Maps 백엔드 사용 가능 여부에 따라 다름
  • 높은 요청량으로 인해 사용 비용이 발생할 수 있습니다
  • Google맵에서 제공하는 도로 네트워크 데이터에 한정

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

gmaps_by_road_distance_calculator

A Dart package for calculating distances along roads and routes using multiple APIs and formats.

Features

  • Calculate distances between geographical points
  • Support for real-time distance tracking
  • Calculate distances along roads using OSRM (Open Source Routing Machine)
  • Multiple travel modes: driving, bicycling, walking, transit
  • Parse and work with GPX and KML route files
  • Decode polyline strings to geographical points

Getting Started

Installation

Add the package to your pubspec.yaml:

dependencies:
  gmaps_by_road_distance_calculator: ^1.0.0

Then run:

flutter pub get
Import
import 'package:gmaps_by_road_distance_calculator/gmaps_by_road_distance_calculator.dart';

Usage

Basic Distance Calculation

Calculate straight-line distances between geographical points:

final calculator = ByRoadDistanceCalculator();
final points = [
  LatLng(37.7749, -122.4194), // San Francisco
  LatLng(34.0522, -118.2437), // Los Angeles
];

// Calculate straight-line distance in kilometers
final distance = calculator.calculateDistance(points);
print('Distance: $distance km');
Calculate Road Distance Using OSRM

Calculate actual road distance between two points using the OSRM service:

final calculator = ByRoadDistanceCalculator();
final start = LatLng(37.7749, -122.4194); // San Francisco
final end = LatLng(34.0522, -118.2437); // Los Angeles

// Calculate driving distance
calculator.calculateDistanceViaOSRM(
  start: start,
  end: end,
  mode: TravelModes.driving,
).then((result) {
  print('Driving distance: ${result.distance} km');
  print('Route consists of ${result.points.length} points');
});

// Calculate walking distance
calculator.calculateDistanceViaOSRM(
  start: start,
  end: end,
  mode: TravelModes.walking,
).then((result) {
  print('Walking distance: ${result.distance} km');
});
Real-time Distance Tracking

Track and update distance in real-time as new points are added:

final calculator = ByRoadDistanceCalculator();

// Listen for distance updates
calculator.distanceUpdates.listen((distance) {
  print('Current distance: $distance km');
});

// Add points as they become available (e.g., from GPS)
calculator.addPoint(LatLng(37.7749, -122.4194));
calculator.addPoint(LatLng(37.7850, -122.4100));
calculator.addPoint(LatLng(37.7950, -122.4000));

// Reset tracking when needed
calculator.clearPoints();
Working with GPX Files

Parse GPX files to extract geographical points:

final calculator = ByRoadDistanceCalculator();
final gpxContent = '''
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1">
  <trk>
    <trkseg>
      <trkpt lat="37.7749" lon="-122.4194"></trkpt>
      <trkpt lat="37.7850" lon="-122.4100"></trkpt>
      <trkpt lat="37.7950" lon="-122.4000"></trkpt>
    </trkseg>
  </trk>
</gpx>
''';

final points = calculator.parseGPX(gpxContent);
final distance = calculator.calculateDistance(points);
print('Distance from GPX: $distance km');
Working with KML Files

Parse KML files to extract geographical points:

final calculator = ByRoadDistanceCalculator();
final kmlContent = '''
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Placemark>
      <LineString>
        <coordinates>
          -122.4194,37.7749,0
          -122.4100,37.7850,0
          -122.4000,37.7950,0
        </coordinates>
      </LineString>
    </Placemark>
  </Document>
</kml>
''';

final points = calculator.parseKML(kmlContent);
final distance = calculator.calculateDistance(points);
print('Distance from KML: $distance km');
Decode Polyline Strings

Convert encoded polyline strings to geographical points:

final encodedPolyline = "_p~iF~ps|U_ulLnnqC_mqNvxq`@";
final points = ByRoadDistanceCalculator.decodePolylineString(encodedPolyline);

Advanced Configuration

Custom OSRM Server

You can specify a custom OSRM server URL if you're hosting your own instance:

calculator.calculateDistanceViaOSRM(
  start: start,
  end: end,
  mode: TravelModes.driving,
  customOSRMUrl: 'https://your-custom-osrm-server.com/route/v1',
).then((result) {
  print('Distance: ${result.distance} km');
});

Dependencies

This package depends on:

  • latlong2: For geographical coordinate operations
  • http: For API requests
  • xml: For parsing GPX and KML files

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Issues and Feedback

Please file issues and feedback here.

카테고리

의존성

의존성 목록 4 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.