搜索插件、代码仓与 APP 分类

插件详情v3.1.0

google_polyline_algorithm

Google 多段线编码压缩算法的 Dart 实现,一种有损压缩算法。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
2.8万
喜欢数
55
Pub 分数
160

安装插件

flutter pub add google_polyline_algorithm

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Google 的 Polyline 编码算法的 Dart 实现,用于将纬度和经度坐标压缩为紧凑的字符串格式。这种有损压缩可减少地图路径的数据大小,非常适合在地理定位应用中高效传输和存储。该包支持所有主要平台,包括 Android、iOS、Web、macOS、Windows 和 Linux。它使开发者能够以最小的开销编码和解码折线,同时保持大多数地图使用场景所需的足够精度。

适合场景

  • 地图路线可视化
  • 高效的GPS数据传输
  • 地理路径的紧凑存储
  • 实时位置跟踪
  • 地理空间数据共享
  • 离线地图数据

主要特点

  • 有损坐标压缩
  • 跨平台支持
  • 简单的编码/解码 API
  • 高性能
  • 适用于典型地图距离
  • 轻量级依赖

适合对象

  • 移动和Web地图应用
  • 基于位置的服务
  • 路线规划工具
  • 高效的数据地理空间 API
  • 处理大型GPS数据集的应用程序

使用建议

  • 由于压缩导致的精度损失
  • 不适合高精度科学测量
  • 需要仔细处理极端纬度下的边缘情况
  • 仅限折线几何
  • 可能需要对关键导航系统进行验证

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

google_polyline_algorithm

Build codecov Pub GitHub GitHub stars

Dart implementation of Googles Polyline Encoding lossy compression Algorithm.

Getting Started

This package adds following methods to work with Googles Polyline Encoding Algorithm:

  • encodePoint(num current, {num previous = 0, int accuracyExponent = 5}) encodes a single coordinate

  • encodePolyline(List<List<num>> coordinates, {int accuracyExponent = 5}) encodes a list of coordinates into an encoded polyline stirng

  • decodePolyline(String polyline, {int accuracyExponent = 5}) decodes an encoded polyline string into a list of coordinates

Examples

import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';

final coord = encodePoint(-179.9832104);
print(coord);
// output is `~oia@'

final coords = encodePolyline([
  [38.5, -120.2],
  [40.7, -120.95],
  [43.252, -126.453],
]);
print(coords);
// output is `_p~iF~ps|U_ulLnnqC_mqNvxq`@'

final polyline = decodePolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@');
print(polyline);
// output is [[38.5, -120.2],[40.7, -120.95],[43.252, -126.453],]

所属分类

源码仓库

使用此插件的项目