【问题标题】:Google Map - approximate location in road谷歌地图 - 道路上的大致位置
【发布时间】:2014-05-09 14:42:27
【问题描述】:

我有一个项目,我需要跟踪道路上的汽车,我有下面的道路,我需要为车辆放置一个标记。我在车辆中设置了 GPS 设备,并从设备中获取坐标,GPS 设备定位精度不是很好(

【问题讨论】:

标签: objective-c google-maps routes


【解决方案1】:

使用路线服务。获取从兴趣点到兴趣点的行车路线。应该在路上。

var directionsService = new google.maps.DirectionsService();

directionsService.route({origin:homeLatlng, destination:homeLatlng, travelMode: google.maps.DirectionsTravelMode.DRIVING}, function(response, status) {
  if (status == google.maps.DirectionsStatus.OK)
  {
    var homeMarker = new google.maps.Marker({
      position: response.routes[0].legs[0].start_location, 
      map: map,
      vtitle: "Check this cool location",
      icon: image,
      shadow: shadow
    });
  } else {
    var homeMarker = new google.maps.Marker({
      position: homeLatlng,
      map: map,
      title: "Check this cool location",
      icon: image,
      shadow: shadow
    });
      }
});

【讨论】:

  • 这个解决方案每天限制2500个请求,这对我的情况是无效的,即使我使用商业计划。
  • 商业计划的上限为 24 小时内使用 100000 次。您将不得不支付一些费用来每天向此(或类似)服务发出大量请求。您估计有多少请求?
  • 我正在构建一个可供 1000 多人使用的 iOS 应用程序,他们将每 10 秒打开一次。每个用户都会有一个请求,所以请求的数量是巨大的。这就是为什么这种方式无效。
  • 2500/100000/天的限制仅适用于地理编码网络服务。另一方面,Javascript API 几乎是无限的。 stackoverflow.com/questions/20087969/…
  • 也就是说,@mensi 的答案中的 Tracks API 是最好的方法,它就是为此而生的。
【解决方案2】:

Google Maps Tracks API 提供针对车辆/资产跟踪的功能。对于您的特定用例,您可以从您的数据源记录crumbs(甚至指定您的测量精度!)然后retrieve the collected crumbs snapped to the nearest road

要只获取当前位置,只需为minTimestampmaxTimestamp 选择一个合适的范围。如果您想完全避免存储历史记录,您应该能够仅重用固定时间戳:

如果一个 crumb 的时间戳与一个已经存在的 crumb 相同 指定的实体,现有的面包屑将被覆盖 新的一个。 (见“Recording crumbs”)

【讨论】:

【解决方案3】:

我建议使用 OSM(OpenStreet Maps)数据来获取离线路线,这意味着您可以在不使用数据且不受 Google 限制的情况下将标记捕捉到道路。每周也可下载最新地图:搜索 planet.osm
我正在使用使用 OSM 的 GraphHopper 来让我的 android 项目捕捉到道路,这并不完美,因为它拥有比 Goolge Maps 更多的道路,并且标记可能会放置在 Google Maps 没有的道路上。 所以基本上,检查 GraphHopper,下载示例项目,下载地图,阅读 GitHub 自述文件上的说明如何设置项目并使用他们的路线计算来检索最近道路的坐标,而无需绘制标记或折线。检索坐标并将它们传递给您的应用程序并在收到的坐标上放置标记。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 2014-02-18
    • 2012-06-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多