Как проверить, находится ли местоположение в пределах точности многоугольника - например, если точность функции 30 м

Эта функция предназначена для проверки широты или долготы внутри или за пределами многоугольника.

 func isAvalibleinsidePolygone{
            let latitude = lat?.text
            let longitude = lon?.text
            if latitude != "" && longitude != "" {
                //            pathOfPolygon.removeAllCoordinates()
                for p in places {
                    pathOfPolygon.add(p.coordinate)
                }
    ifGMSGeometryContainsLocation(CLLocationCoordinate2DMake(Double(latitude!)!, Double(longitude!)!), pathOfPolygon, true) {
                    alert(title:`enter code here` "YEAH!!!", msg: "You are inside the polygon")

                } else {
                 alert(title: "OPPS!!!", msg: "You are outside the polygon")
                }
            }
        }

Но даже я хотел бы проверить, находится ли местоположение в пределах «точности» многоугольника - например, если точность функции составляет 30 м, любое местоположение, находящееся в пределах 30 м от многоугольника, по-прежнему должно возвращать значение true. Таким образом, параметры будут такими, как широта, долгота, точность. Например:

func withinAccuracy(latitude:Double,longitude:Double,accuracy:Double){
//....
}

person Sanjay Mali    schedule 08.02.2017    source источник
comment
Это сработало для меня. Спасибо   -  person Sanjay Mali    schedule 20.02.2017
comment
я рад это слышать. Разместил комментарий как ответ, чтобы вы могли его принять.   -  person Thomas G.    schedule 20.02.2017


Ответы (1)


Взгляните на функцию GMSGeometryIsLocationOnPathTolerance(_ point: CLLocationCoordinate2D, _ path: GMSPath, _ geodesic: Bool, _ tolerance: CLLocationDistance) -> Bool, она делает именно то, что вы хотите. ссылка

person Thomas G.    schedule 20.02.2017