insuideindoor 1.1.1 copy "insuideindoor: ^1.1.1" to clipboard
insuideindoor: ^1.1.1 copied to clipboard

A Flutter plugin for integrating Mapbox Maps inside a Flutter application on Android, iOS and web platfroms.

example/lib/main.dart

// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:io';

// import 'package:atlas/atlas.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get_navigation/src/root/get_material_app.dart';
import 'package:insuideindoor/kkk/splash.dart';
import 'package:location/location.dart';
// import 'package:mapbox_gl_example/custom_marker.dart';
// import 'package:mapbox_gl_example/full_map.dart';
// import 'package:mapbox_gl_example/kkk/splash.dart';
// import 'package:mapbox_gl_example/offline_regions.dart';
// import 'package:mapbox_gl_example/place_batch.dart';
// import 'package:mapbox_gl_example/layer.dart';
// import 'package:mapbox_gl_example/sources.dart';
import 'package:device_info_plus/device_info_plus.dart';

import 'animate_camera.dart';
import 'annotation_order_maps.dart';
import 'full_map.dart';
import 'line.dart';
import 'local_style.dart';
import 'map_ui.dart';
import 'move_camera.dart';
import 'click_annotations.dart';
import 'page.dart';
import 'place_circle.dart';
import 'place_source.dart';
import 'place_symbol.dart';
import 'place_fill.dart';
import 'scrolling_map.dart';
import 'package:mapbox_gl/mapbox_gl.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
// import 'package:google_atlas/google_atlas.dart';

final List<ExamplePage> _allPages = <ExamplePage>[
  // MapUiPage(),
  // FullMapPage(),
  // AnimateCameraPage(),
  // MoveCameraPage(),
  // PlaceSymbolPage(),
  // PlaceSourcePage(),
  // LinePage(),
  // LocalStylePage(),
  // LayerPage(),
  // PlaceCirclePage(),
  // PlaceFillPage(),
  // ScrollingMapPage(),
  // OfflineRegionsPage(),
  // AnnotationOrderPage(),
  // CustomMarkerPage(),
  // BatchAddPage(),
  // ClickAnnotationPage(),
  // Sources()
];

class MapsDemo extends StatefulWidget {
  // FIXME: You need to pass in your access token via the command line argument
  // --dart-define=ACCESS_TOKEN=ADD_YOUR_TOKEN_HERE
  // It is also possible to pass it in while running the app via an IDE by
  // passing the same args there.
  //
  // Alternatively you can replace `String.fromEnvironment("ACCESS_TOKEN")`
  // in the following line with your access token directly.
  static const String ACCESS_TOKEN =
      "pk.eyJ1Ijoia2FtYWw2MTQiLCJhIjoiY2w2ejBpaGNwMHZhbjNjcW1rNHdrbWljNiJ9.C40l3nDw3m3L3Pky74Yblg";

  @override
  State<MapsDemo> createState() => _MapsDemoState();
}

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

  /// Determine the android version of the phone and turn off HybridComposition
  /// on older sdk versions to improve performance for these
  ///
  /// !!! Hybrid composition is currently broken do no use !!!
  Future<void> initHybridComposition() async {
    if (!kIsWeb && Platform.isAndroid) {
      final androidInfo = await DeviceInfoPlugin().androidInfo;
      final sdkVersion = androidInfo.version.sdkInt;
      if (sdkVersion != null && sdkVersion >= 29) {
        MapboxMap.useHybridComposition = true;
      } else {
        MapboxMap.useHybridComposition = false;
      }
    }
  }

  void _pushPage(BuildContext context, ExamplePage page) async {
    if (!kIsWeb) {
      final location = Location();
      final hasPermissions = await location.hasPermission();
      if (hasPermissions != PermissionStatus.granted) {
        await location.requestPermission();
      }
    }
    Navigator.of(context).push(MaterialPageRoute<void>(
        builder: (_) => Scaffold(
              appBar: AppBar(title: Text(page.title)),
              body: page,
            )));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('MapboxMaps examples')),
      body: MapsDemo.ACCESS_TOKEN.isEmpty ||
              MapsDemo.ACCESS_TOKEN.contains("YOUR_TOKEN")
          ? buildAccessTokenWarning()
          : ListView.separated(
              itemCount: _allPages.length,
              separatorBuilder: (BuildContext context, int index) =>
                  const Divider(height: 1),
              itemBuilder: (_, int index) => ListTile(
                leading: _allPages[index].leading,
                title: Text(_allPages[index].title),
                onTap: () => _pushPage(context, _allPages[index]),
              ),
            ),
    );
  }

  Widget buildAccessTokenWarning() {
    return Container(
      color: Colors.red[900],
      child: SizedBox.expand(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            "Please pass in your access token with",
            "--dart-define=ACCESS_TOKEN=ADD_YOUR_TOKEN_HERE",
            "passed into flutter run or add it to args in vscode's launch.json",
          ]
              .map((text) => Padding(
                    padding: EdgeInsets.all(8),
                    child: Text(text,
                        textAlign: TextAlign.center,
                        style: TextStyle(
                            fontSize: 14,
                            fontWeight: FontWeight.bold,
                            color: Colors.white)),
                  ))
              .toList(),
        ),
      ),
    );
  }
}

late SharedPreferences sharedPreferences;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  sharedPreferences = await SharedPreferences.getInstance();
  await dotenv.load(fileName: "assets/config/.env");
  // AtlasProvider.instance = GoogleAtlas();
  runApp(GetMaterialApp(home: Splash()));
}
2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A Flutter plugin for integrating Mapbox Maps inside a Flutter application on Android, iOS and web platfroms.

Homepage

License

unknown (LICENSE)

Dependencies

collection, flutter, mapbox_gl_platform_interface, mapbox_gl_web

More

Packages that depend on insuideindoor