This commit is contained in:
yangjie 2024-11-17 16:02:18 +08:00
commit aa6bca76b3
15 changed files with 1428 additions and 0 deletions

43
.gitignore vendored Normal file
View File

@ -0,0 +1,43 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release

3
CHANGELOG.md Normal file
View File

@ -0,0 +1,3 @@
## [0.0.1] - TODO: Add release date.
* TODO: Describe initial release.

13
LICENSE Normal file
View File

@ -0,0 +1,13 @@
Copyright 2020 yohom
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

14
README.md Normal file
View File

@ -0,0 +1,14 @@
# uni_map_platform_interface
Uni Map Platform Interface.
## Getting Started
This project is a starting point for a Dart
[package](https://flutter.dev/developing-packages/),
a library module containing code that can be shared easily across
multiple Flutter or Dart projects.
For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

8
analysis_options.yaml Normal file
View File

@ -0,0 +1,8 @@
include: package:pedantic/analysis_options.yaml
linter:
rules:
camel_case_types: false
camel_case_extensions: false
omit_local_variable_types: false
prefer_single_quotes: false

104
lib/src/enums.dart Normal file
View File

@ -0,0 +1,104 @@
///
enum MapType {
///
Standard,
///
Satellite,
///
Night,
///
Navi,
///
Bus,
}
///
enum Language {
///
Chinese,
///
English,
}
///
enum CoordType {
GPS,
Google,
MapBar,
Baidu,
MapABC,
SosoMap,
Aliyun,
}
/// 线
enum LineCapType {
///
Butt,
///
Square,
///
Arrow,
///
Round,
}
/// 线
enum LineJoinType {
///
Bevel,
///
Miter,
///
Round,
}
/// 线
enum DashType {
///
Square,
///
Circle,
}
enum MyLocationType {
///
Show,
/// ,
Locate,
///
Follow,
/// ,
FollowNoCenter,
///
Rotate,
}
///
enum RepeatMode {
Restart,
Reverse,
}
enum RideType {
///
elebike,
///
bike,
}

1
lib/src/functions.dart Normal file
View File

@ -0,0 +1 @@

301
lib/src/map_controller.dart Normal file
View File

@ -0,0 +1,301 @@
import 'dart:async';
import 'dart:math';
import 'dart:typed_data';
import 'package:core_location_fluttify/core_location_fluttify.dart';
import 'package:flutter/material.dart';
import 'enums.dart';
import 'models.dart';
import 'options.dart';
/// marker点击事件回调签名 [Marker]
typedef OnMarkerClicked = FutureOr<void> Function(IMarker marker);
///
typedef OnMapClicked = FutureOr<void> Function(LatLng latLng);
///
typedef OnMapMove = FutureOr<void> Function(MapMove move);
/// Marker拖动回调签名
typedef OnMarkerDrag = FutureOr<void> Function(IMarker marker);
///
abstract class IMapController {
/// Dispose map controller.
Future<void> dispose();
/// Add tile overlay.
Future<IUrlTileOverlay> addUrlTileOverlay(UrlTileOption option);
/// Get current location.
Future<LatLng?> getLocation();
/// Show my location with [option].
Future<void> showMyLocation(MyLocationOption option);
///
Future<void> setMyLocationRotateAngle(double angle);
///
Future<void> showIndoorMap(bool show);
///
Future<void> setMapType(MapType mapType);
///
Future<void> showTraffic(bool enable);
///
Future<void> showZoomControl(bool enable);
///
Future<void> showCompass(bool enable);
///
Future<void> showLocateControl(bool enable);
///
Future<void> showScaleControl(bool enable);
/// 使
Future<void> setZoomGesturesEnabled(bool enable);
/// 使
Future<void> setScrollGesturesEnabled(bool enable);
/// 使
Future<void> setRotateGesturesEnabled(bool enable);
/// 使
Future<void> setTiltGesturesEnabled(bool enable);
/// 使
Future<void> setAllGesturesEnabled(bool enable);
///
///
/// 17 3 19.
Future<void> setZoomLevel(double level, {bool animated = true});
///
Future<double?> getZoomLevel();
///
Future<void> setZoomByCenter(bool byCenter);
///
Future<void> zoomIn({bool animated = true});
///
Future<void> zoomOut({bool animated = true});
///
///
/// [lat], [lng], [zoomLevel], [bearing], [tilt]
Future<void> setCenterCoordinate(
LatLng coordinate, {
double? zoomLevel,
double? bearing,
double? tilt,
bool animated = true,
});
///
Future<LatLng?> getCenterCoordinate();
/// marker
///
/// [lat], [lng]marker, [title][snippet], [iconUri]
/// url, asset路径或者文件路径.
/// [imageConfig], flutter sdk内提供的[createLocalImageConfiguration]
Future<IMarker> addMarker(MarkerOption option);
/// marker
///
/// [options]Marker
Future<List<IMarker>> addMarkers(List<MarkerOption> options);
/// marker列表从地图上移除
Future<void> clearMarkers(List<IMarker> markers);
///
///
/// [keepMyLocation]marker
Future<void> clear({bool keepMyLocation = true});
///
Future<LatLng?> fromScreenLocation(Point point);
///
Future<Point?> toScreenLocation(LatLng coordinate);
/// 线
///
/// [PolylineOption]
Future<IPolyline> addPolyline(PolylineOption option);
///
///
/// [points]线, [width][strokeColor]
Future<IPolygon> addPolygon(PolygonOption option);
///
///
/// [points]线, [width][strokeColor]
Future<ICircle> addCircle(CircleOption option);
/// marker点击监听事件
Future<void> setMarkerClickedListener(OnMarkerClicked onMarkerClicked);
/// marker拖动监听事件
Future<void> setMarkerDragListener({
OnMarkerDrag? onMarkerDragStart,
OnMarkerDrag? onMarkerDragging,
OnMarkerDrag? onMarkerDragEnd,
});
///
Future<void> setMapClickedListener(OnMapClicked onMapClick);
///
Future<void> setMapLongPressedListener(OnMapClicked onMapLongPress);
///
Future<void> setMapMoveListener({
OnMapMove? onMapMoveStart,
OnMapMove? onMapMoving,
OnMapMove? onMapMoveEnd,
});
///
Future<Uint8List?> screenShot();
///
///
/// [southWest]西, [northEast]
Future<void> setMapRegionLimits(LatLng southWest, LatLng northEast);
/// Marker弹窗点击事件监听
Future<void> setInfoWindowClickListener(OnMarkerClicked onInfoWindowClicked);
///
Future<IGroundOverlay> addGroundOverlay(GroundOverlayOption option);
///
Future<IHeatmapOverlay> addHeatmapTileOverlay(HeatmapTileOption option);
/// (marker, polyline, polygon等)
///
/// [bounds], [padding]
Future<void> zoomToSpan(
List<LatLng> bounds, {
EdgeInsets padding = const EdgeInsets.all(50),
bool animated = true,
});
///
///
///
Future<void> setCustomMapStyle({
String styleDataPath,
String styleExtraPath,
String texturePath,
});
/// marker
///
/// [options]Marker
Future<ISmoothMoveMarker> addSmoothMoveMarker(SmoothMoveMarkerOption option);
///
Future<IMultiPointOverlay> addMultiPointOverlay(MultiPointOption option);
///
///
/// [bearing] , (°), [0°,360°]
Future<void> setBearing(double bearing, {bool animated = true});
///
Future<void> setTilt(double tilt, {bool animated = true});
/// /3D楼块效果
Future<void> showBuildings(bool show);
/// /
Future<void> showMapText(bool show);
///
Future<void> setCameraPosition({
required LatLng coordinate,
double? zoom,
double? tilt,
double? bearing,
bool animated = true,
Duration duration = const Duration(milliseconds: 500),
});
///
Future<void> setMaxZoomLevel(double zoomLevel);
///
Future<void> setMinZoomLevel(double zoomLevel);
///
Future<void> setMapAnchor(double anchorU, double anchorV);
/// [from][to], 线[driveRouteResult], [trafficOption],
/// 线[lineWidth], [customTexture].
Future<void> addDriveRoute({
required LatLng from,
required LatLng to,
List<LatLng>? passbyPointList,
TrafficOption? trafficOption,
double lineWidth = 10,
ImageProvider? customTexture,
});
///
///
/// [districtName], [width], [strokeColor], [fillColor]
///
/// , 屿, 屿, .
/// , 屿使, [onlyMainDistrict]
/// , , [onlyMainDistrict]
/// false, .
/// MIX 3, release模式下需要5-6.
///
/// [sampleRate], , ,
/// , 1, ,
/// .
Future<List<IPolygon>> addDistrictOutline(
String districtName, {
double width = 5,
Color strokeColor = Colors.green,
Color fillColor = Colors.transparent,
bool onlyMainDistrict = true,
double sampleRate = 1.0,
});
///
///
/// [coordinateList]
/// [width]
/// [strokeColor]
/// [iconProvider] marker的图标
/// [duration]
Future<IPlaybackTrace> addPlaybackTrace(
List<LatLng> coordinateList, {
double width = 5,
Color strokeColor = Colors.green,
required ImageProvider iconProvider,
required Duration duration,
});
/// padding
Future<void> setPadding(EdgeInsets padding);
///
Future<void> setFps(int fps);
}

9
lib/src/map_service.dart Normal file
View File

@ -0,0 +1,9 @@
/// , sdk初始化
abstract class IMapService {
/// ios和android的app key
Future<void> init({
String? iosKey,
String? androidKey,
String? webKey,
});
}

100
lib/src/models.dart Normal file
View File

@ -0,0 +1,100 @@
import 'package:core_location_fluttify/core_location_fluttify.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'options.dart';
abstract class IOverlay {
Future<void> remove();
}
///
abstract class IMarker extends IOverlay {
///
Future<String> get title;
///
Future<String> get snippet;
///
Future<LatLng> get coordinate;
///
Future<String> get object;
///
Future<void> setCoordinate(LatLng coordinate);
///
Future<void> setVisible(bool visible);
///
Future<void> showInfoWindow();
///
Future<void> hideInfoWindow();
///
Future<void> setIcon(
ImageProvider iconProvider,
ImageConfiguration configuration,
);
///
Future<void> startAnimation(MarkerAnimation animation);
///
///
/// (°)
Future<void> setAngle(double angle);
///
Future<void> setTitle(String title);
///
Future<void> setSnippet(String snippet);
}
///
abstract class ISmoothMoveMarker extends IOverlay {
Future<void> stop();
}
/// 线
abstract class IPolyline extends IOverlay {
/// 线
///
///
Future<void> setCoordinateList(List<LatLng> coordinateList);
}
///
abstract class IPolygon extends IOverlay {
Future<bool> contains(LatLng target);
}
///
abstract class ICircle extends IOverlay {
///
Future<void> setCoordinate(LatLng coordinate);
///
Future<void> setRadius(double radius);
}
///
abstract class IHeatmapOverlay extends IOverlay {}
///
abstract class IUrlTileOverlay extends IOverlay {}
///
abstract class IGroundOverlay extends IOverlay {}
///
abstract class IMultiPointOverlay extends IOverlay {}
///
abstract class IPlaybackTrace extends IOverlay {
Future<void> stop();
}

580
lib/src/options.dart Normal file
View File

@ -0,0 +1,580 @@
import 'package:core_location_fluttify/core_location_fluttify.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'enums.dart';
///
@immutable
class MyLocationOption {
MyLocationOption({
this.show = true,
this.myLocationType = MyLocationType.Locate,
this.interval = Duration.zero,
this.strokeColor = Colors.transparent,
this.strokeWidth = 0,
this.fillColor = Colors.transparent,
this.iconProvider,
this.anchorU,
this.anchorV,
});
///
final bool show;
///
final MyLocationType myLocationType;
///
final Duration interval;
///
final Color strokeColor;
///
final double strokeWidth;
///
final Color fillColor;
///
///
/// 使[AssetImage], 使[NetworkImage], 使[FileImage]
final ImageProvider? iconProvider;
///
final double? anchorU, anchorV;
@override
String toString() {
return 'MyLocationOption{show: $show, myLocationType: $myLocationType, interval: $interval, strokeColor: $strokeColor, strokeWidth: $strokeWidth, fillColor: $fillColor, iconProvider: $iconProvider, anchorU: $anchorU, anchorV: $anchorV}';
}
}
/// Marker创建参数
@immutable
class MarkerOption {
MarkerOption({
required this.coordinate,
this.title = '',
this.snippet = '',
this.widget,
this.draggable = false,
this.infoWindowEnabled = true,
this.visible = true,
this.rotateAngle = 0,
this.anchorU = 0.5,
this.anchorV = 0,
this.object,
this.opacity,
this.iconProvider,
this.iconsProvider,
this.animationFps,
this.infoWindow,
}) : assert(!(widget != null && iconProvider != null),
'widget和iconProvider不能同时设置! ');
///
final LatLng coordinate;
///
final String title;
///
final String snippet;
/// Widget形式的Marker
///
/// [iconProvider].
/// Widget的大小, Column默认是max, 使, min.
final Widget? widget;
///
final bool draggable;
///
final bool infoWindowEnabled;
///
final bool visible;
/// (°)
final double rotateAngle;
///
final double anchorU;
///
final double anchorV;
/// 使, , String来保存
final String? object;
///
final double? opacity;
///
final ImageProvider? iconProvider;
///
final List<ImageProvider>? iconsProvider;
///
///
/// 60, 3
final int? animationFps;
final Widget? infoWindow;
@override
String toString() {
return 'MarkerOption{coordinate: $coordinate, title: $title, snippet: $snippet, widget: $widget, draggable: $draggable, infoWindowEnabled: $infoWindowEnabled, visible: $visible, rotateAngle: $rotateAngle, anchorU: $anchorU, anchorV: $anchorV, object: $object, iconProvider: $iconProvider}';
}
}
/// Marker创建参数
@immutable
class SmoothMoveMarkerOption {
SmoothMoveMarkerOption({
required this.path,
required this.duration,
required this.iconProvider,
});
///
final List<LatLng> path;
///
final ImageProvider iconProvider;
///
final Duration duration;
@override
String toString() {
return 'SmoothMoveMarkerOption{path: $path, iconProvider: $iconProvider, duration: $duration}';
}
}
/// Polyline创建参数
@immutable
class PolylineOption {
PolylineOption({
required this.coordinateList,
this.width = 5,
this.strokeColor = Colors.green,
this.textureProvider,
this.lineCapType,
this.lineJoinType,
this.dashType,
});
///
final List<LatLng> coordinateList;
///
final double width;
///
final Color strokeColor;
///
final ImageProvider? textureProvider;
/// 线
final LineCapType? lineCapType;
/// 线
final LineJoinType? lineJoinType;
/// 线
final DashType? dashType;
@override
String toString() {
return 'PolylineOption{latLngList: $coordinateList, width: $width, strokeColor: $strokeColor, textureProvider: $textureProvider, lineCapType: $lineCapType, lineJoinType: $lineJoinType, dashType: $dashType}';
}
}
/// Polygon创建参数
@immutable
class PolygonOption {
PolygonOption({
required this.coordinateList,
this.width = 5,
this.strokeColor = Colors.green,
this.fillColor = Colors.transparent,
this.zIndex,
});
///
final List<LatLng> coordinateList;
///
final double width;
///
final Color strokeColor;
///
final Color fillColor;
/// z index
final double? zIndex;
@override
String toString() {
return 'PolygonOption{latLngList: $coordinateList, width: $width, strokeColor: $strokeColor, fillColor: $fillColor}';
}
}
/// Circle创建参数
@immutable
class CircleOption {
///
final LatLng center;
///
final double radius;
///
final double width;
///
final Color strokeColor;
///
final Color fillColor;
CircleOption({
required this.center,
required this.radius,
this.width = 5,
this.strokeColor = Colors.green,
this.fillColor = Colors.transparent,
});
@override
String toString() {
return 'CircleOption{center: $center, radius: $radius, width: $width, strokeColor: $strokeColor, fillColor: $fillColor}';
}
}
/// TileOverlay创建参数
@immutable
class HeatmapTileOption {
HeatmapTileOption({
required this.coordinateList,
this.gradient,
});
///
final List<LatLng> coordinateList;
///
///
/// [RadialGradient.stops](0,1), [0.2,0.5,0.9]
/// [RadialGradient.stops][RadialGradient.colors]
final RadialGradient? gradient;
@override
String toString() {
return 'HeatmapTileOption{latLngList: $coordinateList}';
}
}
///
@immutable
class GroundOverlayOption {
GroundOverlayOption({
required this.southWest,
required this.northEast,
required this.imageProvider,
});
final LatLng southWest;
final LatLng northEast;
final ImageProvider imageProvider;
@override
String toString() {
return 'GroundOverlayOption{southWest: $southWest, northEast: $northEast, imageProvider: $imageProvider}';
}
}
///
@immutable
class UrlTileOption {
UrlTileOption({
required this.width,
required this.height,
required this.urlTemplate,
});
///
final int width;
///
final int height;
///
///
/// "{x}","{y}","{z}","{scale}","{x}","{y}","{z}","{scale}"tile path的值所替换
/// tile图片数据的URL http://server/path?x={x}&y={y}&z={z}&scale={scale}
final String urlTemplate;
@override
String toString() {
return 'UrlTileOption{width: $width, height: $height, urlTemplate: $urlTemplate}';
}
}
///
@immutable
class MultiPointOption {
MultiPointOption({
required this.pointList,
this.iconProvider,
});
///
final List<PointOption> pointList;
///
final ImageProvider? iconProvider;
@override
String toString() {
return 'MultiPointOption{pointList: $pointList, iconProvider: $iconProvider}';
}
}
///
@immutable
class PointOption {
PointOption({
required this.coordinate,
this.id,
this.title,
this.snippet,
this.object,
});
///
final LatLng coordinate;
/// id列表,
final String? id;
///
final String? title;
///
final String? snippet;
///
final String? object;
@override
String toString() {
return 'PointOption{coordinate: $coordinate, id: $id, title: $title, snippet: $snippet, object: $object}';
}
}
///
@immutable
class MapMove {
MapMove({
this.coordinate,
this.zoom,
this.tilt,
this.bearing,
this.isAbroad,
});
///
final LatLng? coordinate;
///
final double? zoom;
///
final double? tilt;
///
final double? bearing;
///
final bool? isAbroad;
@override
String toString() {
return 'MapMove{latLng: $coordinate, zoom: $zoom, tilt: $tilt, bearing: $bearing, isAbroad: $isAbroad}';
}
}
///
@immutable
class TraceLocation {
TraceLocation({
required this.latitude,
required this.longitude,
required this.speed,
required this.bearing,
required this.time,
});
final double latitude;
final double longitude;
final double speed;
final double bearing;
final int time;
@override
String toString() {
return 'TraceLocation{latitude: $latitude, longitude: $longitude, speed: $speed, bearing: $bearing, time: $time}';
}
}
///
@immutable
class TrafficOption {
TrafficOption({
required this.show,
this.goodColor = Colors.green,
this.badColor = Colors.yellow,
this.terribleColor = Colors.red,
this.unknownColor = Colors.blue,
});
///
final bool show;
///
final Color goodColor;
///
final Color badColor;
///
final Color terribleColor;
///
final Color unknownColor;
@override
String toString() {
return 'TrafficOption{show: $show, goodColor: $goodColor, badColor: $badColor, terribleColor: $terribleColor, unknownColor: $unknownColor}';
}
}
/// marker动画基类
@immutable
class MarkerAnimation {
MarkerAnimation(
this.duration,
this.repeatCount,
this.repeatMode,
this.fromValue,
this.toValue,
);
final Duration duration;
final int repeatCount;
final RepeatMode repeatMode;
final double? fromValue;
final double? toValue;
@override
String toString() {
return 'MarkerAnimation{duration: $duration, repeatCount: $repeatCount, repeatMode: $repeatMode, fromValue: $fromValue, toValue: $toValue}';
}
}
/// marker缩放动画
@immutable
class ScaleMarkerAnimation extends MarkerAnimation {
ScaleMarkerAnimation({
Duration duration = const Duration(seconds: 1),
int repeatCount = 1,
RepeatMode repeatMode = RepeatMode.Reverse,
double? fromValue,
double? toValue,
}) : super(duration, repeatCount, repeatMode, fromValue, toValue);
@override
String toString() {
return 'ScaleMarkerAnimation{fromValue: $fromValue, toValue: $toValue}';
}
}
/// marker透明度动画
@immutable
class AlphaMarkerAnimation extends MarkerAnimation {
AlphaMarkerAnimation({
Duration duration = const Duration(seconds: 1),
int repeatCount = 1,
RepeatMode repeatMode = RepeatMode.Reverse,
double? fromValue,
double? toValue,
}) : super(duration, repeatCount, repeatMode, fromValue, toValue);
@override
String toString() {
return 'AlphaMarkerAnimation{fromValue: $fromValue, toValue: $toValue}';
}
}
/// marker旋转动画
@immutable
class RotateMarkerAnimation extends MarkerAnimation {
RotateMarkerAnimation({
Duration duration = const Duration(seconds: 1),
int repeatCount = 1,
RepeatMode repeatMode = RepeatMode.Reverse,
double? fromValue,
double? toValue,
}) : super(duration, repeatCount, repeatMode, fromValue, toValue);
@override
String toString() {
return 'RotateMarkerAnimation{fromValue: $fromValue, toValue: $toValue}';
}
}
/// marker移动动画
@immutable
class TranslateMarkerAnimation extends MarkerAnimation {
TranslateMarkerAnimation({
Duration duration = const Duration(seconds: 1),
int repeatCount = 1,
RepeatMode repeatMode = RepeatMode.Reverse,
required this.coordinate,
}) : super(duration, repeatCount, repeatMode, null, null);
final LatLng coordinate;
@override
String toString() {
return 'TranslateMarkerAnimation{toValue: $coordinate}';
}
}
/// marker动画集合
@immutable
class MarkerAnimationSet extends MarkerAnimation {
MarkerAnimationSet({
this.animationSet,
required Duration duration,
int repeatCount = 1,
RepeatMode repeatMode = RepeatMode.Reverse,
}) : super(duration, repeatCount, repeatMode, null, null);
final List<MarkerAnimation>? animationSet;
@override
String toString() {
return 'MarkerAnimationSet{animationSet: $animationSet}';
}
}

View File

@ -0,0 +1,11 @@
library uni_map_platform_interface;
export 'package:core_location_fluttify/core_location_fluttify.dart';
export 'package:foundation_fluttify/foundation_fluttify.dart';
export 'src/enums.dart';
export 'src/functions.dart';
export 'src/map_controller.dart';
export 'src/map_service.dart';
export 'src/models.dart';
export 'src/options.dart';

220
pubspec.lock Normal file
View File

@ -0,0 +1,220 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.11.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
clock:
dependency: transitive
description:
name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.18.0"
core_location_fluttify:
dependency: "direct main"
description:
path: "D:\\FlutterProjects\\core_location_fluttify"
relative: false
source: path
version: "0.7.1"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493
url: "https://pub.dev"
source: hosted
version: "1.0.4"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
foundation_fluttify:
dependency: "direct main"
description:
name: foundation_fluttify
sha256: ca669cd6090a8de44a099e418523badf34ef14f03703a544431f2dd95411062e
url: "https://pub.dev"
source: hosted
version: "0.13.0+1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
lints:
dependency: transitive
description:
name: lints
sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c
url: "https://pub.dev"
source: hosted
version: "1.0.1"
matcher:
dependency: transitive
description:
name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.dev"
source: hosted
version: "0.12.16+1"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.15.0"
path:
dependency: transitive
description:
name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev"
source: hosted
version: "1.9.0"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.10.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev"
source: hosted
version: "2.1.2"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.2"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev"
source: hosted
version: "14.2.5"
sdks:
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"

20
pubspec.yaml Normal file
View File

@ -0,0 +1,20 @@
name: uni_map_platform_interface
description: Uni Map Platform Interface.
version: 0.7.0-rc.0
environment:
sdk: ">=2.12.0 <3.0.0"
flutter: ">=1.17.0"
dependencies:
flutter:
sdk: flutter
foundation_fluttify:
path: ..\foundation_fluttify
core_location_fluttify:
path: ..\core_location_fluttify
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^1.0.4

View File

@ -0,0 +1 @@
void main() {}