0

我正在为内部工具开发概念证明/原型。基本前提是,我们有几个设备上有 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 的请求——但这仍然只是表面上的。

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

有没有人实施过这样的解决方案或类似的东西?在我破产这个项目之前,我只需要支付我发送到谷歌地图 API 的请求数量。

4

1 回答 1

-1

如果您还没有,我想您会想查看 Google Maps API 定价表 ( https://cloud.google.com/maps-platform/pricing/sheet/ ?) 并与 Google 交谈。他们应该能够向您解释正确的架构方法(本地缓存地图部分、本地路径处理等)。

https://en.wikipedia.org/wiki/Google_Maps#Google_Maps_API他们解释了定价变化和其他有用的细节,但如果您的用例允许,该部分还提到了 OpenLayers 和本地地图托管等替代方案。

更好地了解设备的行程范围可能会有所帮助。这些设备是安装在只能在工厂周围行驶的车辆上,还是安装在用户可以在世界任何地方携带的个人设备上?

于 2018-12-01T04:28:25.547 回答