Как мы можем осуществлять отслеживание в реальном времени с помощью Google Distance Matrix API, если длина источника и пункта назначения превышает 25? - PullRequest
0 голосов
/ 31 октября 2018

Я использую клиентскую библиотеку Golang для API Карт Google (ссылка на github)

Я должен рассчитать пройденное расстояние поставщиком услуг (как это делают uber и другие системы отслеживания). Я создал API, который будет получать координаты GPS, когда поставщик услуг перемещается, и рассчитывать расстояние, используя эти координаты. Для этого я использую Google Distance Matrix API. Теперь, в соответствии с рекомендациями Google Map, я не могу использовать пункты отправления и назначения более 25 (ссылка на ссылку) , см. Раздел «Другие ограничения использования».

Требование ::

  1. как я могу использовать полный массив геокодов, который помогает мне рассчитать расстояние и используется для отслеживания в реальном времени (в соответствии с рекомендациями Google API) Не может быть больше 25)? Для этого я создал функцию в который я делю общую длину массива с 25 и создать новый массив lat, lang со значениями интервала результата полного массива. Функция ::
func GetCustomRouteCoordinateArray(routeCoordinates []string, customLen int) (newRouteCoordinates []string) {
    actualLength := len(routeCoordinates)
    al := float64(actualLength)
    cl := float64(customLen)
    num := al / cl
    newLengthInterval := math.Ceil(num)
    newnum := int(newLengthInterval)
    var inc int
    i := 0
    for i < customLen {
        inc = i*newnum
        if inc > actualLength-1 || inc == actualLength-1 {
            newRouteCoordinates = append(newRouteCoordinates, routeCoordinates[actualLength-1])
            break;
        }
        newRouteCoordinates = append(newRouteCoordinates, routeCoordinates[inc])
        i++
    }   
    return newRouteCoordinates
}

Будет возвращен массив строк lat, lng с максимальной длиной = customLen, который является 25 Это идеальный метод для решения этой проблемы? Или я могу справиться с этим, используя другой метод ??

  1. Я хочу показать карту на стороне клиента, которая может отслеживать в реальном времени провайдера

Проблема :: Теперь я могу легко рассчитать расстояние по сохраненным геокодам, но для отслеживания в реальном времени мне нужно получать координаты GPS каждые 5–10 секунд, и в этой ситуации любая длина массива отправления и назначения может быть больше 25. Для это я создал функцию, в которой я рассчитываю расстояние, используя только 11 элементов массива, а для отслеживания в реальном времени, используя полный массив? Это точный метод, или есть другое решение для этого?

...