Flutter Mapbox Polygon Area Calculator

A Flutter package that allows you to calculate the area of a polygon drawn on a Mapbox map.

Features

Examples

This package is highly dependent on Get state management package. Install latest getX pacakge from pub dev.

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:mapbox_draw_polygon_area/src/mapbox_draw_polygon.dart'
    as myPacakge;
import 'package:mapbox_gl/mapbox_gl.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      home: MapboxMapExample(),
    );
  }
}

class MapboxMapExample extends StatefulWidget {
  @override
  _MapboxMapExampleState createState() => _MapboxMapExampleState();
}

class _MapboxMapExampleState extends State<MapboxMapExample> {
  var myController = Get.put(myPacakge.MapBoxGetController()); //<----to use Getx controller provided by the package .

  void _onMapCreated(MapboxMapController controller) {
    //Assigning mapbox controller to your getx controller instance 
    myController.mapBoxcontrollerInstance = controller; //<----Here
    //Add this function to use on symbol tap and feature taps 
    myController.onMapCreateFun(); //<----Here
  }

  @override
  void initState() {
      super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButtonLocation:
          FloatingActionButtonLocation.miniCenterDocked,
      floatingActionButton: Stack(
        fit: StackFit.expand,
        children: [
          
          myController.drawPad(), // <-------------Snapping sheet to draw points
          myController.centerTargetiIcon(), // <------Target icon that is placed in the center of the screen
         
        ],
      ),
      body: MapboxMap(
        styleString: MapboxStyles.LIGHT,
        accessToken: 'mapbox public token', // <------your publicmapbox token
        onMapCreated: _onMapCreated,
        trackCameraPosition: true,
        initialCameraPosition: const CameraPosition(
          target: LatLng(40.384950128422496, -85.56492779229464),
          zoom: 16,
        ),
        //This is a helper line that will guide you in the process
        onCameraIdle: (() {
          if (myController.listOfDrawLatLlongs.isNotEmpty && 
              !myController.isPolygonSaved.value &&
              !myController.isDiagonalSaved.value) {
            myController.drawActiveline(); // <------Here-------
          }
        }),
      ),
    );
  }
}

Usage

To see an example of how to use the mapbox polygon area calculator, check out the example directory in the package source code.

Additional information

You can checkout from github and contribute as much you want.