A flutter plugin for Google Maps

Overview

IMPORTANT: This plugin is no longer under development

Why?

We initially built this plugin to fill an early gap in flutter. Since then, Google has made progress on their Google Map plugin.

Meanwhile, at AppTree, we've moved on to building a pure Dart implementation for mapping based off of leaflet, which you can find here. This plugin has the following important features:

  • Allows inline maps within your Widget hierarchy (rather than full screen)
  • Pins are just widgets. Very easy to customize
  • 0 dependencies on native libraries. No more Google Play or Cocoapod dependencies!
  • You can use any OpenStreetMap tiles as well as paid tile providers like MapBox and ESRI. Unfortunately, Google Map tiles are not available. You can find more about available tile providers here.

map_view

A flutter plugin for displaying google maps on iOS and Android

Please note: API changes are likely as we continue to develop this plugin.

Getting Started

Generate your API Key

  1. Go to: https://console.developers.google.com/
  2. Enable Maps SDK for Android
  3. Enable Maps SDK for iOS
  4. Under Credentials, choose Create Credential.
    • Note: For development, you can create an unrestricted API key that can be used on both iOS & Android. For production it is highly recommended that you restrict.

The way you register your API key on iOS vs Android is different. Make sure to read the next sections carefully.

iOS

The maps plugin will request your users location when needed. iOS requires that you explain this usage in the Info.plist file

  1. Set the NSLocationWhenInUseUsageDescription in ios/Runner/Info.plist. Example:
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Using location to display on a map</string>
  1. Prior to using the Map plugin, you must call MapView.setApiKey(String apiKey). Example:
   import 'package:map_view/map_view.dart';
   
   void main() {
     MapView.setApiKey("<your_api_key>");
     runApp(new MyApp());
   }

Note: If your iOS and Android API key are different, be sure to use your iOS API key here.

  1. Add code to show the MapView.

    //Create an instance variable for the mapView
    var _mapView = new MapView();
    
    
    //Add a method to call to show the map.
    void showMap() {
        _mapView.show(new MapOptions(showUserLocation: true));
    }
      
    
  2. Run your application on an iOS device or simulator. Confirm that when you display the map you see map detail. If you only see a beige screen it's possible that your API key is incorrect. When your API key is incorrect you'll see messages like this in the console:

ClientParametersRequest failed, 7 attempts remaining (0 vs 12). Error Domain=com.google.HTTPStatus Code=400 "(null)" UserInfo={data=<>}

Common API Key problems for iOS

  1. Your Bundle ID does not match what is registered in the Google API Console. When you create an restricted API key in the Google API console it asks you to specify your iOS bundle ID. Make sure that your iOS Bundle Identifier matches the one you registered in the console.

  2. Using the wrong key. If you made a separate key for iOS and Android, make sure you are using the iOS key in the MapView.setApiKey() call.

Android

You will be making multiple edits to your AndroidManifest.xml file. In your Flutter project, you can find this file location under android/app/src/main

  1. In your AndroidManifest.xml, add the following uses-permission above the tag.

        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  2. In your AndroidManifest.xml, add the following lines inside of the application tag. Be sure to replace your_api_key with the one you generated.

        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your_api_key"/>
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
  3. Add the MapActivity to your AndroidManifest.xml

        <activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
  4. In your android/build.gradle file. Under buildScript dependencies add:

        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4'
  5. Run your application on an Android device or simulator. Confirm that when you display the map you see map detail. If you only see a beige screen it's possible that your API key is incorrect.

Static Maps for Inline display

This plugin does not currently support displaying a Google Map within the Flutter widget hierarchy. A common workaround for this is to show a static image using the Google Static Maps API. Included in this Plugin is the StaticMapProvider class which will allow you to easily generate a static map. The Static Maps API also requires an API Key and you must enable the API within the Google API Console.

  1. Go to: https://console.developers.google.com/
  2. Enable Maps Static API
  3. Once enabled, you can use the same API key you generated for iOS/Android.
  4. Initialize the StaticMapProvider
    var provider = new StaticMapProvider('your_api_key');
  5. The StaticMapProvider offers a few different APIs for generating static maps. If you want to generate an image for the current viewport of your full screen interactive map you can use:
var uri = staticMapProvider.getImageUriFromMap(mapView,
                  width: 900, height: 400);

You can refer to the example project if you run into any issues with these steps.

Features

  • iOS Support
  • Android Support
  • Toolbar support
  • Update Camera position
  • Add Map pins
  • Receive map pin touch callbacks
  • Receive map touch callbacks
  • Receive location change callbacks
  • Receive camera change callbacks
  • Zoom to a set of annotations
  • Customize Pin color
  • Polyline support
  • Polygon support
  • Customize pin image
  • Remove markers, polylines & polygons.

Upcoming

  • Bounds geometry functions

Usage examples

Show a map ( with a toolbar )

mapView.show(
        new MapOptions(
            mapViewType: MapViewType.normal,
            showUserLocation: true,
            initialCameraPosition: new CameraPosition(
                new Location(45.5235258, -122.6732493), 14.0),
            title: "Recently Visited"),
        toolbarActions: [new ToolbarAction("Close", 1)]);

Get notified when the map is ready

mapView.onMapReady.listen((_) {
  print("Map ready");
});

Add multiple pins to the map

mapView.setMarkers(<Marker>[
    new Marker("1", "Work", 45.523970, -122.663081, color: Colors.blue),
    new Marker("2", "Nossa Familia Coffee", 45.528788, -122.684633),
]);

Add a single pin to the map

mapView.addMarker(new Marker("3", "10 Barrel", 45.5259467, -122.687747,
        color: Colors.purple));

Edit custom Marker image

First add your assets to a folder in your project directory. The name of the folder could be any but "images" or "assets" are the more common. It should look like this.

- project_name
    |-android
    |-images
        |-flower_vase.png
    |-ios
    |-lib
    # Rest of project folders and files

Then add asset to the pubspec.yaml under flutter tag.

flutter:
    # Code already existent

    # Added asset.
    assets:
        - images/flower_vase.png

Finally use the asset name as icon for your marker. If the width or height is not set or is equals to 0, the image original value of said attribute will be used.

new Marker(
      "1",
      "Something fragile!",
      45.52480841512737,
      -122.66201455146073,
      color: Colors.blue,
      draggable: true, //Allows the user to move the marker.
      markerIcon: new MarkerIcon(
        "images/flower_vase.png", //Asset to be used as icon
        width: 112.0, //New width for the asset
        height: 75.0, // New height for the asset
      ),
    );

Set a Marker draggable and listening to position changes

First set the draggable attribute of a marker to true.

Marker marker=new Marker(
      "1",
      "Something fragile!",
      45.52480841512737,
      -122.66201455146073,
      draggable: true, //Allows the user to move the marker.
    );

Now add listeners for the events.

// This listener fires when the marker is long pressed and could be moved.
mapView.onAnnotationDragStart.listen((markerMap) {
      var marker = markerMap.keys.first;
      var location = markerMap[marker]; // The original location of the marker before moving it. Use it if needed.
      print("Annotation ${marker.id} dragging started");
    });
// This listener fires when the user releases the marker.
mapView.onAnnotationDragEnd.listen((markerMap) {
      var marker = markerMap.keys.first;
      var location = markerMap[marker]; // The actual position of the marker after finishing the dragging.
      print("Annotation ${marker.id} dragging ended");
    });
// This listener fires every time the marker changes position.
mapView.onAnnotationDrag.listen((markerMap) {
      var marker = markerMap.keys.first;
      var location = markerMap[marker]; // The updated position of the marker.
      print("Annotation ${marker.id} moved to ${location.latitude} , ${location
          .longitude}");
    });

Add a single polyline to the map

mapView.addPolyline(new Polyline(
          "12",
          <Location>[
            new Location(45.519698, -122.674932),
            new Location(45.516687, -122.667014),
          ],
          width: 15.0));

Add multiple polylines to the map

mapView.setPolylines(<Polyline>[
        new Polyline(
          "11",
          <Location>[
            new Location(45.523970, -122.663081),
            new Location(45.528788, -122.684633),
            new Location(45.528864, -122.667195),
          ],
          jointType: FigureJointType.round,
          width: 15.0,
          color: Colors.orangeAccent,
        ),
        new Polyline(
          "12",
          <Location>[
            new Location(45.519698, -122.674932),
            new Location(45.516687, -122.667014),
          ],
          width: 15.0,
        ),
      ]);

Add a single polygon to the map

mapView.addPolygon(new Polygon(
                                 "111",
                                 <Location>[
                                   new Location(45.5231233, -122.6733130),
                                   new Location(45.5233225, -122.6732969),
                                   new Location(45.5232398, -122.6733506),
                                   new Location(45.5231233, -122.6733130),
                                 ],
                                 jointType: FigureJointType.round,
                                 strokeWidth: 5.0,
                                 strokeColor: Colors.red,
                                 fillColor: Color.fromARGB(75, 255, 0, 0),
                                 ));

Add multiple polygons to the map

 mapView.setPolygons(<Polygon>[
        new Polygon(
            "111",
            <Location>[
              new Location(42.9274334, -72.2811234),
              new Location(42.9258230, -72.2808444),
              new Location(42.9261294, -72.2779906),
              new Location(42.9275120, -72.2779155),
            ],
            //you can add a hole inside the polygon
            holes: <Hole>[
              new Hole(
                <Location>[
                  new Location(42.9270721, -72.2797287),
                  new Location(42.9266400, -72.2796750),
                  new Location(42.9267186, -72.2790956),
                  new Location(42.9270014, -72.2790956),
                ],
              ),
            ],
            jointType: FigureJointType.round,
            strokeWidth: 5.0,
            strokeColor: Colors.red,
            fillColor: Color.fromARGB(75, 255, 0, 0)),
        new Polygon(
            "111",
            <Location>[
              new Location(45.5231233, -122.6733130),
              new Location(45.5233225, -122.6732969),
              new Location(45.5232398, -122.6733506),
              new Location(45.5231233, -122.6733130),
            ],
            jointType: FigureJointType.round,
            strokeWidth: 5.0,
            strokeColor: Colors.red,
            fillColor: Color.fromARGB(75, 255, 0, 0)),
      ]);

Remove elements from the map

//Remove all markers
mapView.clearA

Zoom to fit all the pins on the map

mapView.zoomToFit(padding: 100);

Receive location updates of the users current location

mapView.onLocationUpdated
     .listen((location) => print("Location updated $location"));

Receive marker, polyline & polygon touches

//Marker
mapView.onTouchAnnotation.listen((annotation) => print("annotation ${annotation.id} tapped"));
//Polyline
mapView.onTouchPolyline.listen((polyline) => print("polyline ${polyline.id} tapped"));
//Polygon
mapView.onTouchPolygon.listen((polygon) => print("polygon ${polygon.id} tapped"));

Receive map touches

mapView.onMapTapped
     .listen((location) => print("Touched location $location"));
mapView.onMapLongTapped
     .listen((location) => print("Long tapped location $location"));

Receive indoor building & indoor level

mapView.onIndoorBuildingActivated.listen(
        (indoorBuilding) => print("Activated indoor building $indoorBuilding"));
mapView.onIndoorLevelActivated.listen(
    (indoorLevel) => print("Activated indoor level $indoorLevel"));

Receive camera change updates

mapView.onCameraChanged.listen((cameraPosition) =>
     this.setState(() => this.cameraPosition = cameraPosition));

Receive toolbar actions

mapView.onToolbarAction.listen((id) {
  if (id == 1) {
    _handleDismiss();
    }
});

Get the current zoom level

double zoomLevel = await mapView.zoomLevel;

Get the maps center location

Location centerLocation = await mapView.centerLocation;

Get the visible markers on screen

List<Marker> visibleAnnotations = await mapView.visibleAnnotations;
Comments
  • Polyline & Polygon support

    Polyline & Polygon support

    • Polyline support
    • Polyline tap event support
    • Polygon support
    • Hole support for polygons
    • Polygon tap event support
    • Updated gradle dependencies
    • Updated example
    • Added examples of polylines and polygons in README.md
    opened by LJaraCastillo 14
  • how to customize ?

    how to customize ?

    hello there is way to customize the toolbar in map_view? or add widgets (floatingactionbutton).

    example : image

    currently map_view opens a new window full screen with a slide to the left with a black toolbar. I would like to customize the page transistion , color toolbar and add widgets to interact without having to go back.

    Finally, it would not be possible to have the dynamic map in a pop up box instead of a full screen, or in a card ?

    thank you

    opened by nitneuq33000 12
  • Errors when building the plugin

    Errors when building the plugin

    Hello,

    I have those issues when running flutter run in any project using the map_view plugin.

    Launching lib/main.dart on Android SDK built for x86 in debug mode...
    Initializing gradle...                                       0,5s
    Resolving dependencies...                                    0,9s
    Running 'gradlew assembleDebug'...                               
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (239, 9): Expecting member declaration
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (239, 28): Expecting member declaration
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (239, 28): Function declaration must have a name
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (691, 2): Missing '}
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (246, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (259, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (325, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (334, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (339, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (345, 9): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
    @InlineOnly public operator inline fun <@OnlyInputTypes K, V> Map<out ???, ???>.get(key: ???): ??? defined in kotlin.collections
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (346, 13): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (346, 20): Type mismatch: inferred type is Float? but Unit? was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (346, 55): Type mismatch: inferred type is Float but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (350, 9): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
    @InlineOnly public operator inline fun <@OnlyInputTypes K, V> Map<out ???, ???>.get(key: ???): ??? defined in kotlin.collections
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (365, 9): Unresolved reference: clearMarkers
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (396, 9): Unresolved reference: clearPolylines
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (398, 28): Unresolved reference: createPolyline
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (414, 24): Unresolved reference: createPolyline
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (427, 9): Unresolved reference: clearPolygons
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (429, 27): Unresolved reference: createPolygon
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (445, 23): Unresolved reference: createPolygon
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (457, 9): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
    @InlineOnly public operator inline fun <@OnlyInputTypes K, V> Map<out ???, ???>.get(key: ???): ??? defined in kotlin.collections
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (458, 41): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (458, 48): Type inference failed. Expected type mismatch: inferred type is List<???> but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (466, 13): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (466, 20): Type mismatch: inferred type is kotlin.collections.ArrayList<String> /* = java.util.ArrayList<String> */ but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (470, 9): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
    @InlineOnly public operator inline fun <@OnlyInputTypes K, V> Map<out ???, ???>.get(key: ???): ??? defined in kotlin.collections
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (471, 41): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (471, 48): Type inference failed. Expected type mismatch: inferred type is List<???> but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (482, 13): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (482, 20): Type mismatch: inferred type is kotlin.collections.ArrayList<String> /* = java.util.ArrayList<String> */ but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (486, 9): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
    @InlineOnly public operator inline fun <@OnlyInputTypes K, V> Map<out ???, ???>.get(key: ???): ??? defined in kotlin.collections
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (487, 41): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (487, 48): Type inference failed. Expected type mismatch: inferred type is List<???> but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (498, 13): 'return' is not allowed here
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (498, 20): Type mismatch: inferred type is kotlin.collections.ArrayList<String> /* = java.util.ArrayList<String> */ but Unit was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapActivity.kt: (678, 5): Modifier 'override' is not applicable to 'local function'
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (222, 30): Unresolved reference: zoomToFit
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (230, 30): Unresolved reference: clearMarkers
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (244, 55): Unresolved reference: visiblePolyline
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (244, 74): Type inference failed: Not enough information to infer parameter T in fun <T> emptyList(): List<T>
    Please specify it explicitly.
    
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (248, 30): Unresolved reference: clearPolylines
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (262, 54): Unresolved reference: visiblePolygon
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (262, 72): Type inference failed: Not enough information to infer parameter T in fun <T> emptyList(): List<T>
    Please specify it explicitly.
    
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (266, 30): Unresolved reference: clearPolygons
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (289, 66): Too many arguments for public final fun setCamera(target: LatLng, zoom: Float): Unit defined in com.apptreesoftware.mapview.MapActivity
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (289, 85): Too many arguments for public final fun setCamera(target: LatLng, zoom: Float): Unit defined in com.apptreesoftware.mapview.MapActivity
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (295, 40): Type mismatch: inferred type is List<String> but Int was expected
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (295, 45): Too many arguments for public final fun zoomToAnnotations(padding: Int): Unit defined in com.apptreesoftware.mapview.MapActivity
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (301, 22): Unresolved reference: zoomToPolylines
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (307, 22): Unresolved reference: zoomToPolygons
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (341, 22): Unresolved reference: setPolylines
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (346, 26): Unresolved reference: addPolyline
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (352, 26): Unresolved reference: removePolyline
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (364, 22): Unresolved reference: setPolygons
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (369, 26): Unresolved reference: addPolygon
    e: /home/patrick/.pub-cache/hosted/pub.dartlang.org/map_view-0.0.13/android/src/main/kotlin/com/apptreesoftware/mapview/MapViewPlugin.kt: (375, 26): Unresolved reference: removePolygon
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':map_view:compileDebugKotlin'.
    > Compilation error. See log for more details
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 2s
    Gradle build failed: 1
    

    My config with Flutter is flutter doctor

    Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel dev, v0.5.7, on Linux, locale fr_FR.UTF-8) [✓] Android toolchain - develop for Android devices (Android SDK 27.0.3) [✓] Android Studio (version 3.1) [✓] Connected devices (1 available)

    • No issues found!

    Please could you help me to fix those errors ? thanks

    opened by Eimji 8
  • An error occur when i run my flutter app in the console

    An error occur when i run my flutter app in the console

    Hi, Thank you for your really nice plugin.

    I met an error when i lauch my flutter app in the console :

    Performing full restart...
    I/flutter (28990): Configured channel receiver in flutter ..
    E/flutter (28990): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
    E/flutter (28990): MissingPluginException(No implementation found for method setApiKey on channel com.apptreesoftware.map_view)
    E/flutter (28990): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:153:7)
    E/flutter (28990): <asynchronous suspension>
    E/flutter (28990): #1      MapView.setApiKey (package:map_view/map_view.dart:47:7)
    E/flutter (28990): #2      main (/data/user/0/com.yourcompany.sortiesportmobile/cache/sortiesport_mobileLULDVN/sortiesport_mobile/lib/main.dart:20:11)
    E/flutter (28990): #3      _startIsolate.<anonymous closure> (dart:isolate-patch/dart:isolate/isolate_patch.dart:278)
    E/flutter (28990): #4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:164)
    Restarted app in 5 948ms.
    

    My flutter doctor is :

    [√] Flutter (on Microsoft Windows [version 10.0.16299.192], locale fr-FR, channel alpha)
        • Flutter version 0.0.21 at C:\Flutter\flutter
        • Framework revision 2e449f06f0 (9 days ago), 2018-01-29 14:26:51 -0800
        • Engine revision 6921873c71
        • Tools Dart version 2.0.0-dev.16.0
        • Engine Dart version 2.0.0-edge.da1f52592ef73fe3afa485385cb995b9aec0181a
    
    [√] Android toolchain - develop for Android devices (Android SDK 27.0.0)
        • Android SDK at D:\Android\android-sdk
        • Android NDK at D:\Android\android-sdk\ndk-bundle
        • Platform android-27, build-tools 27.0.0
        • ANDROID_HOME = D:\Android\android-sdk
        • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
        • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
    
    [√] Android Studio (version 2.3)
        • Android Studio at C:\Program Files\Android\Android Studio
        • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
    
    [√] Connected devices
        • ONEPLUS A5000 • 6d010b4a • android-arm • Android 8.0.0 (API 26)
    
    

    Is an error due to the new dart version 2.0.0-dev ? Thanks

    opened by toregua 6
  • Error building for android

    Error building for android

    When I try to build on android, I get an error complaining about the map_view build.gradle.

    Launching lib/main.dart on Android SDK built for x86 in debug mode...
    Initializing gradle...
    Resolving dependencies...
    * Error running Gradle:
    Exit code 1 from: /Users/jstillwell/Code/dragonfax/hythr/android/gradlew app:properties:
    
    BUILD FAILED
    
    Total time: 1.484 secs
    
    Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
    java.lang.IllegalStateException: buildToolsVersion is not specified.
    	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
    	at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:558)
    	at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    	at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522)
    	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
    	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
    	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
    	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
    	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
    	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    	at com.sun.proxy.$Proxy16.afterEvaluate(Unknown Source)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:82)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:76)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50)
    	at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
    	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:628)
    	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:129)
    	at org.gradle.api.internal.project.DefaultProjectAccessListener.evaluateProjectAndDiscoverTasks(DefaultProjectAccessListener.java:32)
    	at org.gradle.api.internal.project.DefaultProjectAccessListener.beforeResolvingProjectDependency(DefaultProjectAccessListener.java:28)
    	at org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency.beforeResolved(DefaultProjectDependency.java:107)
    	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.ProjectIvyDependencyDescriptorFactory.createDependencyDescriptor(ProjectIvyDependencyDescriptorFactory.java:39)
    	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependencyDescriptorFactory.createDependencyDescriptor(DefaultDependencyDescriptorFactory.java:36)
    	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependenciesToModuleDescriptorConverter.addDependencies(DefaultDependenciesToModuleDescriptorConverter.java:52)
    	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependenciesToModuleDescriptorConverter.addDependencyDescriptors(DefaultDependenciesToModuleDescriptorConverter.java:43)
    	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.DefaultConfigurationComponentMetaDataBuilder.addConfigurations(DefaultConfigurationComponentMetaDataBuilder.java:37)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.toRootComponentMetaData(DefaultConfiguration.java:682)
    	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver$DefaultResolveContextToComponentResolver.resolve(DefaultArtifactDependencyResolver.java:138)
    	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:93)
    	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:85)
    	at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver$1.run(CacheLockingArtifactDependencyResolver.java:43)
    	at org.gradle.internal.Factories$1.create(Factories.java:25)
    	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:187)
    	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:170)
    	at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:129)
    	at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.useCache(DefaultCacheFactory.java:191)
    	at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:56)
    	at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver.resolve(CacheLockingArtifactDependencyResolver.java:41)
    	at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:119)
    	at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:72)
    	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:66)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$3.execute(DefaultConfiguration.java:443)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$3.execute(DefaultConfiguration.java:436)
    	at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:436)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:411)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:403)
    	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
    	at com.android.build.gradle.internal.DependencyManager.collectArtifacts(DependencyManager.java:484)
    	at com.android.build.gradle.internal.DependencyManager.resolveConfiguration(DependencyManager.java:354)
    	at com.android.build.gradle.internal.DependencyManager.resolveDependencies(DependencyManager.java:263)
    	at com.android.build.gradle.internal.DependencyManager.resolveDependencies(DependencyManager.java:166)
    	at com.android.build.gradle.internal.TaskManager.resolveDependencies(TaskManager.java:375)
    	at com.android.build.gradle.internal.VariantManager.lambda$createVariantData$3(VariantManager.java:607)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    	at com.android.build.gradle.internal.VariantManager.createVariantData(VariantManager.java:603)
    	at com.android.build.gradle.internal.VariantManager.createVariantDataForProductFlavors(VariantManager.java:793)
    	at com.android.build.gradle.internal.VariantManager.populateVariantDataList(VariantManager.java:469)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    	at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:263)
    	at com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin.java:601)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    	at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:596)
    	at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    	at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522)
    	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
    	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
    	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
    	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
    	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
    	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    	at com.sun.proxy.$Proxy16.afterEvaluate(Unknown Source)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:82)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:76)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50)
    	at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
    	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:628)
    	at org.gradle.api.internal.project.DefaultProject.evaluationDependsOn(DefaultProject.java:699)
    	at org.gradle.api.internal.project.DefaultProject.evaluationDependsOn(DefaultProject.java:691)
    	at org.gradle.api.Project$evaluationDependsOn.call(Unknown Source)
    	at build_dcv7u07gso5hpsb2ibo5bjdxm$_run_closure2.doCall(/Users/jstillwell/Code/dragonfax/hythr/android/build.gradle:26)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
    	at groovy.lang.Closure.call(Closure.java:414)
    	at groovy.lang.Closure.call(Closure.java:430)
    	at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:70)
    	at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
    	at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
    	at org.gradle.api.internal.project.DefaultProject.configure(DefaultProject.java:983)
    	at org.gradle.api.internal.project.DefaultProject.configure(DefaultProject.java:988)
    	at org.gradle.api.internal.project.DefaultProject.subprojects(DefaultProject.java:971)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:382)
    	at org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:170)
    	at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
    	at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
    	at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
    	at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:83)
    	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:941)
    	at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1264)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
    	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
    	at build_dcv7u07gso5hpsb2ibo5bjdxm.run(/Users/jstillwell/Code/dragonfax/hythr/android/build.gradle:24)
    	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
    	at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
    	at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:39)
    	at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
    	at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50)
    	at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
    	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
    	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:628)
    	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:129)
    	at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
    	at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:60)
    	at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
    	at org.gradle.initialization.DefaultGradleLauncher$1.execute(DefaultGradleLauncher.java:161)
    	at org.gradle.initialization.DefaultGradleLauncher$1.execute(DefaultGradleLauncher.java:158)
    	at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
    	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:158)
    	at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
    	at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
    	at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
    	at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
    	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
    	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
    	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:44)
    	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:29)
    	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    	at org.gradle.util.Swapper.swap(Swapper.java:38)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Build file '/Users/jstillwell/.pub-cache/git/flutter_google_map_view-8cea04eeca290bdb407cbea23ac5d496dc418c5f/android/build.gradle' line: 27
    
    * What went wrong:
    A problem occurred evaluating project ':map_view'.
    > Plugin with id 'kotlin-android' not found.
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    Finished with error: Please review your Gradle project setup in the android/ folder.
    
    opened by dragonfax 5
  • Plans to bring in polygon support?

    Plans to bring in polygon support?

    Its great that you have support for polyline. Do you have plans to support polygons as well(https://developers.google.com/maps/documentation/javascript/examples/polygon-simple)?

    My team could really benefit from it. On a more positive note, I think I should contribute to it 😉

    opened by nikhildev 4
  • Additional changes required for android

    Additional changes required for android

    In addition to installing NDK bundle, these are the other changes I had to make to my project for map_view to work on Android.

    android/build.gradle needed

    buildscript
      dependencies
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4'
    

    AndroidManifest.xml needed

    <activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>

    opened by dragonfax 4
  • Execution failed for task ':map_view:compileDebugKotlin'

    Execution failed for task ':map_view:compileDebugKotlin'

    Hello Please Help Me, map_view 0.0.14 errors

    e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (168, 34): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (171, 36): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (172, 40): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (173, 37): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (174, 31): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (175, 28): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (177, 21): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>? e: D:\DEV\Tools\flutter.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview\MapViewPlugin.kt: (178, 66): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Map<String, Any>?

    opened by MrMagloire 3
  • lost map ?

    lost map ?

    hello, without changing anything I don't see any more map, I have this message :

    D/ViewRootImpl@bd11c82MainActivity: ViewPostImeInputStage processPointer 0 W/System (24272): ClassLoader referenced unknown path: /system/framework/QPerformance.jar E/BoostFramework(24272): BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]] V/BoostFramework(24272): BoostFramework() : mPerf = null D/ViewRootImpl@bd11c82MainActivity: ViewPostImeInputStage processPointer 1 D/ViewRootImpl@bd11c82MainActivity: MSG_WINDOW_FOCUS_CHANGED 0 W/art (24272): Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable D/TextView(24272): setTypeface with style : 0 D/TextView(24272): setTypeface with style : 0 I/zzbz (24272): Making Creator dynamically I/DynamiteModule(24272): Considering local module com.google.android.gms.maps_dynamite:0 and remote module com.google.android.gms.maps_dynamite:220 I/DynamiteModule(24272): Selected remote version of com.google.android.gms.maps_dynamite, version >= 220 W/System (24272): ClassLoader referenced unknown path: I/Google Maps Android API(24272): Google Play services client version: 11910000 I/Google Maps Android API(24272): Google Play services package version: 12685025 E/art (24272): The String#value field is not present on Android versions >= 6.0 D/AbsListView(24272): Get MotionRecognitionManager D/MotionRecognitionManager(24272): mSContextService = com.samsung.android.hardware.context.ISemContextService$Stub$Proxy@f91d09a D/MotionRecognitionManager(24272): motionService = com.samsung.android.gesture.IMotionRecognitionService$Stub$Proxy@fc0edcb D/MotionRecognitionManager(24272): motionService = com.samsung.android.gesture.IMotionRecognitionService$Stub$Proxy@fc0edcb D/InputTransport(24272): Input channel constructed: fd=129 D/ViewRootImpl@31205c6MapActivity: setView = DecorView@992f987[MapActivity] touchMode=true W/Google Maps Android API(24272): Deprecation notice: In a future release, indoor will no longer be supported on satellite, hybrid or terrain type maps. Even where indoor is not supported, isIndoorEnabled() will continue to return the value that has been set via setIndoorEnabled(), as it does now. By default, setIndoorEnabled is 'true'. The API release notes (https://developers.google.com/maps/documentation/android-api/releases) will let you know when indoor support becomes unavailable on those map types. D/mali_winsys(24272): EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [1080x1920]-format:1 D/TextView(24272): setTypeface with style : 0 D/TextView(24272): setTypeface with style : 0 D/ViewRootImpl@31205c6MapActivity: MSG_RESIZED_REPORT: ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1 D/mali_winsys(24272): EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [1080x1680]-format:2 D/InputTransport(24272): Input channel destroyed: fd=93 W/DynamiteModule(24272): Local module descriptor class for com.google.android.gms.googlecertificates not found. I/DynamiteModule(24272): Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:4 I/DynamiteModule(24272): Selected remote version of com.google.android.gms.googlecertificates, version >= 4 W/System (24272): ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000079/n/arm64-v8a

    Same error with example mapview...

    opened by nitneuq33000 3
  • Creating AlertDialog inside mapView

    Creating AlertDialog inside mapView

    Hello,

    I'm trying to create an AlertDialog when the a marker annotation is tapped, but I'm failing to do so. I think the problem is related with the 'context' available on flutter (needed from 'showDialog()'). Is there any way of getting the mapView context on flutter? Or do I have to create a pipe for iOS and Android to handle this matter?

    Best Regards

    opened by nunorpg 3
  • Exception: HTTP request failed, statusCode: 403

    Exception: HTTP request failed, statusCode: 403

    I've downloaded the example project folder but I wasn't able to make it work (both on android and iOS).. The project compiles without errors and the application launches as expected but the map won't show, and an exception for the http request is thrown with statusCode 403. I'm using an unrestricted API key, and I'm certain it works, cause I've tested it on another Android project and the map is loaded.

    opened by nunorpg 3
  • Build error with map_view, flutter & gradle

    Build error with map_view, flutter & gradle

    I get a build error using flutter version 1.2.2 and map_view version 0.0.14.

    I tried to use this code in build.gradle

    
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4'
    I followed all the steps here https://pub.dartlang.org/packages/map_view#-readme-tab-
    

    I have an api-key but get the following build error

    Error running Gradle: ProcessException: Process “C:UsersAlmoit PCDesktopMyAppMapflutter_app2androidgradlew.bat” exited abnormally:

    Configure project :map_view WARNING: The specified Android SDK Build Tools version (27.0.3) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1. Android SDK Build Tools 28.0.3 will be used. To suppress this warning, remove “buildToolsVersion ‘27.0.3’” from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

    FAILURE: Build failed with an exception.

    What went wrong: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.2.51 and higher. Project ‘android’ is using version 1.1.2-4.

    Try: Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output. Run with –scan to get full insights.

    Get more help at https://help.gradle.org

    BUILD FAILED in 10s

     Command: D:\development\flutter\flutter_course\android\gradlew.bat app:properties
    Please review your Gradle project setup in the android/ folder.
    

    With flutter doctor, everything seems fine.

    flutter doctor -v
    
    [√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17763.437], locale en-AI)
        • Flutter version 1.2.1 at C:flutter
        • Framework revision 8661d8aecd (10 weeks ago), 2019-02-14 19:19:53 -0800
        • Engine revision 3757390fa4
        • Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
    
    [√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
        • Android SDK at C:Sdk
        • Android NDK location not configured (optional; useful for native profiling support)
        • Platform android-28, build-tools 28.0.3
        • ANDROID_HOME = C:Sdk
        • Java binary at: C:Program FilesAndroidAndroid Studiojrebinjava
        • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
        • All Android licenses accepted.
    
    [√] Android Studio (version 3.3)
        • Android Studio at C:Program FilesAndroidAndroid Studio
        • Flutter plugin version 33.4.1
        • Dart plugin version 182.5215
        • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    
    [√] Connected device (1 available)
        • SPH L520 • 2d81b4cf • android-arm • Android 4.4.2 (API 19)
    
    • No issues found!
    

    I searched it everywhere but can't find the answer. Please help me regarding this.

    opened by suryanitjsr 1
  • initializing libraries and imports.

    initializing libraries and imports.

    I dont get where should I put this ( 4.Initialize the StaticMapProvider var provider = new StaticMapProvider('your_api_key'); 5.The StaticMapProvider offers a few different APIs for generating static maps. If you want to generate an image for the current viewport of your full screen interactive map you can use: var uri = staticMapProvider.getImageUriFromMap(mapView, width: 900, height: 400);)

    opened by MahaAdel 0
  • Does‘t support android studio 3.3.2

    Does‘t support android studio 3.3.2

    android studio 3.3.2 support kotlin 1.3.0 or higher,but plug version is 1.2.50, I forced the kotlin version of the plugin to 1.3.0, the compilation could not pass. please remove buildToolsVersion from build.gradle

    opened by baoolong 6
  • map marker clickable

    map marker clickable

    Hi all

    i am add Markers to MapView successfully, but now i want to make marker clickable, when i want to click on marker run some event like open window or print something. how can i do it ?

    new Marker( "1", "WoW", 24.714266, 46.640513, color: Colors.blue, draggable: false, //Allows the user to move the marker. markerIcon: new MarkerIcon( "images/marker.png", width: 112.0, height: 75.0, ), ), new Marker( "2", "WoW, 2", 24.697541, 46.610934, color: Colors.blue, draggable: true, //Allows the user to move the marker. markerIcon: new MarkerIcon( "images/marker.png", width: 112.0, height: 75.0, ), ), ];

    opened by nasr25 0
  • Map view error in flutter & Dart

    Map view error in flutter & Dart

    • Error running Gradle: ProcessException: Process "G:\Work File\FlutterApp\ecomm_app\android\gradlew.bat" exited abnormally:

    Configure project :app WARNING: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variant.getMergeAssets(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace. WARNING: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variantOutput.getProcessResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace. ********************************************************* WARNING: This version of image_picker will break your Android build if it or its dependencies aren't compatible with AndroidX. See https://goo.gl/CP92wY for more information on the problem and how to fix it. This warning prints for all Android build failures. The real root cause of the error may be unrelated. *********************************************************

    FAILURE: Build failed with an exception.

    • What went wrong: A problem occurred configuring project ':map_view'.

    Failed to notify project evaluation listener. java.lang.AbstractMethodError (no error message)

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    BUILD FAILED in 3s Command: G:\Work File\FlutterApp\ecomm_app\android\gradlew.bat app:properties

    Please review your Gradle project setup in the android/ folder.

    opened by jitheshkramesh 1
  • I had this plugin up and running a day ago, try running the next day and it throws the below errors

    I had this plugin up and running a day ago, try running the next day and it throws the below errors

    Launching lib/main.dart on Android SDK built for x86 in debug mode... Initializing gradle... Resolving dependencies...

    • Error running Gradle: ProcessException: Process "/Users/USER/healthkonnetmobile/android/gradlew" exited abnormally:

    Configure project :cirrus_map_view WARNING: The specified Android SDK Build Tools version (27.0.3) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1. Android SDK Build Tools 28.0.3 will be used. To suppress this warning, remove "buildToolsVersion '27.0.3'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

    FAILURE: Build failed with an exception.

    • What went wrong: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.2.51 and higher. Project 'cirrus_map_view' is using version 1.2.50.

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    BUILD FAILED in 2s Command: /Users/USER/healthkonnetmobile/android/gradlew app:properties

    Finished with error: Please review your Gradle project setup in the android/ folder.

    opened by eobi 0
Owner
AppTree Software, Inc
AppTree Software, Inc
Flutter Maps A Flutter app using Google Maps SDK & Directions API

Flutter Maps A Flutter app using Google Maps SDK & Directions API Plugins The plugins used in this project are: google_maps_flutter geolocator flutter

Salsabil Mohamed Hemada 1 Jul 15, 2022
A flutter plugin for Google Maps

IMPORTANT: This plugin is no longer under development Why? We initially built this plugin to fill an early gap in flutter. Since then, Google has made

AppTree Software, Inc 415 Dec 29, 2022
A Flutter plugin for integrating Google Maps in iOS, Android and Web applications

flutter_google_maps A Flutter plugin for integrating Google Maps in iOS, Android and Web applications. It is a wrapper of google_maps_flutter for Mobi

MarchDev Toolkit 86 Sep 26, 2022
A flutter plugin that's decodes encoded google poly line string into list of geo-coordinates suitable for showing route/polyline on maps

flutter_polyline_points A flutter plugin that decodes encoded google polyline string into list of geo-coordinates suitable for showing route/polyline

Adeyemo Adedamola 75 Oct 25, 2022
A Flutter plugin which provides 'Picking Place' using Google Maps widget

Google Maps Places Picker Refractored This is a forked version of google_maps_place_picker package, with added custom styling and features.

Varun 5 Nov 13, 2022
Flutter Google Maps Tutorial

Flutter Google Maps Tutorial YouTube Video Setup Get an API Key at https://cloud.google.com/maps-platform/ Enable Maps SDK for Android, Maps SDK for i

Marcus Ng 85 Nov 30, 2022
A Flutter app using Google Maps SDK & Directions API

Flutter Maps A Flutter app using Google Maps SDK & Directions API Plugins The plugins used in this project are: google_maps_flutter geolocator flutter

Youhaan bootwala 1 Mar 18, 2022
A Flutter app using Google Maps SDK & Directions API

Flutter Maps A Flutter app using Google Maps SDK & Directions API Plugins The plugins used in this project are: google_maps_flutter geolocator flutter

Varun CN 2 Apr 19, 2022
This is a Flutter package that uses the Google Maps API to make a TextField that tries to autocomplete places as the user types, with simple smooth animations, making a nice UI and UX.

search_map_place This is a Flutter package that uses the Google Maps API to make a TextField that tries to autocomplete places as the user types, with

Lucas Bernardi 127 Oct 22, 2022
Easy Google Maps for Flutter

easy_google_maps Easy Google Maps for Flutter on Web and Mobile Getting Started Mobile Follow setup for Mobile Here Web Good to go! EasyGoogleMaps(

Rody Davis 69 Jul 19, 2022
Place picker on Google Maps for Flutter

Google Maps Place Picker A Flutter plugin which provides 'Picking Place' using Google Maps widget. The project relies on below packages. Map using Flu

Terry Kwon 178 Dec 16, 2022
A car rental flutter application using firebase and google maps API

A car sharing & rental app using Flutter, Firebase & Google Maps APIs ?? About the App ?? hopOn is flutter based application for car sharing and renta

Shivani Singh 97 Dec 30, 2022
Simple flutter app demonstrating usage of Google Maps

flutter_maps_example Get an API key at GoogleCloud. Enable Google Map SDK for ea

Tornike Gogberashvili 0 Nov 23, 2022
Flutter Google Maps My Track

mytracker We invite you to subscribe to the Alpha flutter code channel on Youtub

NELSON YUNGA 6 Oct 31, 2022
A Flutter app using Google Maps SDK & Directions API

Flutter Maps A Flutter app using Google Maps SDK & Directions API Plugins The plugins used in this project are: google_maps_flutter geolocator flutter

Tsenda LAB 1 Mar 28, 2022
A Flutter app using Google Maps SDK & Directions API

Flutter Maps A Flutter app using Google Maps SDK & Directions API Plugins The plugins used in this project are: google_maps_flutter geolocator flutter

Dreamfullstacker 16 Dec 31, 2022
Flutter package to enable clustering of location markers on Google Maps using widgets specific to each location.

flutter_google_maps_widget_cluster_markers This widget implements a very specific adaptation of google_maps_cluster_manager, allowing different ,marke

Kek Tech 2 Jan 6, 2023
Aplications with google maps and geolocation

Aplications with google maps and geolocation

Richardson Tsavo 4 Jul 26, 2022
Google Maps Services API Client for Dart

google_maps_services_dart (EXPERIMENTAL) API Specification for Google Maps Platform This Dart package is automatically generated by the OpenAPI Genera

Tuyen VU 0 Nov 1, 2021