как определить что маркер(Point) находится внутри Полигона?

использую библиотеку yandex_mapkit, есть ли формула при котором если маркер отмечен в зоне полигона возвращает true, а иначе false?

т.е: если Point внутри List<Polygon> то true, а если Point снаружи List<Polygon> то false.

Использую эту формулу но что то она возвращает не точно:

bool isOnlinePayment(Point point, List<Polygon> polygons) {
    bool inside = false;
    var x = point.latitude, y = point.longitude;
    for (int ii = 0; ii < polygons.length; ii++) {
      var polyPoints = polygons[ii].coordinates;
      for (int i = 0, j = polyPoints.length - 1; i < polyPoints.length; i++) {
        var xi = polyPoints[i].latitude, yi = polyPoints[i].longitude;
        var xj = polyPoints[j].latitude, yj = polyPoints[j].longitude;
        var intersect = ((yi > y) != (yj > y)) &&
            (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
        if (intersect) inside = !inside;
      }
    }
    return inside;
  }

Ответы (0 шт):