我正在将Golang客户端库用于Google Maps API (github link)
我必须计算服务提供商的行进距离(就像uber和其他跟踪系统一样)。我创建了一个API,该API将在服务提供商移动时获取gps坐标,并使用这些坐标计算距离。为此,我正在使用Google Distance Matrix API。 现在,根据Google地图指南,我不能再使用起点和终点25 (guideline link),请查看“其他使用限制”部分。
要求::
- 如何使用完整的地理编码数组来帮助我计算距离并用于实时跟踪(根据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个完美的方法来解决此问题吗? 或者我可以使用其他方法来解决这个问题?
- 我想在客户端显示可以进行实时提供商跟踪的地图
问题::现在,我可以通过保存的地理编码轻松计算距离,但是对于实时跟踪,我需要每5到10秒获取gps坐标,在这种情况下,任何起点和终点阵列的长度都可以大于25。对于我创建了一个函数,其中仅使用11个数组元素计算距离,并使用完整数组进行实时跟踪?这是一种准确的方法,还是有其他解决方案可以完成?