navigine_sdk 1.2.13 copy "navigine_sdk: ^1.2.13" to clipboard
navigine_sdk: ^1.2.13 copied to clipboard

Navigine SDK for Flutter. This allow you to use the capabilities of Navigine SDK in your Flutter applications for iOS and Android

example/lib/main.dart

import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';
// import 'package:permission_handler/permission_handler.dart';
import 'package:navigine_sdk/library_context.dart';
import 'package:navigine_sdk/com.navigine.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await initNavigineSdk();
  runApp(MaterialApp(home: MainPage()));
}

int LOCATION_ID = 0; // Put here your location id
int SUBLOCATION_ID = 0;  // Put here your sublocation id

class MainPage extends StatelessWidget with WidgetsBindingObserver implements LocationListener {

  late NavigineSdk _sdk;
  late LocationManager _locationManager;
  late LocationWindow _locationWindow;
  late IconMapObject _iconMapObject;
  late PolylineMapObject _polylineMapObject;

  @override
  Widget build(BuildContext context) {
    WidgetsBinding.instance.addObserver(this);
    WidgetsBinding.instance.removeObserver(this);

    _sdk = NavigineSdk.getInstance();
    _sdk.setServer("https://ips.navigine.com");
    _sdk.setUserHash("0000-0000-0000-0000");

    _locationManager = _sdk.getLocationManager();
    _locationManager.setLocationId(LOCATION_ID);
    _locationManager.addLocationListener(this);

    final imageWrapper = ImageWrapper.fromImageProvider(AssetImage(
      'lib/assets/place.png',
    ));

    return Scaffold(
      appBar: AppBar(title: const Text('Navigine flutter example')),
      body: Column(
        children: <Widget>[
          Expanded(
            child: Container(
              padding: const EdgeInsets.all(8),
              // child: img?.image,
              child: LocationView(
                onViewCreated: (LocationWindow locationWindow) async {
                  _locationWindow = locationWindow;
                  Future.delayed(Duration(seconds: 1), () {
                    _locationWindow.setSublocationId(SUBLOCATION_ID);
                  });

                  _iconMapObject = (_locationWindow.addIconMapObject())!;
                  await imageWrapper.then((image) => _iconMapObject.setBitmap(image));
                  _iconMapObject.setSize(40.0, 40.0);
                  _iconMapObject.setStyle("{order: 1, collide: false}");
                  _iconMapObject.setPosition(LocationPoint(Point(10, 10), LOCATION_ID, SUBLOCATION_ID));
                  _iconMapObject.setVisible(true);

                  _polylineMapObject = (_locationWindow.addPolylineMapObject())!;
                  _polylineMapObject.setColor(100/255.0, 0.5, 0.5, 1);
                  _polylineMapObject.setWidth(3.0);
                  _polylineMapObject.setPolyLine(LocationPolyline(Polyline([Point(0.0, 0.0), Point(3.0, 10.0)]), LOCATION_ID, SUBLOCATION_ID));
                  _polylineMapObject.setVisible(true);
                },
              )
            )
          )
        ]
      )
    );
  }

  @override
  void dispose() {
    _locationManager.removeLocationListener(this);
  }

  @override
  void onLocationFailed(int locationId, Error error) {
    print("On Location failed ${locationId} ${error.code} ${error.message}");
  }

  @override
  void onLocationLoaded(Location location) {
    print('On Location Loaded ${location.id} ${location.name}');
  }

  @override
  void onLocationUploaded(int locationId) {
    // TODO: implement onLocationUploaded
  }
}
3
likes
120
points
124
downloads

Publisher

verified publishernavigine.com

Weekly Downloads

Navigine SDK for Flutter. This allow you to use the capabilities of Navigine SDK in your Flutter applications for iOS and Android

Repository (GitHub)

Documentation

API reference

License

unknown (license)

Dependencies

ffi, flutter, flutter_plugin_android_lifecycle, meta, uuid

More

Packages that depend on navigine_sdk