Repository: flutter
Issue: google_maps_flutter geodesic polygons are not working in iOS
Labels: platform-ios,p: maps,package,has reproducible steps,P2,found in release: 2.2,team-ios,triaged-ios

<!-- Thank you for using Flutter!

     If you are looking for support, please check out our documentation
     or consider asking a question on Stack Overflow:
      * https://flutter.dev/
      * https://api.flutter.dev/
      * https://stackoverflow.com/questions/tagged/flutter?sort=frequent

     If you have found a bug or if our documentation doesn't have an answer
     to what you're looking for, then fill out the template below. Please read
     our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports
-->

## Steps to Reproduce

<!-- You must include full steps to reproduce so that we can reproduce the problem. -->

1. Run `flutter create bug`.
2. Update the files as follows: 
- Add the dependency google_maps_flutter: ^2.0.6 to the pubsec.yaml file
- Configure the project according to the guide available on https://pub.dev/packages/google_maps_flutter/versions/2.0.6
- In main.dart add the following code:

```
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Google Maps Demo',
      home: MapSample(),
    );
  }
}

class MapSample extends StatefulWidget {
  @override
  State<MapSample> createState() => MapSampleState();
}

class MapSampleState extends State<MapSample> {
  Completer<GoogleMapController> _controller = Completer();

  static final CameraPosition _default = CameraPosition(
    target: LatLng(0, 0),
    zoom: 0,
  );

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: GoogleMap(
        mapType: MapType.normal,
        initialCameraPosition: _default,
        polygons: createPolygonsSet(),
        onMapCreated: (GoogleMapController controller) {
          _controller.complete(controller);
        },
      ),
    );
  }

  Set<Polygon> createPolygonsSet() {
    List<LatLng> points1 = [];
    List<LatLng> points2 = [];
    List<LatLng> points3 = [];
    List<LatLng> points4 = [];

    points1.add(LatLng(-89.9, 25.48958333333337));
    points1.add(LatLng(-68.0, 25.48958333333337));
    points1.add(LatLng(0.0, 114.58749999999998));
    points1.add(LatLng(-89.0, 114.58749999999998));

    points2.add(LatLng(-89.0, 114.58749999999998));
    points2.add(LatLng(0.0, 114.58749999999998));
    points2.add(LatLng(66.0, -154.51041666666663));
    points2.add(LatLng(-89.0, -154.51041666666663));

    points3.add(LatLng(-89.0, -154.51041666666663));
    points3.add(LatLng(66.0, -154.51041666666663));
    points3.add(LatLng(0.0, -67.21666666666667));
    points3.add(LatLng(-89.0, -67.21666666666667));

    points4.add(LatLng(-89.0, -67.21666666666667));
    points4.add(LatLng(0.0, -67.21666666666667));
    points4.add(LatLng(-68.0, 25.48958333333337));
    points4.add(LatLng(-89.0, 25.48958333333337));

    Set<Polygon> polygonSet = Set();

    Polygon polygon1 = Polygon(
        polygonId: PolygonId('polygon1'),
        points: points1,
        strokeWidth: 0,
        geodesic: true,
        fillColor: Colors.black38);
    Polygon polygon2 = Polygon(
        polygonId: PolygonId('polygon2'),
        points: points2,
        strokeWidth: 0,
        geodesic: true,
        fillColor: Colors.black38);
    Polygon polygon3 = Polygon(
        polygonId: PolygonId('polygon3'),
        points: points3,
        strokeWidth: 0,
        geodesic: true,
        fillColor: Colors.black38);
    Polygon polygon4 = Polygon(
        polygonId: PolygonId('polygon4'),
        points: points4,
        strokeWidth: 0,
        geodesic: true,
        fillColor: Colors.black38);

    polygonSet.add(polygon1);
    polygonSet.add(polygon2);
    polygonSet.add(polygon3);
    polygonSet.add(polygon4);

    return polygonSet;
  }
}
```


 <!-- describe how to reproduce the problem -->

**Expected results:**  It should show curved lines on both Android and iOS.

**Actual results:**  On Android it's showing curved lines as expected, but on iOS it's showing straight lines.

**Evidences:** 

Android:

![image](https://user-images.githubusercontent.com/76150581/120922959-c6773680-c6d4-11eb-949f-e78a05abbc2e.png)

iOS:

![image](https://user-images.githubusercontent.com/76150581/120922969-d2fb8f00-c6d4-11eb-8bd6-709f6b0747fd.png)


<details>
  <summary>Logs</summary>

<!--
      Run your application with `flutter run --verbose` and attach all the
      log output below between the lines with the backticks. If there is an
      exception, please see if the error message includes enough information
      to explain how to solve the issue.
-->

```
```

<!--
     Run `flutter analyze` and attach any output of that command below.
     If there are any analysis errors, try resolving them before filing this issue.
-->

```
```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
```

</details>