dgis_flutter 0.0.21 copy "dgis_flutter: ^0.0.21" to clipboard
dgis_flutter: ^0.0.21 copied to clipboard

Plugin sdk 2gis

example/lib/main.dart

import 'dart:typed_data';
import 'dart:ui';

import 'package:dgis_flutter/dgis_flutter.dart';
import 'package:dgis_flutter/gis_map_controller.dart';
import 'package:dgis_flutter/model/gis_camera_position.dart';
import 'package:dgis_flutter/model/gis_map_object.dart';
import 'package:dgis_flutter_example/assets_constant.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: GisScreen(),
    );
  }
}

class GisScreen extends StatefulWidget {
  const GisScreen({Key? key}) : super(key: key);

  @override
  State<GisScreen> createState() => _GisScreenState();
}

class _GisScreenState extends State<GisScreen> {
  final GisMapController controller = GisMapController();

  late final Future<List<GisMapMarker>> icons;
  List<GisMapMarker> list = [];

  @override
  void initState() {
    icons =
        Future.wait([getPngFromAsset(context, AssetPath.iconsPointGrey, 60)])
            .then((value) => [
                  GisMapMarker(
                      icon: value[0],
                      latitude: 52.29778,
                      longitude: 104.29639,
                      zIndex: 0,
                      id: "123456")
                ]);
    super.initState();
  }

  Future<Uint8List> getPngFromAsset(
    BuildContext context,
    String path,
    int width,
  ) async {
    ByteData data = await DefaultAssetBundle.of(context).load(path);
    Codec codec = await instantiateImageCodec(
      data.buffer.asUint8List(),
      targetWidth: width,
    );
    FrameInfo fi = await codec.getNextFrame();
    return (await fi.image.toByteData(format: ImageByteFormat.png))!
        .buffer
        .asUint8List();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: Row(
        mainAxisAlignment: MainAxisAlignment.end,
        children: [
          FloatingActionButton(
            child: const Icon(Icons.zoom_in_outlined),
            onPressed: () async {
              await controller.increaseZoom(duration: 0);
            },
          ),
          FloatingActionButton(
            child: const Icon(Icons.zoom_out_outlined),
            onPressed: () async {
              await controller.reduceZoom(duration: 0);
            },
          ),
          FloatingActionButton(
            child: const Icon(Icons.add),
            onPressed: () async {
              controller.setRoute(RoutePosition(
                  finishLatitude: 55.752425,
                  finishLongitude: 37.613983,
                  startLatitude: 55.759909,
                  startLongitude: 37.618806));
            },
          ),
          FloatingActionButton(
            child: const Icon(Icons.remove),
            onPressed: () async {
              controller.removeRoute();
            },
          ),
        ],
      ),
      body: Center(
          child: FutureBuilder<List<GisMapMarker>>(
        future: icons,
        builder: (context, snapshot) {
          if (!snapshot.hasData) return const SizedBox();
          list = snapshot.data!;
          return GisMap(
            directoryKey: '',
            mapKey: '',
            controller: controller,
            onTapMarker: (marker) {
              // ignore: avoid_print
              print(marker.id);
            },
            startCameraPosition: const GisCameraPosition(
              latitude: 52.29778,
              longitude: 104.29639,
              bearing: 85.0,
              tilt: 25.0,
              zoom: 14.0,
            ),
          );
        },
      )),
    );
  }
}
8
likes
0
pub points
55%
popularity

Publisher

unverified uploader

Plugin sdk 2gis

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on dgis_flutter