我正在开发内部工具的概念/原型证明。基本前提是,我们有几个带有GPS的装置,它们向我在云环境中构建的Java API报告其位置(具有NMEA格式的典型GPS精度)。
[Device GPS] -> [Sends Cellular GSM request to API] -> [API queries Google
Roads] -> [Google Roads returns snapped coordinates] -> [App maps received
coordinates]
java API会获取报告的坐标,并从本质上向Google Maps Roads API发送请求,并使用Snap-to-road
功能(这实际上会占用您提供的所有点以及可选的坐标路径,并给您返回基本上在它认为您正在旅行的路径上的坐标)。一切都很好,但是有一个挫折。
价格昂贵。
对于每隔几秒钟就报告一次位置的两个设备(类似于Uber或Lyft的位置),运行该应用程序的成本实质上使它沉没了。 24,000个查询将花费您300-500美元。对于一台设备。
我们已经做出了一些努力,仅在工作时间内接受对API的请求-但这仍然勉强能解决问题。
我相当有能力写我需要的东西(至少我相信),或者可以找到可以做我认为需要做的事情的库-但是我不知道该采取什么方法。我正在考虑在另一个表中缓存请求并首先查询的内容,但是我不确定那将有多可靠。
有人实施过这样的解决方案吗?我只需要支付我发送给Google Maps API的请求数量,然后将该项目破产即可。
答案 0 :(得分:0)
如果您还没有,我想您想看看Google Maps API定价表(https://cloud.google.com/maps-platform/pricing/sheet/?)并与Google交谈。他们应该能够向您解释正确的架构方法(本地缓存部分地图,本地路径处理等)。
在https://en.wikipedia.org/wiki/Google_Maps#Google_Maps_API,他们解释了价格变化和其他有用的细节,但本节还提到了OpenLayers和本地地图托管等替代方案(如果您的用例允许的话)。
可能有助于更好地了解设备的行驶范围。这些设备是放在仅在工厂周围行驶的车辆上还是在用户可以随身携带的个人设备上使用?