Я использую клиентскую библиотеку Golang для API Карт Google (ссылка на github)
Я должен рассчитать пройденное расстояние поставщиком услуг (как это делают uber и другие системы отслеживания). Я создал API, который будет получать координаты GPS, когда поставщик услуг перемещается, и рассчитывать расстояние, используя эти координаты. Для этого я использую Google Distance Matrix API.
Теперь, в соответствии с рекомендациями Google Map, я не могу использовать пункты отправления и назначения более 25 (ссылка на ссылку) , см. Раздел «Другие ограничения использования».
Требование ::
- как я могу использовать полный массив геокодов, который помогает мне рассчитать расстояние и используется для отслеживания в реальном времени (в соответствии с рекомендациями 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 Это идеальный метод для решения этой проблемы?
Или я могу справиться с этим, используя другой метод ??
- Я хочу показать карту на стороне клиента, которая может отслеживать в реальном времени провайдера
Проблема :: Теперь я могу легко рассчитать расстояние по сохраненным геокодам, но для отслеживания в реальном времени мне нужно получать координаты GPS каждые 5–10 секунд, и в этой ситуации любая длина массива отправления и назначения может быть больше 25. Для это я создал функцию, в которой я рассчитываю расстояние, используя только 11 элементов массива, а для отслеживания в реальном времени, используя полный массив? Это точный метод, или есть другое решение для этого?