代码之家  ›  专栏  ›  技术社区  ›  Barry Chapman

有没有一个好的方法来减少谷歌地图道路API的负荷?

  •  0
  • Barry Chapman  · 技术社区  · 6 年前

    我正在开发一个内部工具的概念证明/原型。基本前提是,我们有两个单元上有GPS,并且他们将它们的位置(以典型的GPS精度NMEA格式)报告给我在云环境中构建的Java API。

    [Device GPS] -> [Sends Cellular GSM request to API] -> [API queries Google 
    Roads] -> [Google Roads returns snapped coordinates] -> [App maps received 
    coordinates]
    

    Java API获取所报告的坐标,并且基本上向谷歌MAPITS道路API发送请求并使用 Snap-to-road 特征(这将基本上采取你给它的任何一点和一个可选的坐标移动路径,并给你返回的坐标基本上是在路径上,它认为你正在旅行)。这是伟大的,但有一个挫折。

    它很贵。

    对于每几秒钟报告其位置的两台设备(类似于uber或lyft的做法),运行此应用程序的成本实际上使其成为沉没成本。24000个查询将花费您300-500美元。对于一个设备。

    我们已经做了一些努力,只在工作时间接受对api的请求,但这还只是表面上的问题。

    我相当有能力写任何我需要的东西(至少我相信),或者可以找到图书馆做我认为需要做的事情-但我不知道采取什么手段。我正在考虑在另一个表中缓存请求并首先查询请求,但我不确定这有多可靠。

    有人实施过这样的解决方案或类似的方案吗?在我破产之前,我只需要支付我发送给google maps'api的请求量。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Amp Cetera    6 年前

    如果你还没有,我想你应该看看google maps api的定价表( https://cloud.google.com/maps-platform/pricing/sheet/ ?)和谷歌谈谈。他们应该能够向您解释正确的体系结构方法(本地缓存部分映射、本地路径处理等)。

    AT https://en.wikipedia.org/wiki/Google_Maps#Google_Maps_API 他们解释了价格的变化和其他有用的细节,但是这一节也提到了其他的选择,比如openlayers和本地地图托管,如果你的用例允许的话。

    这可能有助于更好地了解设备的运行范围。这些设备是放在只在工厂周围行驶的车辆上,还是放在用户可以带到世界任何地方的个人设备上?