turkiye_regional_map 0.0.1 copy "turkiye_regional_map: ^0.0.1" to clipboard
turkiye_regional_map: ^0.0.1 copied to clipboard

Turkiye regional map widget.

🇹🇷 Turkiye Regional Map Flutter Widget #

A widget that helps you select and mark geographic regions of Turkey.

💻 Installation #

In the dependencies: section of your pubspec.yaml, add the following line:

dependencies:
  turkiye_regional_map: <latest version>

To use the latest changes:

  turkiye_regional_map:
    git:
      url: https://github.com/Tughra/Turkiye-Regional-Map-Flutter-Widget.git
      ref: master

❔ Usage #

Import this class

import 'package:turkiye_regional_map/turkiye_regional_map.dart';

If you want to pulse animation when you select a region; #

final regionModelPulse = TurkeyRegionModel(
    showIstanbulEuropeRegion: false,
    showIstanbulAnatoliaRegion: false,
    selectedWidthFactor: 3.4,
    selectedRegion: TurkeyRegionType.blackSea);
TurkeyRegionalMap.withPulseAnimation(
mapWidth: MediaQuery.sizeOf(context).width,
selectable: true,
pulseMaxRadius: 200,
turkeyRegionModel: regionModelPulse,)

If you dont want to pulse animation when you select a region use this; #

final regionModelWithoutPulse = TurkeyRegionModel(
    showIstanbulEuropeRegion: true,
    mediterraneanColor: Colors.teal[100],
    easternAnatoliaColor: Colors.teal[200],
    southeasternAnatoliaColor: Colors.teal[300],
    centralAnatoliaColor: Colors.teal[400],
    blackSeaColor: Colors.teal[500],
    egeColor: Colors.teal[600],
    selectedRegionColor: Colors.teal,
    marmaraColor: Colors.teal[700],
    showIstanbulAnatoliaRegion: true,
    borderColor: Colors.white,
    selectedBorderColor: Colors.black,
    selectedWidthFactor: 3.4,
    selectedRegion: TurkeyRegionType.blackSea);
TurkeyRegionalMap.onlyMap(
mapWidth: MediaQuery.sizeOf(context).width,
selectable: true,
turkeyRegionModel: regionModelWithoutPulse,)

If you want to select Istanbul's europe or anatolia region you need to set true showIstanbulAnatoliaRegion or showIstanbulEuropeRegion inside of TurkeyRegionModel. If you do not want to initial selected region set selectedRegion:null inside of TurkeyRegionModel.

OnSelectRegionCallBack is a callback that contains hit exact position, selected region type and center position of selected region.

TurkeyRegionalMap.withPulseAnimation(
mapWidth: MediaQuery.sizeOf(context).width,
selectable: true,
selectedRegionCallback: (TurkeyRegionType type, Offset hitOffset, Offset centerRegion) {
  print(type);
  print("hitOffset $hitOffset");
  print("centerRegion $centerRegion");
},)

Full Example #

class MyHomePage extends StatefulWidget {


  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final regionModelPulse = TurkeyRegionModel(
      showIstanbulEuropeRegion: false,
      showIstanbulAnatoliaRegion: false,
      selectedWidthFactor: 3.4,
      selectedRegion: TurkeyRegionType.blackSea);
  final regionModelWithoutPulse = TurkeyRegionModel(
      showIstanbulEuropeRegion: true,
      mediterraneanColor: Colors.teal[100],
      easternAnatoliaColor: Colors.teal[200],
      southeasternAnatoliaColor: Colors.teal[300],
      centralAnatoliaColor: Colors.teal[400],
      blackSeaColor: Colors.teal[500],
      egeColor: Colors.teal[600],
      selectedRegionColor: Colors.teal,
      marmaraColor: Colors.teal[700],
      showIstanbulAnatoliaRegion: true,
      borderColor: Colors.white,
      selectedBorderColor: Colors.black,
      selectedWidthFactor: 3.4,
      selectedRegion: TurkeyRegionType.blackSea);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.red.shade800,
        title: Text("Turkiye Regional Map",style: TextStyle(color: Colors.white),),
      ),
      body: ListView(
        children: <Widget>[
          Center(child: Text(regionModelPulse.selectedRegion?.name??"",style: TextStyle(fontSize: 24),)),
          ColoredBox(color: Colors.blue.shade700,
            child: TurkeyRegionalMap.withPulseAnimation(
              mapWidth: MediaQuery.sizeOf(context).width,
              selectable: true,
              selectedRegionCallback: (TurkeyRegionType type, Offset hitOffset, Offset centerRegion) {
                print(type);
                print("hitOffset $hitOffset");
                print("centerRegion $centerRegion");
                setState(() {});
              },
              pulseColor: Colors.white,
              pulseMaxRadius: 200,
              turkeyRegionModel:regionModelPulse ,
            ),
          ),
          TurkeyRegionalMap.onlyMap(
            mapWidth: MediaQuery.sizeOf(context).width,
            selectable: true,
            turkeyRegionModel:regionModelWithoutPulse ,
          ),
        ],
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

🐛 Bugs/Requests #

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on Github and I'll look into it. Pull request are also welcome.

6
likes
130
points
15
downloads

Publisher

unverified uploader

Weekly Downloads

Turkiye regional map widget.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on turkiye_regional_map