| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import 'dart:typed_data';
- import 'ffi.dart' as ffi;
- import 'package:trackoffical_app/model/m_position.dart';
- import 'package:flutter/material.dart';
- class MapPackage {
- ffi.RwLockGeoMapInfo? ptr;
- Future<void> loadMemory(Uint8List data) async{
- ptr = await ffi.api.parseMapPackage(data: data);
- }
- Future<String> get mapExt async{
- return await ffi.api.runMapPackageMapExtOpaque(mapPackage: ptr!);
- }
- Future<Size> get dstSize async{
- final r = await ffi.api.runMapPackageGetDstSizeOpaque(mapPackage: ptr!);
- return Size(r.width, r.height);
- }
- Future<Uint8List> get mapImageData async{
- return await ffi.api.runMapPackageMapImageDataOpaque(mapPackage: ptr!);
- }
- Future<void> setDstSize(Size size) async{
- final dstSize = ffi.Size(width: size.width, height: size.height);
- await ffi.api.runMapPackageSetDstSizeOpaque(mapPackage: ptr!, dstSize: dstSize);
- }
- Future<MPosition> picToPosition(Offset onPic) async{
- final r = await ffi.api.runMapPackagePicToPositionOpaque(
- mapPackage: ptr!,
- onPic: ffi.Offset(x: onPic.dx, y: onPic.dy));
- return MPosition(latitude: r.latitude, longitude: r.longitude);
- }
- Future<Offset> positionToPic(MPosition position) async{
- final r = await ffi.api.runMapPackagePositionToPicOpaque(
- mapPackage: ptr!,
- position: ffi.Position(latitude: position.latitude, longitude: position.longitude));
- return Offset(r.x, r.y);
- }
- Future<ffi.ZoneType?> isInHotZone(MPosition position) async{
- final r = await ffi.api.runMapPackageIsInHotZoneOpaque(
- mapPackage: ptr!,
- position: ffi.Position(latitude: position.latitude, longitude: position.longitude));
- return r;
- }
- void close(){
- ptr?.dispose();
- ptr = null;
- }
- }
|