如果出发地和目的地的长度超过25个,我们如何使用Google Distance Matrix API进行实时跟踪?

时间:2018-10-31 12:00:39

标签: arrays google-maps go google-distancematrix-api

我正在将Golang客户端库用于Google Maps API (github link)

我必须计算服务提供商的行进距离(就像uber和其他跟踪系统一样)。我创建了一个API,该API将在服务提供商移动时获取gps坐标,并使用这些坐标计算距离。为此,我正在使用Google Distance Matrix API。 现在,根据Google地图指南,我不能再使用起点和终点25 (guideline link),请查看“其他使用限制”部分。

要求::

  
      
  1. 如何使用完整的地理编码数组来帮助我计算距离并用于实时跟踪(根据Google API指南   不能超过25)?为此,我在   我将数组的总长度除以25并创建新的数组   lat,lang以及完整数组的重新计算间隔值。   功能::
  2.   
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. 我想在客户端显示可以进行实时提供商跟踪的地图
  2.   

问题::现在,我可以通过保存的地理编码轻松计算距离,但是对于实时跟踪,我需要每5到10秒获取gps坐标,在这种情况下,任何起点和终点阵列的长度都可以大于25。对于我创建了一个函数,其中仅使用11个数组元素计算距离,并使用完整数组进行实时跟踪?这是一种准确的方法,还是有其他解决方案可以完成?

0 个答案:

没有答案